我有以下Pod清单文件。在其中,我定义了一些环境变量。
我想如下将环境变量值分配给容器端口。
- containerPort: $(PORT_HTTP)
但是当我尝试创建该Yaml触发错误时:
ValidationError(Pod.spec.containers[0].ports[0].containerPort): invalid type for io.k8s.api.core.v1.ContainerPort.containerPort: got "string", expected "integer"; if you choose to ignore these errors, turn validation off with --validate=false
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: webapp
name: webapp
spec:
containers:
- env:
- name: PORT_HTTP
value: 8080
- name: PORT_HTTPS
value: 8443
image: nginx
name: webapp
ports:
- containerPort: $(PORT_HTTP)
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Never
status: {}
如何将字符串值转换为Yaml中的整数值。
答案 0 :(得分:0)
在Kubernetes中不会发生环境变量替换。为此,您可以使用Helm。或者您可以按以下方式使用shell命令,
( echo "cat <<EOF" ; cat pod.yaml; echo EOF ) | sh > pod-variable-resolved.yaml
然后使用它在kubernetes中创建pod。
kubectl apply -f pod-variable-resolved.yaml