删除原tomcat-deploy

kubectl delete deployment tomcat-deploy

修改tomcat-deployment部署文件,增加mount属性

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: tomcat-deploy
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: tomcat-cluster
    spec:
      volumes:
      - name: web-app
        hostPath:
          path: /mnt     # 本地/mnt路径已经和之前的192.168.121.150:/usr/local/data/www-data通过nfs映射
      containers:
      - name: tomcat-cluster
        image: tomcat:latest
        ports:
        - containerPort: 8080
        volumeMounts:
        - name: web-app  # 名字和上面volumes的name对应
          mountPath: /usr/local/tomcat/webapps  # 这样容器就知道tomcat的webapps路径实际指向了宿主机的/mnt

再部署以后,可以进入node1的tomcat容器检查

[bigcat@node1 ~]$ sudo docker ps
CONTAINER ID        IMAGE                  COMMAND                  CREATED              STATUS              PORTS   NAMES
c3d82f7e5b64        tomcat                 "catalina.sh run"        About a minute ago   Up About a minute           k8s_tomcat-cluster_tomcat-deploy-6678xxx

sudo docker exec -it c3d82f7e5b64 /bin/bash
ls /usr/local/tomcat/webapps/

也可以在master上检查

[bigcat@master k8s]$ kubectl get pod -o wide
NAME                             READY   STATUS    RESTARTS   AGE   IP           NODE    NOMINATED NODE   READINESS GATES
tomcat-deploy-6678dccdc9-8pzqn   1/1     Running   0          37s   10.244.2.6   node2   <none>           <none>
tomcat-deploy-6678dccdc9-r57gc   1/1     Running   0          37s   10.244.1.8   node1   <none>           <none>

kubectl exec -it tomcat-deploy-6678dccdc9-8pzqn /bin/bash