可以将kubernetes部署文件中的副本设置为变量吗?

lqfhib0f  于 5个月前  发布在  Kubernetes
关注(0)|答案(1)|浏览(53)

我有我的简单部署.yaml文件与pod配置.这个想法是使用副本数作为变量而不使用 Helm ,我该怎么办?有一种方法使用的Map变量?
谢谢

pb3skfrl

pb3skfrl1#

我有我的简单部署.yaml文件与pod配置.这个想法是使用副本数量作为变量,而不使用 Helm ,我怎么办?
没有原生的Kubernetes机制可以从ConfigMap(或其他资源)设置replicas值。您需要使用某种模板机制,但不一定是Helm。
假设你想部署三个副本,你可以使用像sed这样简单的东西,如下所示:

sed '/replicas:/ s/:.*/: 3/' deployment.yaml | kubectl apply -f-

字符串
或者,您可以将部署 Package 在shell脚本中:

#!/bin/sh

cat <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: example
spec:
  replicas: ${1:-1}
.
.
.
EOF


然后运行:

sh create-deployment.sh 3 | kubectl apply -f-



您可以使用Kustomize为部署打上所需的补丁;您的kustomization.yaml可能看起来像这样:

resources:
- deployment.yaml

patches:
- patch: |
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: example
    spec:
      replicas: 3


你可以通过运行...

kubectl apply -k .


.在与kustomization.yaml文件相同的目录中。

相关问题