Kubernetes存储卷的使用
生活随笔
收集整理的這篇文章主要介紹了
Kubernetes存储卷的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在Kubernetes中, 有這不同方式的內容掛載, 簡單記錄一下他們的配置方式.
ConfigMap
配置內容
內容配置
apiVersion: v1 kind: ConfigMap metadata:name: test-config data: # 添加配置的 key-value 內容test-key: test-value引入
apiVersion: v1 kind: Pod spec: containers: - name: testimage: nginxenv:# 場景1: 可以用來配置環境變量- name: ENV_NAMEvalueFrom: # 指定某一個 configMap 中的某個 key 作為 valueconfigMapKeyRef:name: test-configkey: test-key# 定義進行掛在的數據卷volumeMounts:- name: config-volumemountPath: /etc/configenvFrom:# 場景2: 將其整個導入作為 env- configMapRef:name: test-configvolumes: - name: config-volume# 場景3: 將 ConfigMap 作為數據進行導入# 導入后, key作為文件名, value 作為文件內容 configMap:name: test-configSecret
存放一些加密信息, 當前加密就是base64…
配置掛載
其使用方式基本和ConfigMap相同, 就是單純的換個字段名
內容配置
apiVersion: v1 kind: Secret metadata: name: test-secret type: Opaque data: # 這里存放的是 base64 編碼的內容password: cGFzc3dvcmQ=引入
apiVersion: v1 kind: Pod spec: containers: - name: testimage: nginxenv:# 場景1: 可以用來配置環境變量- name: ENV_NAMEvalueFrom: # 指定某一個 configMap 中的某個 key 作為 valuesecretKeyRef: name: test-secretkey: password# 定義進行掛在的數據卷volumeMounts:- name: config-volumemountPath: /etc/configenvFrom:# 場景2: 將其整個導入作為 env- secretRef:name: test-secretvolumes: - name: config-volume# 場景3: 將 Secret 作為數據進行導入# 導入后, key作為文件名, value 作為文件內容 secret:secretName: test-secret鏡像倉庫鑒權
當拉取的鏡像倉庫是私有倉庫時, 需要增加鑒權內容
內容配置
apiVersion: v1 kind: Secret metadata:name: test-register-secret type: kubernetes.io/dockerconfigjson data:# 文件 ~/.docker/config.json 的 base64 編碼內容# 其內容就是個 json: {"auths":{"test.pull.com":{"username":"admin","password":"123456","email":"hujingnb@qq.com","auth":"YWRtaW46MTIzNDU2"}}}.dockerconfigjson: eyJhdXRocyI6eyJ0ZXN0LnB1bGwuY29tIjp7InVzZXJuYW1lIjoiYWRtaW4iLCJwYXNzd29yZCI6IjEyMzQ1NiIsImVtYWlsIjoiaHVqaW5nbmJAcXEuY29tIiwiYXV0aCI6IllXUnRhVzQ2TVRJek5EVTIifX19這玩意通過配置文件生成費點勁, 所有可以通過命令行直接生成:
kubectl create secret docker-registry test-register-secret \--docker-server=<你的鏡像倉庫服務器> \--docker-username=<你的用戶名> \--docker-password=<你的密碼> \--docker-email=<你的郵箱地址>可以通過命令查看現有 secret 鑒權內容:
kubectl get secret test-register-secret --output="jsonpath={.data.\.dockerconfigjson}" | base64 --decode
引入
apiVersion: v1 kind: Pod spec: containers: - name: testimage: nginx# 指定拉取鏡像是使用的配置信息imagePullSecrets: - name: test-register-secretVolume
直白的說, 就是磁盤的掛載.
舉個簡單的使用例子
apiVersion: v1 kind: Pod spec: containers: - name: testimage: nginx# 定義進行掛在的數據卷volumeMounts:- name: config-volumemountPath: /etc/configvolumes: - name: config-volumehostPath: path: /usr/etc/nginx/config上面將本地的目錄 /usr/etc/nginx/config 掛在到的容器的 /etc/config 上.
注意看其中的hostPath參數, 還可以替換成其他的, k8s支持很多類型的掛載卷, 這里就不一一舉例了, 具體可通過kubectl explain pod.spec.volumes 查看. 簡單列舉幾個感覺比較常用的:
- emptyDir: 在 Node 上開一個空的目錄用于共享.
- hostPath: 指定掛載 Node 本地路徑
總結
以上是生活随笔為你收集整理的Kubernetes存储卷的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java.equal例子_Java中的=
- 下一篇: 6大设计原则之里氏替换原则