Kubernetes 如何在同一POD的不同实例中将环境变量设置为不同的值?
我希望有两个相同POD的实例,其中一个环境变量的值不同。 我们怎样才能做到这一点Kubernetes 如何在同一POD的不同实例中将环境变量设置为不同的值?,kubernetes,Kubernetes,我希望有两个相同POD的实例,其中一个环境变量的值不同。 我们怎样才能做到这一点 谢谢您可以使用一个包含两个不同容器的吊舱来实现您的目标 以下是如何实现这一目标的示例: apiVersion: v1 kind: Pod metadata: name: busybox spec: containers: - name: busybox1 image: busybox:1.28 env: - name: VAR1 value: "Hello I'm V
谢谢您可以使用一个包含两个不同容器的吊舱来实现您的目标 以下是如何实现这一目标的示例:
apiVersion: v1
kind: Pod
metadata:
name: busybox
spec:
containers:
- name: busybox1
image: busybox:1.28
env:
- name: VAR1
value: "Hello I'm VAR1"
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
- name: busybox2
image: busybox:1.28
env:
- name: VAR2
value: "VAR2 here"
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
restartPolicy: Always
我们正在创建两个容器,一个使用VAR1
,第二个使用VAR2
$ kubectl exec -ti busybox -c busybox1 -- env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=busybox
TERM=xterm
VAR1=Hello I'm VAR1
KUBERNETES_PORT_443_TCP_ADDR=10.31.240.1
KUBERNETES_SERVICE_HOST=10.31.240.1
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT=tcp://10.31.240.1:443
KUBERNETES_PORT_443_TCP=tcp://10.31.240.1:443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP_PORT=443
HOME=/root
如您所见,它们具有相同的主机名(从Pod名称继承)和不同的变量 当您说同一POD的两个实例时,是否意味着您通过
ReplicatSet
或Deployment
创建它们;I don’我认为这是不可能的,它可以通过应用程序代码中的一些逻辑来完成。通过部署创建POD请澄清一下您想要实现什么?您可以使用两个不同的pod规范为每个pod设置不同的变量。两者都可以基于相同的docker图像。如果这是你想要的,请让我知道,我会发布一些例子。这能回答你的问题吗?
$ kubectl exec -ti busybox -c busybox2 -- env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=busybox
TERM=xterm
VAR2=VAR2 here
KUBERNETES_PORT=tcp://10.31.240.1:443
KUBERNETES_PORT_443_TCP=tcp://10.31.240.1:443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_ADDR=10.31.240.1
KUBERNETES_SERVICE_HOST=10.31.240.1
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_PORT_HTTPS=443
HOME=/root