Linux - K8S - DownwardAPI
# DownwardAPI - 加载宿主机信息到pod # case 1 [15:56:47 root@master1 storage]#cat 23-storage-downwardapi-env-test.yaml apiVersion: v1 kind: Pod metadata: name: downwardapi-env-test labels: app: downwardapi-env spec: containers: - name: downwardapi-env-test image: 10.0.0.55:80/mykubernetes/pod_test:v0.1 resources: requests: memory: "32Mi" cpu: "250m" limits: memory: "64Mi" cpu: "500m" env: - name: THIS_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: THIS_POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: THIS_APP_LABEL valueFrom: fieldRef: fieldPath: metadata.labels['app'] - name: THIS_CPU_LIMIT valueFrom: resourceFieldRef: resource: limits.cpu - name: THIS_MEM_REQUEST valueFrom: resourceFieldRef: resource: requests.memory divisor: 1Mi [15:56:51 root@master1 storage]#kubectl apply -f 23-storage-downwardapi-env-test.yaml pod/downwardapi-env-test created [15:57:01 root@master1 storage]#kubectl get all -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod/downwardapi-env-test 1/1 Running 0 6s 10.244.3.7 node1.noisedu.cn <none> <none> NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 7d16h <none> [15:57:52 root@master1 storage]#kubectl exec -it downwardapi-env-test -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=downwardapi-env-test TERM=xterm THIS_POD_NAME=downwardapi-env-test THIS_POD_NAMESPACE=default THIS_APP_LABEL=downwardapi-env THIS_CPU_LIMIT=1 THIS_MEM_REQUEST=32 KUBERNETES_PORT=tcp://10.96.0.1:443 KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443 KUBERNETES_PORT_443_TCP_PROTO=tcp KUBERNETES_PORT_443_TCP_PORT=443 KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1 KUBERNETES_SERVICE_HOST=10.96.0.1 KUBERNETES_SERVICE_PORT=443 KUBERNETES_SERVICE_PORT_HTTPS=443 DEPLOYENV=Production RELEASE=Stable PS1=[\u@\h \w]\$ HOME=/root # case 2 [15:59:35 root@master1 storage]#cat 24-storage-downwardapi-volume-test.yaml kind: Pod apiVersion: v1 metadata: name: downwardapi-volume-test labels: zone: Shanghai rack: pudong001 app: redis-master annotations: region: Asia-China spec: containers: - name: downwardapi-volume-test image: 10.0.0.55:80/mykubernetes/pod_test:v0.1 resources: requests: memory: "32Mi" cpu: "250m" limits: memory: "64Mi" cpu: "500m" volumeMounts: - name: podinfo mountPath: /etc/podinfo readOnly: false volumes: - name: podinfo downwardAPI: defaultMode: 420 items: - fieldRef: fieldPath: metadata.namespace path: pod_namespace - fieldRef: fieldPath: metadata.labels path: pod_labels - fieldRef: fieldPath: metadata.annotations path: pod_annotations - resourceFieldRef: containerName: downwardapi-volume-test resource: limits.cpu path: "cpu_limit" - resourceFieldRef: containerName: downwardapi-volume-test resource: requests.memory divisor: "1Mi" path: "mem_request" [16:01:11 root@master1 storage]#kubectl apply -f 24-storage-downwardapi-volume-test.yaml pod/downwardapi-volume-test created [16:02:03 root@master1 storage]#kubectl get all -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod/downwardapi-volume-test 1/1 Running 0 9s 10.244.4.4 node2.noisedu.cn <none> <none> NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 7d16h <none> [16:02:50 root@master1 storage]#kubectl exec -it downwardapi-volume-test -- cat /etc/podinfo/pod_labels app="redis-master" rack="pudong001" zone="Shanghai"[16:02:51 root@master1 storage]#kubectl exec -it downwardapi-volume-test -- cat /etc/podinfo/pod_namespace default