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