1. 程式人生 > 其它 >12.Kubernetes配置管理

12.Kubernetes配置管理

1.Secret

Secret的主要作用就是加密資料,然後存在etcd裡面,讓Pod容器以掛載Volume方式進行訪問

場景:使用者名稱 和 密碼進行加密

一般場景的是對某個字串進行base64編碼 進行加密

echo -n 'admin' | base64

變數形式掛載到Pod

  • 建立secret加密資料的yaml檔案 secret.yaml

然後使用下面命令建立一個pod

kubectl create -f secret.yaml

通過get命令檢視

kubectl get pods

然後我們通過下面的命令,進入到我們的容器內部

kubectl exec -it mypod bash

然後我們就可以輸出我們的值,這就是以變數的形式掛載到我們的容器中

# 輸出使用者
echo $SECRET_USERNAME
# 輸出密碼
echo $SECRET_PASSWORD

最後如果我們要刪除這個Pod,就可以使用這個命令

kubectl delete -f secret-val.yaml

1.1 資料卷形式掛載

首先我們建立一個 secret-val.yaml 檔案

然後建立我們的 Pod

# 根據配置建立容器
kubectl apply -f secret-val.yaml
# 進入容器
kubectl exec -it mypod bash
# 檢視
ls /etc/foo

2.ConfigMap

ConfigMap作用是儲存不加密的資料到etcd中,讓Pod以變數或資料卷Volume掛載到容器中

應用場景:配置檔案

2.1 建立配置檔案

首先我們需要建立一個配置檔案 redis.properties

redis.port=127.0.0.1
redis.port=6379
redis.password=123456

2.2 建立ConfigMap

我們使用命令建立configmap

kubectl create configmap redis-config --from-file=redis.properties

然後檢視詳細資訊

kubectl describe cm redis-config

2.3 Volume資料卷形式掛載

首先我們需要建立一個 cm.yaml

然後使用該yaml建立我們的pod

# 建立
kubectl apply -f cm.yaml
# 檢視
kubectl get pods

最後我們通過命令就可以檢視結果輸出了

kubectl logs mypod

2.4 以變數的形式掛載Pod

首先我們也有一個 myconfig.yaml檔案,宣告變數資訊,然後以configmap建立

然後我們就可以建立我們的配置檔案

# 建立pod
kubectl apply -f myconfig.yaml
# 獲取
kubectl get cm

然後我們建立完該pod後,我們就需要在建立一個 config-var.yaml 來使用我們的配置資訊

最後我們檢視輸出

kubectl logs mypod