从容器Kubernetes访问标签

问题描述 投票:1回答:2

当我们创建了复制控制器YML,我们可以给正在创建荚标签。

apiVersion: v1
kind: ReplicationController
metadata:
  name: redis
spec:
  template:
    metadata:
      labels:
        app: redis
        tier: backend

居住在这栋POD集装箱可以访问这些标签值?

docker kubernetes
2个回答
4
投票

退房Downward API,这使得容器更多地了解自己。


0
投票

从容器内访问荚的信息的一种方法是使用环境变量。对于荚YAML的文件是:

apiVersion: v1
kind: Pod
metadata:
  name: pod-env
spec:
  containers:
    - name: test-container
      image: ubuntu
      command: [ "sh", "-c"]
      args:
      - while true; do
          echo -en '\n';
          printenv MY_NODE_NAME MY_POD_NAME;
          printenv MY_POD_IP 
          sleep 1000;
        done;
      env:
        - name: MY_NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        - name: MY_POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: MY_POD_IP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
  restartPolicy: Never

该mY_POD_NAME环境变量会从吊舱的领域spec.nodeName它的价值。同样,我们也可以容器的字段值。为了验证此连接使用命令荚:

kubectl exec -it pod-env -- /bin/bash

和打印环境变量:

printenv MY_POD_NAME

从吊舱容器传递信息的另一种方法是使用downwardAPI:https://kubernetes.io/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/

© www.soinside.com 2019 - 2024. All rights reserved.