Docker Kubernetes Volume 網絡數據卷html
因爲支持網絡數據卷衆多 今天只拿nfs做爲案例。nginx
支持網絡數據卷vim
環境:api
1、搭建NFS服務與客戶端bash
一、管理節點:安裝nfs服務端、配置nfs主配置文件、添加權限、啓動服務器
yum install nfs-utils -y
vim /etc/exports
# 添加目錄給相應網段訪問並添加讀寫權限 /data 192.168.1.0/24(insecure,rw,async,no_root_squash)
# 建立共享目錄,添加權限 mkdir -p /data chmod 777 /data
# 開啓rpc服務 systemctl start rpcbind
# 啓動服務並設置開機自啓 systemctl start nfs
二、工做節點:安裝nfs客戶端、啓動服務網絡
yum install nfs-utils -y
# 開啓rpc服務 systemctl start rpcbind # 啓動服務並設置開機自啓 systemctl start nfs
2、共享NFS網絡數據卷app
一、管理節點:建立yaml文件async
vim nginx-nfs.yamlide
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-deployment-nfs spec: replicas: 3 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.10 volumeMounts: - name: wwwroot mountPath: /var/www/html ports: - containerPort: 80 volumes: - name: nfs: server: 192.168.1.79 path: /data
# 指定api版本 apiVersion: extensions/v1beta1 # 指定須要建立的資源對象 kind: Deployment # 源數據、能夠寫name,命名空間,對象標籤 metadata: # 指定對象名稱 name: nginx-deployment2-nfs # 描述資源相關信息 spec: # 指定pod 副本數,默認1 replicas: 3 # 描述資源具體信息 template: # 匹配標籤字段 metadata: # 指定pod標籤value:key labels: # 標籤名 app: nginx # 管理容器 spec: # 指定容器信息 containers: # 指定容器名稱 - name: nginx # 指定鏡像名稱 image: nginx:1.10 # 網絡數據卷管理 volumeMounts: # 數據卷名稱 - name: wwwroot # 容器數據卷掛載路徑 mountPath: /var/www/html # 端口管理 ports: # 暴露端口 - containerPort: 80 # 網絡共享數據卷管理 volumes: # 數據卷名稱兩邊須要相同 - name: wwwroot # 數據卷類型爲nfs nfs: # NFS服務器地址 server: 192.168.1.79 # 服務端共享路徑 path: /data
二、管理節點:建立Deployment
kubectl create -f nginx-nfs.yaml
命令:kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE nginx-deployment-nfs-5fbcddddb6-7btt4 1/1 Running 0 55s 172.17.2.11 192.168.1.78 nginx-deployment-nfs-5fbcddddb6-sf6bz 1/1 Running 0 55s 172.17.2.10 192.168.1.78 nginx-deployment-nfs-5fbcddddb6-ws8wk 1/1 Running 0 55s 172.17.1.9 192.168.1.77
命令:kubectl describe nginx-deployment-nfs-5fbcddddb6-sf6bz Mounts: /var/www/html from wwwroot (rw) Conditions: Type Status Initialized True Ready True PodScheduled True Volumes: wwwroot: Type: NFS (an NFS mount that lasts the lifetime of a pod) Server: 192.168.1.79 Path: /data ReadOnly: false QoS Class: BestEffort Node-Selectors: <none> Tolerations: <none> reated container
三、測試
# 一、宿主端nfs共享文件內建立文件 命令:touch /data/123 # 二、進入容器內查看文件是否共享 命令:kubectl exec nginx-deployment-nfs-5fbcddddb6-sf6bz -it bash root@nginx-deployment-nfs-5fbcddddb6-sf6bz:/# ls /var/www/html/ 123