我要将图像修补到初始容器 我的图像存储在一个称为$ 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":
以下是关于 kubernetes-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.
我有一个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
我正在尝试使用Helm charts在Kubernetes群集中安装应用程序.有人可以建议什么可以是管理秘密的更好解决方案吗?使用helm secrets是个好主意或Hashicorp Vault? 解决方案 保险库在技术上很棒,但这可能是一个管理负担.无论它们是什么,您都可以得到强烈保护"秘密".您可以通过生成一次性密码来避免像中央数据库密码那样分享魔术秘密;如果您需要签名或加密的东西,则可以要求Vault为您做到这一点,并避免自己知道自己的密码秘密.最大的弊端是,它是一个独立的服务,从中获取秘密并非完全无缝,如果您需要重新启动服务器,您偶尔需要一个管理员聚会来解开它. . kubernetes秘密实际上只是带有不同名称的配置图.使用默认设置,操作员很容易获得秘密的值(kubectl get secret ... -o yaml,然后base64解码字符串),因此它们实际上并不是那么秘密.如果您有一个有趣的名称空间设置,则通常无法在其他名称空间中访问秘密,这可能意味着被
当前在部署保险箱舵图时就有准备就绪探针失败.保险库在工作,但是每当我描述豆荚时会出现此错误.如果有人知道如何解决这个问题,我该如何获得使用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
我收到此错误消息: ➜ ~ 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
我目前正在设置一个新的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.
在我的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
我们正在使用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
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 然后我通过运行代码安装了
我有一个在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
我已经编写了自定义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
我正在使用头盔,并给出了我想在应用一些递归格式时将其弄平的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 := .
我需要下载位于外部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() {
我正在编写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
我想在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