我们应该运行一个有3个副本的Kafka节点还是3个有1个副本的Kafka节点?
我不明白运行1个带有3个副本的Kafka节点和3个kafka节点之间的区别. 我们要维护自己的kubernetes群集,我们想在其中运行一个kafka群集.我们正在使用我们可以设置: ... 3不同的Kafka服务,带有1个副本,每个副本都有自己的URL(例如Localhost:9092,Localhost:9093和Localhost:9094). ... 1 kafka服务在3个复制品中运行(只有1个URL Localhost:9092用于所有副本). 同步方式有什么区别,什么是配置的更好方法? 解决方案 为了提供高可用性并利用Kafka的并行性用于多个消费者,您应该扩大规模,我建议使用3台服务器. 多个经纪人设置将在同一主题的不同经纪人中传播消息/分区,因此消费者组可以从具有高平行性的不同经纪人那里接收消息. 此外,请注意,复制仅帮助您获得高可用性,因此在服务器故障的情况下,分区replica/s将带头. 对于3个节点群集,我会推荐以2个复制品
10 2024-03-31
编程技术问答社区
使用Bitnami/KeyCloak部署/安装KeyCloak时更新Java堆大小
我在使用kubernetes Pod中使用Bitnami/keyCloak部署/安装KeyCloak时不断获得OutofMemoryError. 2023-02-09 17:33:49,316 ERROR [org.jboss.threads.errors] (build-19) Thread Thread[build-19,5,build group] threw an uncaught exception: java.util.concurrent.RejectedExecutionException at org.jboss.threads.RejectingExecutor.execute(RejectingExecutor.java:38) at org.jboss.threads.EnhancedQueueExecutor.rejectException(EnhancedQueueExecutor.java:2049) a
12 2024-03-31
编程技术问答社区
在kubernetes集群外访问bitnami/kafka
我目前正在使用bitnami/kafka映像( Kubernetes Master:1 kubernetes工人:3 在集群中,另一个应用程序能够找到kafka.试图从集群外部访问Kafka容器时,就会发生问题.阅读一点时,我读到我们需要为外部Kafka客户端设置属性" advertied.listener = plainttext://hostname:port_number". 我目前正在引用" values.yaml AdvertiedListeners1:10.21.0.191 和 statefulset.yaml - name: KAFKA_CFG_ADVERTISED_LISTENERS value: 'PLAINTEXT://{{ .Values.advertisedListeners }}:9092' 对于单个kafka实例,它工作正常. 但是对于3个节点kafka群集,我更改了一些配置,如下: value
4 2024-03-31
编程技术问答社区
使用Bitnami/RabbitMQ图表从GitHub安装额外的RabbitMQ插件
目标:为values.yaml文件"> Bitnami提供的RabbitMQ图表,因此插件/a>已准备就绪,并且在运行helm install ... 后可用 以前的解决方案:当前,我使用的stable/rabbitmq-ha图表具有以下values.yaml: extraPlugins: "rabbitmq_message_deduplication" extraInitContainers: - name: download-plugins image: busybox command: ["/bin/sh","-c"] args: [" wget -O /opt/rabbitmq/plugins/elixir-1.8.2.ez/elixir-1.8.2.ez https://github.com/noxdafox/rabbitmq-message-deduplication/releases
20 2024-03-31
编程技术问答社区
用现有的持久化卷要求部署bitnami/mysql helm图
我正在尝试部署 bitnami/mysql minikube . 我正在使用Kubernetes v1.19,Minikube v1.17.1和 helm 3 我创建了一个PVC和PV,如下: kind: PersistentVolumeClaim apiVersion: v1 metadata: name: mysql-pvc spec: storageClassName: standard accessModes: - ReadWriteOnce resources: requests: storage: 3Gi selector: matchLabels: id: mysql-pv ---- kind: PersistentVolume apiVersion: v1 metadata: name: mysql-pv labels: type: local id: mysql-pv
8 2024-03-31
编程技术问答社区
在Kubernetes中连锁多个参数(args)。
我需要在容器中执行多行代码,该代码按以下示例如下: deployment.yaml摘录 initContainers: - name: wait-for-migrations args: - python - -c - | print("python") ...more lines - bash - -c - | echo bash ...more lines 现在,无论我尝试过什么,我都无法执行python/bash ..只有第一个总是. 与中间链接: - ; 也没有工作. 有什么想法如何实施? 解决方案 我认为最好为此创建一个专用脚本.按照我在下面显示的方式做有些肮脏. 这通常是容器的限制.您无法运行多个命令.从这个意义上讲,这与Kubernetes无关. 复杂命令的通常解决方法是将所有内容包裹在单个bash -c中,即b
6 2024-03-28
编程技术问答社区
多线覆盖值Helm安装Azure DevOps
是否可以在Azure DevOps管道中的Helmdeploy任务中指定要覆盖的值?例如,类似下面的任务(显然无法完全按原样工作): - task: HelmDeploy@0 displayName: 'helm install' inputs: connectionType: 'Azure Resource Manager' azureSubscription: '$(RM_SERVICE_CONNECTION_NAME)' azureResourceGroup: '$(AKS_RESOURCE_GROUP)' kubernetesCluster: '$(AKS_NAME)' namespace: '$(AKS_NAMESPACE)'
0 2024-03-25
编程技术问答社区
如何在Azure管道中使用powerhell命令的输出作为参数?
我有一个powershell脚本任务,该任务从我的git存储库中的文件夹中获取某些文件的名称,并将它们放入变量中.我想在参数中使用这些文件名,并在另一个任务(任务:Helmdeploy@0)中使用"每个"条件,以便每次使用一个文件名作为valuefile变量运行该任务. 这是我尝试过的,但是它给出了一个错误 template-yaml/deploy-jobs.yaml@pipelinetemplates期望序列或映射.实际值'$ [depentencies.a.outputs ['fileOutput.valuefiles']]]' in LINE $ {{parameters.files}}} 中的每个文件 deploy-jobs.yaml parameters: files: [] jobs: - job: Deploy pool: vmImage: 'ubuntu-latest' var
6 2024-03-25
编程技术问答社区
AKS Kubernetes与Azure DevOps Pipel-helm升级错误
我是一个完整的Azure Devops Noob,试图在Azure Devops中设置AKS群集和释放管道,以使用Helm进行部署. i创建(禁用了RBAC,以简化进程)AKS群集,将发布管线连接到了它,使用Azure Cloud Shell并运行Helm Init连接到AKS群集,但是此问题的释放是失败的: 2018-12-14T16:35:55.9461744Z ##[section]Starting: helm upgrade 2018-12-14T16:35:55.9467164Z ============================================================================== 2018-12-14T16:35:55.9467299Z Task : Package and deploy Helm charts 2018-12-14T16:35:55.9467387Z Desc
8 2024-03-25
编程技术问答社区
错误:当从WSL尝试时,不存在名称为 "Aks_cluster_name "的环境。
我正在尝试从Windows子系统中部署Kubernetes管道. 我能够运行这些命令 az login az account set --subscription Azure.NPE.Riviera az aks get-credentials --resource-group RivieraRG --name RivieraAksCls0 当我运行以下命令 时 kubectl config use-context RivieraAksCls0 它给了我 error: no context exists with the name: "RivieraAksCls0" 我如何解决此问题? (注意:我都有所有权限,并且能够从PowerShell运行上述命令) 解决方案 我已经在环境中进行了测试.该错误的原因是.kube/config文件是在Windows中创建的,而不是在WSL中创建的. .kube/config文件需要复制到WSL. 请
8 2024-03-25
编程技术问答社区
通过Terraform舵手供应商和Azure DevOps部署舵手图,同时从ACR获取舵手图。
我试图使用Terraform Helm提供商和Azure DevOps容器作业将ACR从ACR部署到AKS群集,但在从ACR获取Helm Chart时失败了.请让我知道出了什么问题. Helm提供商TF模块: data "helm_repository" "cluster_rbac_helm_chart_repo" { name = "mcp-rbac-cluster" url = "https://mcpshareddcr.azurecr.io" } # Deploy Cluster RBAC helm chart onto the cluster resource "helm_release" "cluster_rbac_helm_chart_release" { name = "mcp-rbac-cluster" repository = data.helm_repository.cluster_rbac_helm_chart_repo.metada
如何通过舵手运行Postman测试案例,并在任何测试失败时回滚到最后的成功版本
我正在使用Helm Kubernetes部署,我想在最终部署之前运行邮递员测试用例,如果任何测试用例失败,则会回滚(或保留当前部署(如蓝绿色部署)). 如何实现这一目标? 解决方案 我以我的测试执行模板: apiVersion: v1 kind: Pod metadata: name: API Test annotations: "helm.sh/hook": test-success spec: containers: - name: PostmanTest image: postman/newman:latest args: - run - # In case you need to define the hostname in the collection # Use {{baseUrl}} in
如何在Azure Kubernetes服务中安装gitlab-runner?
我正在尝试在Azure Kubernetes服务(AKS)中安装GitLab Runner,但我有2个错误: Helm Tiller未出现在Gitlab CI的应用列表中: 大多数教程都必须安装它,但是今天甚至没有在这里看到它: 当我从此列表中安装gitlab-runner时,我有一个消息错误 "安装GitLab跑步者时出了问题 手术失败.检查POD日志以获取安装运行器以获取更多详细信息"" 因此,当我检查日志时,我有一个: 最后两行有一个错误,有些答案表明我需要使用Helm命令更改回购,所以我从门户网站的Azure CLI bash中进行此操作,但是我仍然有同样的错误,我执行这样的代码: helm repo rm stable helm repo add stable https://charts.helm.sh/stable 然后我更新,我需要在命令中提供更多参数吗? 解决方案 gitlab 13.12(2021年5月)确实提到: Helm v2
4 2024-03-24
编程技术问答社区
如何用Helm在Nginx Ingress中设置服务器片段配置
相关的github问题:apiVersion: v1 data: server-snippet: | if ($http_x_azure_fdid !~* "55ce4ed1-4b06-4bf1-b40e-4638452104da" ) { return 403; } use-forwarded-headers: "true" kind: ConfigMap 在以下方法中设置值时,如何使用头盔实现上述配置? helm upgrade --install nginx-ingress-controller ingress-nginx/ingress-nginx \ --namespace "${namespace}" \ --version "${chart_version}" \ --set controller.replicaCount="${replicas}" \ --set-string controller.config.use-for
8 2024-03-24
编程技术问答社区
如何在使用AKS时修复 "Kibana服务器尚未准备好 "的错误
我正在Azure Kubernetes服务中设置麋鹿服务.但是我只看到这个错误: " Kibana服务器尚未准备就绪" 我正在使用Helm安装稳定/Elastic-stack版本,而没有任何更改(默认情况下的所有内容). helm install --name elk stable/elastic-stack 我还添加了一个入口控制器,以将Kibana服务器展示到公共场所. 但是,我只看到" Kibana Server尚未准备就绪"错误. 我已经检查了Kibana Pod正在运行,以及Elasticsearch.作为Kubernetes中的新手,我不知道如何在Kibana实例中找到错误日志.谁可以帮我这个事?如果您可以指出我缺少哪个步骤. 也要感激. 解决方案 很可能您没有使用原始的ELASTICSEARCH_URL环境变量的值,因为它的默认值来自Elastic-stack helm图表.因此,您必须替换您可以通过两种方式进行操作: 更新Hel
18 2024-03-24
编程技术问答社区
从Helm stable/cert-manager升级到jetstack/cert-manager
我们有一个生产AKS群集,该群集已安装stable/cert-manager helm图表,以允许使用让我们加密证书.当前安装的版本是cert-manager-v0.6.0 kube-system名称空间中的cert-manager-v0.6.0. 让我们加密是停止从2019年11月1日开始的8.0版中的CERT-MANAGER的流量支持. 我想升级,但最新的可用stable图表版本是v0.6.7.似乎要走的方法是切换到jetstack/cert-manager. 我如何最好地处理?我可以卸载当前stable/cert-manager图表并用jetstack/cert-manager从头开始安装吗?关于如何在没有停机时间生产的情况下解决此问题的任何资源将不胜感激.请让我知道我是否可以提供更多细节. 解决方案 对于任何提出同样问题的人来说,我试图在测试群集上执行干净的安装,这似乎相当顺利.我发现了我的掌舵发行的名称是通过运行helm list 的 然后我执行了
18 2024-03-24
编程技术问答社区
如何将Azure AKS Kubernetes Cluster自签CA添加到GitLab CI/CD Kubernetes集成中?
我正在尝试将我的azure aks kubernetes群集添加到我的gitlab ci/cd kubernetes集成中. 我可以从我的PC上执行kubectl命令在我运行此命令之后: az aks get-credentials --resource-group --name 它创建了.kube/config文件,其中包含这样的内容: apiVersion: v1 clusters: - cluster: certificate-authority-data: server: https://.hcp.westeurope.azmk8s.io:443 name:
4 2024-03-24
编程技术问答社区
AKS升级到v1.22后,Nginx-ingress-controller无法启动
我们执行了Kubernetes群集升级,从v1.21到v1.22.在此操作之后,我们发现我们的Nginx-Ingress-Controller部署的POD无法从以下错误消息开始: pkg/mod/k8s.io/client-go@v0.18.5/tools/cache/reflector.go:125: Failed to list *v1beta1.Ingress: the server could not find the requested resource 我们发现此问题在这里进行了跟踪: https://github.com/Bitnami/Charts/essugn/7264 因为Azure不允许将群集降级回1.21,请帮助我们修复Nginx-Ingress-Controller部署吗?您能否具体说明应该完成的操作以及从哪里(本地机器或Azure CLI等)来看,因为我们对helm>. 不太熟悉 这是我们的部署当前yaml: kind: Deployme
4 2024-03-24
编程技术问答社区
Kubernetes入口控制器-无法从外部虚拟机进行TCP连接,网络流量无法转发到 "服务 "端口
我有Azure kubernetes服务群集,并且我从不同的虚拟网络外面有VM,我尝试将其连接到我的容器POD应用程序,该应用程序正在TCP端口9000上运行.我必须使用公共IP,并且不是HTTP连接,而是我需要使用TCP连接连接. 为此,我遵循此链接的说明: https://learn.microsoft.com/en-us/azure/aks/intress-internal-ip 我为helm install 定义了yaml文件 controller: service: annotations: service.beta.kubernetes.io/azure-load-balancer-internal: "true" 我配置了nginx: helm install nginx-ingress ingress-nginx/ingress-nginx \ -f internal-ingress.yaml \ --set cont
2 2024-03-24
编程技术问答社区
Helm Registry登录-Password-stdin在Azure DevOps管道中
我正在尝试使用Azure DevOps管道登录我的私人ACR. 我以这种方式尝试过: - task: AzureCLI@2 inputs: azureSubscription: $(azureSubscriptionForACR) scriptType: 'ps' scriptLocation: 'inlineScript' inlineScript: | $password = az acr credential show -n $(azureAcrName) --query passwords[0].value helm registry login $(azureContainerRegistry) --username $(azureAcrUserName) --password $password 有效的工作,但是当我运行管道时有警告: "警告:使用-password通过CLI是不安全的.使用-p
16 2024-03-24
编程技术问答社区