Kubernetes部署-传递参数

Kubernetes部署-传递参数,kubernetes,kubectl,kubernetes-deployment,Kubernetes,Kubectl,Kubernetes Deployment,当我使用kubectl命令应用部署文件时,我想将参数传递给Kubernetes部署 示例:在我的deployment.yaml中,我有如下参数,我希望在使用kubectl apply-f.yaml运行时传递参数值 因此,在下面的示例中,我希望在运行上述kubectl命令时覆盖args-userid和role spec: containers: - name: testimage image: <my image name>:<ta

当我使用kubectl命令应用部署文件时,我想将参数传递给Kubernetes部署

示例:在我的deployment.yaml中,我有如下参数,我希望在使用kubectl apply-f.yaml运行时传递参数值

因此,在下面的示例中,我希望在运行上述kubectl命令时覆盖args-userid和role

spec:
      containers:
        - name: testimage
          image: <my image name>:<tag>
          args:
          - --userid=testuser
          - --role=manager

这应该添加到您的deployment.yml中


这应该添加到您的deployment.yml中


简单的答案是。你不能那样做

kubectl不是模板引擎。正如一些人提到的,你可以选择Helm或Kustomize来解决这个问题。我鼓励你去看看Helm3,因为它很好地解决了你的问题,像HelmUpgrade-install这样的命令-设置userid=xxx-设置role=yyy

如果你只使用kubectl,你可能想使用它的能力从stdin中摄取yaml并首先通过任何类型的模板传递yaml。即如下:

...
args:
- --userid=$USER
- --role=$ROLE
...

显然,任何其他字符串替换方法都可以执行sed、awk等操作。

简单的答案是。你不能那样做

kubectl不是模板引擎。正如一些人提到的,你可以选择Helm或Kustomize来解决这个问题。我鼓励你去看看Helm3,因为它很好地解决了你的问题,像HelmUpgrade-install这样的命令-设置userid=xxx-设置role=yyy

如果你只使用kubectl,你可能想使用它的能力从stdin中摄取yaml并首先通过任何类型的模板传递yaml。即如下:

...
args:
- --userid=$USER
- --role=$ROLE
...

显然,任何其他字符串替换方法都可以使用sed、awk等。

谢谢!你能告诉我在哪里可以通过这个吗?我可以作为参数传递给kubectl cmd吗?你能举个例子吗?谢谢请添加您的部署yml本身。规格:容器:-名称:testimage::args:[-userid,=,testuser,-role,=,manager]谢谢!当我应用部署yaml时,我想使用kubectl命令传递he参数的值,因此下面的方法不起作用。下面是我相信的值。如何在不更改部署人员yaml的情况下传递不同的值?说明:containers:-name:testimage image::args:[-userid,=,testuser,-role,=,manager]@JaskiratSra您在评论会话中添加的内容实际上是对您的答案的有价值的输入。别忘了你可以帮我发帖子,这次我发了。谢谢!你能告诉我在哪里可以通过这个吗?我可以作为参数传递给kubectl cmd吗?你能举个例子吗?谢谢请添加您的部署yml本身。规格:容器:-名称:testimage::args:[-userid,=,testuser,-role,=,manager]谢谢!当我应用部署yaml时,我想使用kubectl命令传递he参数的值,因此下面的方法不起作用。下面是我相信的值。如何在不更改部署人员yaml的情况下传递不同的值?说明:containers:-name:testimage image::args:[-userid,=,testuser,-role,=,manager]@JaskiratSra您在评论会话中添加的内容实际上是对您的答案的有价值的输入。别忘了,你可以在我这一次做的文章中找到模板工具,比如Helm,或者Kustomize,可以对Kubernetes清单进行更有针对性的修改。如果控制应用程序,将设置作为环境变量传递比命令行参数更容易管理。谢谢!我目前不使用Kustomize。当我运行kubectl cmd部署部署yaml时,有没有方法传递参数值?除了Helm或Kustomize,还有其他选择吗?谢谢您可能正在寻找一个模板工具,比如Helm,或者类似Kustomize的东西,它可以对Kubernetes清单进行更有针对性的修改。如果控制应用程序,将设置作为环境变量传递比命令行参数更容易管理。谢谢!我目前不使用Kustomize。当我运行kubectl cmd部署部署yaml时,有没有方法传递参数值?除了Helm或Kustomize,还有其他选择吗?谢谢
cat resource.yaml | USER=testuser ROLE=manager envsubst | kubectl apply -f -