環境變數 - daniel-qa/Azure-Kubernetes-Service GitHub Wiki

  • 直接在 yaml 檔設定 env
apiVersion: v1
kind: Pod
metadata: 
  name: myweb
spec:
  - name: myweb
    image: nginx
    ports:
      - containerPort: 8080
    env: 
      - name: color
        value: blue

env是array架構,所以每個環境變數要以-符號區隔

  • 第二種方式, 在創建Pod時在後面加上-e參數
$ kubectl run my-web -e color=blue

在 kubernetes 官方網站的範例中,會使用字串方式 (兩個雙引號 “") 來進行設定

  • 官方範例
apiVersion: v1
kind: Pod
metadata:
  name: dependent-envars-demo
spec:
  containers:
    - name: dependent-envars-demo
      args:
        - while true; do echo -en '\n'; printf UNCHANGED_REFERENCE=$UNCHANGED_REFERENCE'\n'; printf SERVICE_ADDRESS=$SERVICE_ADDRESS'\n';printf ESCAPED_REFERENCE=$ESCAPED_REFERENCE'\n'; sleep 30; done;
      command:
        - sh
        - -c
      image: busybox
      env:
        - name: SERVICE_PORT
          value: "80"
        - name: SERVICE_IP
          value: "172.17.0.1"
        - name: UNCHANGED_REFERENCE
          value: "$(PROTOCOL)://$(SERVICE_IP):$(SERVICE_PORT)"
        - name: PROTOCOL
          value: "https"
        - name: SERVICE_ADDRESS
          value: "$(PROTOCOL)://$(SERVICE_IP):$(SERVICE_PORT)"
        - name: ESCAPED_REFERENCE
          value: "$$(PROTOCOL)://$(SERVICE_IP):$(SERVICE_PORT)"