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

  

posted @ 2021-12-19 16:05  每天都在学习的自己  阅读(51)  评论(0编辑  收藏  举报