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