我有一个 kubernetes 集群,其中将运行一些 Pod。对于每个 pod,我想分配一个唯一的 id 作为环境变量。例如:pod 1 server_id= 1,pod 2 server_id=2 等。任何人都知道如何做到这一点。我正在构建我的 docker 映像并通过 gitlab ci 部署到集群。
将 ENV 变量添加到 helm 或 YAML 模板中
如果您的部署不同,您可以将变量添加到 YAML 文件并根据要求应用它。
将变量值放入POD并使用
否则,您可以获得部署的 POD 名称,该名称将彼此不同,并且您可以使用唯一的名称
apiVersion: v1
kind: Pod
metadata:
name: dapi-envars-fieldref
spec:
containers:
- name: test-container
image: k8s.gcr.io/busybox
command: [ "sh", "-c"]
args:
- while true; do
echo -en '\n';
printenv MY_NODE_NAME MY_POD_NAME MY_POD_NAMESPACE;
printenv MY_POD_IP MY_POD_SERVICE_ACCOUNT;
sleep 10;
done;
env:
- name: MY_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: MY_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: MY_POD_SERVICE_ACCOUNT
valueFrom:
fieldRef:
fieldPath: spec.serviceAccountName
restartPolicy: Never
Run Code Online (Sandbox Code Playgroud)
如果您想设置自己的变量和值,则必须使用不同的部署。
如果你想管理序列,你需要使用有状态集。
排序类似
POD-1
POD-2
POD-3
Run Code Online (Sandbox Code Playgroud)
作为环境变量,您想要的只是这个,您可以使用有状态集 POD 名称并从节点获取值并注入回 POD,应用程序进一步使用它。
| 归档时间: |
|
| 查看次数: |
3171 次 |
| 最近记录: |