中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Kubernetes中secret及configmap如何配置管理

發布時間:2021-11-23 14:32:16 來源:億速云 閱讀:171 作者:小新 欄目:系統運維

這篇文章給大家分享的是有關Kubernetes中secret及configmap如何配置管理的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

配置管理
Pod使用secret兩種方式:
? 變量注入 (就是我們在寫yaml的時候直接讓它以變量的方式注入進去,注入pod中,去引用這個變量,去做相關的處理)
? 掛載(直接從volume的形式掛載到我們指定的目錄下)
Configmap
與Secret類似,區別在于ConfigMap保存的是不需要加密配置信息。
應用場景:應用配置

官方文檔使用secret:https://kubernetes.io/docs/concepts/configuration/secret/

可以創建secret主要放一些加密數據,不希望別人看到的,比如用戶名密碼,保存這樣的數據
存儲好怎么讓用戶去訪問,可以通過ingress指定一下secret名字,一般情況下創建pod業務容器的話,就需要指定這個secret到哪個地方或者以volume的方式掛載的
加密數據并存放Etcd中,讓Pod的容器以掛載Volume方式訪問。
應用場景:憑據
創建資源的時候 ,  YAML 或 JSON 格式 , 然后創建該對象。在包含兩個映射 : stringdata 和數據。該數據字段用于存儲任意數據 , 用 Base64 編碼。在 stringdata 提供 , 并允許您提供秘密數據為未編碼的字符串。
例如 , 兩個字符串存儲到在yaml的使用 , 將他們轉換成 BASE64:
這里的變量轉換為編碼,提示敏感字符,下面的yaml文件沒寫上去,抱歉

[root@k8s-master demo]# echo -n 'root' | base64

[root@k8s-master demo]# echo -n 'zhaocheng' | base64
[root@k8s-master cert]# vim secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  username: 
  password:
[root@k8s-master cert]# kubectl create -f secret.yaml 
[root@k8s-master demo]# vim secret-pod1.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - name: nginx
    image: nginx
    env:
      - name: SECRET_USERNAME
        valueFrom:
          secretKeyRef:
            name: mysecret
            key: username
      - name: SECRET_PASSWORD
        valueFrom:
          secretKeyRef:
            name: mysecret
            key: password
[root@k8s-master demo]# kubectl create -f secret-pod1.yaml 
[root@k8s-master demo]# kubectl get pod
NAME                     READY   STATUS    RESTARTS   AGE
busybox                  1/1     Running   35         4d1h
mypod                    1/1     Running   0          2m27s
nginx-5ddcc6cb74-m8dwr   1/1     Running   0          5h57m
nginx-5ddcc6cb74-rs8b6   1/1     Running   0          4h44m
nginx-5ddcc6cb74-zm7cz   1/1     Running   0          4h44m
[root@k8s-master demo]# kubectl exec -it mypod sh
ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
echo $SECRET_USERNAME
root
echo $SECRET_PASSWORD
zhaocheng

應用場景:
一般寫Dockerfile的時候,或者docker-compose的時候,能自動的去處理這些變量,也就是這個值被k8s進來解碼

通過volume的形式來掛載
一般使用volume來把一些證書比如https的證書通過變量的形式傳入掛載到目錄中

[root@k8s-master demo]# vim secret-pod2.yaml
apiVersion: v1
kind: Pod
metadata:
  name: mypod2
spec:
  containers:
  - name: nginx
    image: nginx
    volumeMounts:
    - name: foo
      mountPath: "/etc/foo"
      readOnly: true
  volumes:
  - name: foo
    secret:
      secretName: mysecret
[root@k8s-master demo]# kubectl create -f secret-pod2.yaml 
[root@k8s-master demo]# kubectl get pod
NAME                     READY   STATUS    RESTARTS   AGE
mypod                    1/1     Running   0          6m1s
mypod2                   1/1     Running   0          9s
nginx-5ddcc6cb74-lplxl   1/1     Running   0          43m

[root@k8s-master demo]# kubectl exec -it mypod2 bash
root@mypod2:/# ls /etc/foo/
password  username
root@mypod2:/# cat /etc/foo/password 
zhaochengroot@mypod2:/# cat /etc/foo/username
rootroot@mypod2:/#

Configmap
與Secret類似,區別在于ConfigMap保存的是不需要加密配置信息。
應用場景:應用配置
使用configmap來傳入變量
官方文檔:https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/

[root@k8s-master demo]# vim configmap1.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: myconfig
  namespace: default
data:
  special.level: info
  special.type: hello

---

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: busybox
      image: busybox
      command: [ "/bin/sh", "-c", "echo $(LEVEL) $(TYPE)" ]
      env:
        - name: LEVEL
          valueFrom:
            configMapKeyRef:
              name: myconfig
              key: special.level
        - name: TYPE
          valueFrom:
            configMapKeyRef:
              name: myconfig
              key: special.type
  restartPolicy: Never
[root@k8s-master demo]# kubectl get pod
NAME                     READY   STATUS      RESTARTS   AGE
mypod                    1/1     Running     0          26m
mypod2                   1/1     Running     0          20m
mypod3                   0/1     Completed   0          41s
nginx-5ddcc6cb74-lplxl   1/1     Running     0          63m
[root@k8s-master demo]# kubectl logs mypod3
info hello

使用redis的一個實例
[root@k8s-master demo]# vim configmap2.yaml 
apiVersion: v1
kind: ConfigMap
metadata:
  name: redis-config
data:
  redis.properties: |
    redis.host=127.0.0.1
    redis.port=6379
    redis.password=123456

---

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: busybox
      image: busybox
      command: [ "/bin/sh","-c","cat /etc/config/redis.properties" ]
      volumeMounts:
      - name: config-volume
        mountPath: /etc/config
  volumes:
    - name: config-volume
      configMap:
        name: redis-config
  restartPolicy: Never
[root@k8s-master demo]# kubectl create -f configmap2.yaml 

[root@k8s-master demo]# kubectl get pod
NAME                     READY   STATUS      RESTARTS   AGE
mypod                    1/1     Running     0          30m
mypod2                   1/1     Running     0          24m
mypod3                   0/1     Completed   0          4m58s
mypod4                   0/1     Completed   0          15s
nginx-5ddcc6cb74-lplxl   1/1     Running     0          68m
驗證這里已經將內容發送到控制臺
[root@k8s-master demo]# kubectl logs mypod4
redis.host=127.0.0.1
redis.port=6379
redis.password=123456

感謝各位的閱讀!關于“Kubernetes中secret及configmap如何配置管理”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

九龙县| 乌兰浩特市| 新化县| 丹寨县| 阿图什市| 双牌县| 东至县| 长海县| 旺苍县| 旅游| 来凤县| 乐亭县| 阜南县| 丁青县| 中卫市| 大港区| 大化| 中西区| 额济纳旗| 宜昌市| 济宁市| 五家渠市| 金山区| 饶河县| 乌拉特后旗| 莎车县| 迁西县| 达孜县| 伊川县| 新民市| 淳化县| 安化县| 甘孜县| 汝南县| 淮南市| 大丰市| 卓资县| 岳西县| 佛教| 视频| 南雄市|