久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Kubernetes中secret及configmap如何配置管理

165次閱讀
沒有評論

共計 4355 個字符,預計需要花費 11 分鐘才能閱讀完成。

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

配置管理
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
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
echo $SECRET_USERNAME
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 如何配置管理”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計4355字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 禹州市| 黄平县| 宿州市| 辽阳市| 虎林市| 咸宁市| 南川市| 府谷县| 宜宾市| 古浪县| 安平县| 克拉玛依市| 巴中市| 陕西省| 平乡县| 米易县| 五莲县| 铁力市| 洛扎县| 泸溪县| 闵行区| 固始县| 台安县| 荣成市| 尉犁县| 松江区| 衡阳市| 安康市| 洪洞县| 江山市| 淮阳县| 揭阳市| 北海市| 竹溪县| 南木林县| 岢岚县| 抚远县| 永年县| 武安市| 湄潭县| 当阳市|