【k8s】Secret-生成環境變量


環境

  1. kubernetes 1.20.6
  2. Spring Boot 2.5.0-M3

目標

將 Secret 中的配置用來生成 Pod 中的環境變量,如果 Secret 有修改,環境變量不會自動更新。
在使用時,會自動使用 base64 將值解碼。

示例

准備 Secret

[root@master ~]# kubectl describe secrets mysecret
Name:         mysecret
Namespace:    default
Labels:       <none>
Annotations:  <none>

Type:  Opaque

Data
====
age:   2 bytes
name:  7 bytes

創建環境變量

apiVersion: v1
kind: Pod
metadata:
  name: spring-k8s
spec:
  containers:
    - name: spring-k8s
      image: jiangbo920827/spring-k8s:liveness
      envFrom:
        - secretRef:
            name: mysecret
      ports:
        - containerPort: 8080
[root@master ~]# kubectl exec spring-k8s -- printenv
...
HOSTNAME=spring-k8s
age=44
name=jiangbo
...

創建帶前綴的環境變量

apiVersion: v1
kind: Pod
metadata:
  name: spring-k8s
spec:
  containers:
    - name: spring-k8s
      image: jiangbo920827/spring-k8s:liveness
      envFrom:
        - secretRef:
            name: mysecret
          prefix: SECRET_
      ports:
        - containerPort: 8080
[root@master ~]# kubectl exec spring-k8s -- sh -c "printenv | grep SECRET"
SECRET_name=jiangbo
SECRET_age=44

自定義環境變量 Key

apiVersion: v1
kind: Pod
metadata:
  name: spring-k8s
spec:
  containers:
    - name: spring-k8s
      env:
        - name: FULL_NAME
          valueFrom:
            secretKeyRef:
              name: mysecret
              key: name
        - name: SECRET_AGE
          valueFrom:
            secretKeyRef:
              name: mysecret
              key: age
      image: jiangbo920827/spring-k8s:liveness
      ports:
        - containerPort: 8080
[root@master ~]# kubectl exec spring-k8s -- printenv
...
HOSTNAME=spring-k8s
FULL_NAME=jiangbo
SECRET_AGE=44
...

總結

Secret 可以使用來生成 Pod 的環境變量。

附錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM