您可以使用kubectl补丁动态添加一个值吗
我要将图像修补到初始容器 我的图像存储在一个称为$ image_name 的变量中 我运行 kubectl patch部署生产-Art-backend -p {" spec":{" template":{" spec":{" initcontainers":[{" name":" runmogrations":" runmogrations"," image":" image":"" $ image_name"}]}}}}} 它将图像用作'image_name'而不是变量image_name中的值,我如何动态修补图像? 解决方案 这是一个bash问题,不一定是kubectl问题! 由于JSON字符串需要双引号,因此您需要在单引号内包装变量.尝试以下操作: kubectl patch deployment production-art-backend -p {"spec":{"template":{"spec":{"initContainers":
0 2023-05-21
编程技术问答社区
如何不覆盖Helm模板中随机生成的秘密?
我想在舵机模板中生成密码,使用randAlphaNum函数很容易执行.但是,升级版本时将更改密码.有没有办法检查先前生成的密码然后使用现有值?这样的东西: apiVersion: v1 kind: Secret metadata: name: db-details data: {{ if .Secrets.db-details.db-password }} db-password: {{ .Secrets.db-details.db-password | b64enc }} {{ else }} db-password: {{ randAlphaNum 20 | b64enc }} {{ end }} 解决方案 您可以在 shaunc 使用 lookup 函数可以修复原始海报的代码: apiVersion: v1 kind: Secret metadata: name: db-details data: {{- if .Release.
0 2023-05-21
编程技术问答社区
如何在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
0 2023-05-19
编程技术问答社区
舵手图中的秘密管理
我正在尝试使用Helm charts在Kubernetes群集中安装应用程序.有人可以建议什么可以是管理秘密的更好解决方案吗?使用helm secrets是个好主意或Hashicorp Vault? 解决方案 保险库在技术上很棒,但这可能是一个管理负担.无论它们是什么,您都可以得到强烈保护"秘密".您可以通过生成一次性密码来避免像中央数据库密码那样分享魔术秘密;如果您需要签名或加密的东西,则可以要求Vault为您做到这一点,并避免自己知道自己的密码秘密.最大的弊端是,它是一个独立的服务,从中获取秘密并非完全无缝,如果您需要重新启动服务器,您偶尔需要一个管理员聚会来解开它. . kubernetes秘密实际上只是带有不同名称的配置图.使用默认设置,操作员很容易获得秘密的值(kubectl get secret ... -o yaml,然后base64解码字符串),因此它们实际上并不是那么秘密.如果您有一个有趣的名称空间设置,则通常无法在其他名称空间中访问秘密,这可能意味着被
4 2023-05-16
编程技术问答社区
Hashicorp金库-客户向HTTPS服务器发送HTTP请求-准备就绪的探针
当前在部署保险箱舵图时就有准备就绪探针失败.保险库在工作,但是每当我描述豆荚时会出现此错误.如果有人知道如何解决这个问题,我该如何获得使用HTTP而不是HTTP的探测器,因为我会慢慢失去理智? kubectl描述pod Name: vault-0 Namespace: default Priority: 0 Node: ip-192-168-221-250.eu-west-2.compute.internal/192.168.221.250 Start Time: Mon, 24 Aug 2020 16:41:59 +0100 Labels: app.kubernetes.io/instance=vault app.kubernetes.io/name=vault component=server controller-revisi
0 2023-05-16
编程技术问答社区
舵:找不到耕种者
我收到此错误消息: ➜ ~ helm version Error: could not find tiller 我已经创建了tiller项目: ➜ ~ oc new-project tiller Now using project "tiller" on server "https://192.168.99.100:8443". 然后,我已经在tiller命名空间中创建了tiller: ➜ ~ helm init --tiller-namespace tiller $HELM_HOME has been configured at /home/jcabre/.helm. Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster. Please note: by default, Tiller is deployed with an in
0 2023-05-11
编程技术问答社区
列出正在为某项服务提供服务的pods
我正在尝试获取为特定服务提供服务的POD列表 我的服务有3个豆荚. 我尝试执行以下命令 oc describe svc my-svc-1 我希望看到与此服务相关的豆荚.但这并没有出现.什么命令让我只有与服务相关的吊舱列表. 解决方案 服务使用选择器选择POD.查看选择器的选择,并使用该选择器获取POD.对于kubectl,命令看起来像: kubectl get pods --selector
0 2023-05-11
编程技术问答社区
Grafana Alert/Notifier未在联系点中显示
我目前正在设置一个新的Grafana,其中包含最新版本和头盔图表. 我添加了一个通知器,以便将警报发送到Microsoft Teams频道. noml.yaml可以在'etc/grafana/provisioning/notifiers' 的运行容器中找到 不幸的是,它没有出现在"联系点"中. 关于NotFier的掌舵图表的一部分看起来像 notifiers: notifiers.yaml: notifiers: - name: sa-roemoe-notifier type: teams uid: lnc31CJGz org_id: 1 is_default: true settings: url: > 有什么问题吗? 由于它已经在运行的容器中,所以我认为我犯了一个错误,但我无法弄清楚. 最好的问候. 解决方案 在迁移到Grafana的新警报9.
4 2023-04-27
编程技术问答社区
Kubernetes Ingress需要反向代理设置
在我的kubernetes群集中,我对入口面临一些挑战.例如,我通过头盔安装了Nginx-Ingress的鼻子.可以通过 提供点小 fqdn: ip: 现在我创建了一个入口: apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: nr-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: tls: - secretName: tls-secret1 hosts: - my.server.name rules: - host: my.server.name http: paths: - path: /nr backend: serviceName: my-nodered-node-red
2 2023-04-27
编程技术问答社区
使用istio公开展示grafana
我们正在使用Prometheus操作员,我们需要使用ISTIO公开公开(外部)Grafana, 稳定/Prometheus-operator 通常,当我需要公开公开曝光的应用程序时,我会在Micro Service中添加类似的内容,并且它可以正常工作并在外面暴露. service.yaml apiVersion: v1 kind: Service metadata: name: po-svc namespace: po spec: ports: - name: http port: 3000 targetPort: 3000 selector: app: myapp //I take the name from deployment.yaml --in the chart NOT SURE WHICH VALUE I SHOULD TAKE FROM THE CHART--- 并添加虚拟服务 virtu
2 2023-04-27
编程技术问答社区
在GKE上用Helm设置vm.max_map_count的最佳方法是为opensearch设置。
现在,我正在使用此 shell script它们都有适当的虚拟内存,我想我想找到的解决方案更好. 可能像额外的对象一样吗?像Elasticsearch推荐在这里. 那么,设置vm.max_map_count的最佳方法是什么? 解决方案 这样做的两种常见方法: 使用需要设置的POD规格中的InitContainer.这就是您引用的Elasticsearch文档.请注意,在这种情况下,InitContainer将需要升级的特权 您可以创建一个戴蒙森集团,该卫音本质上是在您希望运行需要设置的所有节点上链接的脚本(或者您只需在所有节点上运行它)即可.请参阅
我在哪里可以找到GKE的CRD?
尝试使用kind在GitHub工作流中运行helm/chart-testing-action.对于图表,我需要一些GKE CRD.我可以找到它们吗? 解决方案 kubernetes 添加自定义资源时,可以使用以下方式访问它: kubectl kubernetes动态客户端. 您编写的REST客户端. 使用 kubernetes客户生成工具承诺,但有些项目可能会为客户提供与CRD或AA一起提供的. 在自定义资源/a>以获取更多详细信息.
12 2023-04-27
编程技术问答社区
我在GOOGLE KUBERNETS VER 1.19上安装WSO2 API MANAGER,git hub上的舵手图对kubernetes ver 1.12有效,如何让它工作1.19?
i forow wso2 API Manager在Lin K指令上 https://artifacthub. io/packages/helm/wso2/am-single节点 git clone https://github.com/wso2/kubernetes-apim.git然后更新三个名为wso2am-gateway-ingress.yaml,wso2am-ingress.yaml和wso2am-websub-ingress.yaml在安装目录~/kubernetes-apim/simple/am-single/templates/am 匹配nginx ingress in n nginx ingress in link https://kubernetes.io/docs/conepts/conepts/conepts/services-networking/services-networking/ingress/ingress/ingress 然后我通过运行代码安装了
0 2023-04-26
编程技术问答社区
如何在Helm中从一个文件中创建一个配置图?
我有一个在POD中运行的容器,该容器需要一个配置文件.部署/服务等是使用Helm部署的,理想情况下,我想使用相同的方法来设置配置,如果可能的话,我想使用Helm的模板引擎来模板配置文件. 我遇到了这个: 我有以下文件结构: /chart /templates my-config-map.yaml /config application.config 和my-config-map.yaml包含以下内容: apiVersion: v1 kind: ConfigMap metadata: name: my-config labels: app: {{ template "app.prefix" . }} data: {{ (tpl (.Files.Glob "config/*").AsConfig . ) | indent 2 }} 运行此命令时: kubectl get configmaps my-config -n
Kong自定义golang插件在kubernetes/helm设置中不工作
我已经编写了自定义Golang Kong插件,称为go-wait之后,github repo 唯一的区别是我创建了一个自定义Docker映像,因此Kong默认情况下将在其/usr/local/bin目录中使用上述插件 这是Dockerfile FROM golang:1.18.3-alpine as pluginbuild COPY ./charts/custom-plugins/ /app/custom-plugins RUN cd /app/custom-plugins && \ for d in ./*/ ; do (cd "$d" && go mod tidy && GOOS=linux GOARCH=amd64 go build .); done RUN mkdir /app/all-plugin-execs && cd /app/custom-plugins && \ find . -type f -not -name "*.*" | xargs -i
0 2023-04-26
编程技术问答社区
如何用Go模板(Helm)应用递归格式化?
我正在使用头盔,并给出了我想在应用一些递归格式时将其弄平的YAML对象. 给定: some_map: with: different indentation: levels: and nested: sub: maps: "42" and_more: maps: 42 我想(例如)得到此: some_map.with="different" some_map.indentation.levels="and" some_map.nested.sub.maps="42" some_map.nested.and_more.maps=42 我还没有读过有关掌舵文档中递归循环的任何内容,请记住示例中的递归格式("%v.%v"如果!不同. 解决方案 另一种方法 _helpers.tpl: {{- define "template.flattenFn" -}} {{- $ctx := .
0 2023-04-26
编程技术问答社区
Helm SDK从extenanl资源库下载图表
我需要下载位于外部OCI存储库的图表,当我使用图表和版本的链接下载它时,并提供用户和密码,但不使用以下代码,这是我尝试的并获得的.错误 无法下载" https://fdr.cdn.repositories.amp/artifactory/control-1.0.0.0.0.0.tgz" at版本" 1.0.0"(提示:运行helm repo update May help),如果我单击上面的链接,它要求用户并通过(在浏览器中),当我提供(代码中的相同)时,图表为下载代码不起作用? 这就是我尝试的 package main import ( "fmt" "os" "helm.sh/helm/v3/pkg/action" "helm.sh/helm/v3/pkg/cli" "helm.sh/helm/v3/pkg/repo" ) var config *cli.EnvSettings func main() {
2 2023-04-26
编程技术问答社区
当试图评估一个缺失的嵌套键时,Helm图表以 "nil pointer evaluating interface {}"失败。
我正在编写Helm 3库图表,并想创建一个具有默认值的YAML.但是,当试图为不存在的嵌套键设置默认值时,Helm在以下错误消息中失败: nil pointer evaluating interface {} 说我的kubernetes对象中有这个片段: {{- if eq (.Values.deployment.scale.type | default "static") "static" }} replicas: {{ default "3" .Values.deployment.scale.replicas }} {{- end }} 如果定义了.Values.deployment.scale,模板将呈现良好,即使未定义.Values.deployment.scale.replicas,replicas的值也将为3. 但是,如果未定义一个父键,则掌舵将在上面的错误消息中失败.例如,如果values.yaml为: # values.yaml de
10 2023-04-26
编程技术问答社区
kubernetes舵手golang客户端上的样本
我想在kubernetes上创建一个服务,该服务在集群上管理舵图.它从私有图表存储库中安装图表.由于我没有找到有关如何使用Helm Client API的任何文件,因此我正在寻找一些在Helm Client上创建服务的示例或指南. 解决方案 helm3 正如其他答案所指出的那样,用头盔2,您需要与Tiller交谈,这使事情变得复杂. 使用Helm 3,它更加干净,因为Tiller被删除,Helm Client直接与Kubernetes API服务器进行通信. 这是一个示例代码,可以使用Helm3: 编程安装舵图. package main import ( "fmt" "os" "helm.sh/helm/v3/pkg/action" "helm.sh/helm/v3/pkg/chart/loader" "helm.sh/helm/v3/pkg/kube" _ "k8s.io/client-go/plugi
2 2023-04-26
编程技术问答社区