root@master:/opt/k8s-data/yaml/web/linux37/nginx# kubectl exec -it linux37-nginx-deployment-78f658dd98-9xvcv bash -n linux37
安装NFS服务:
root@haproxy1:~# apt install nfs-kernel-server -y
root@haproxy1:~# vim /etc/exports
/data/linux37 *(rw no_root_squash)
root@haproxy1:~# mkdir -p /data/linux37
root@haproxy1:~# systemctl start nfs-server
root@haproxy1:~# systemctl enable nfs-server
测试是否挂载上了
root@master:~# mount -t nfs 192.168.200.201:/data/linux37 /mnt/
查看已经挂载上了
root@master:~# df -h | grep /mn
192.168.200.201:/data/linux37 98G 6.2G 87G 7% /mnt
查看pod信息
root@master:~# kubectl get pod -n linux37
NAME READY STATUS RESTARTS AGE
linux37-nginx-deployment-78f658dd98-9xvcv 1/1 Running 0 100m
linux37-nginx-deployment-78f658dd98-qfwzw 1/1 Running 0 114m
linux37-tomcat-app1-deployment-7d54894fdb-82xdl 1/1 Running 0 7h22m
linux37-tomcat-app2-deployment-6cfff645c-rsd8k 1/1 Running 0 6h55m
root@master:~# kubectl exec -it linux37-nginx-deployment-78f658dd98-9xvcv bash -n linux37
创建文件夹
root@haproxy1:/data/linux37# mkdir /images
root@haproxy1:/data/linux37# mkdir static
修改nfs的地址
root@master:/opt/k8s-data/yaml/web/linux37/nginx# vim nginx.yaml
39 volumeMounts:
40 - name: linux37-images
41 mountPath: /data/nginx/html/linux37/images
42 readOnly: false
48 volumes:
49 - name: linux37-images
50 nfs:
51 server: 192.168.200.201
52 path: /data/linux37/images
root@master:/opt/k8s-data/yaml/web/linux37/nginx# kubectl apply -f nginx.yaml
查看pod信息
root@master:/opt/k8s-data/yaml/web/linux37/nginx# kubectl get pod -n linux37
NAME READY STATUS RESTARTS AGE
linux37-nginx-deployment-7db6f7447f-2vj94 1/1 Running 0 18m
linux37-nginx-deployment-7db6f7447f-fvn59 1/1 Running 0 18m
进入到pod里
root@master:/opt/k8s-data/yaml/web/linux37/nginx# kubectl exec -it linux37-nginx-deployment-7db6f7447f-fvn59 bash -n linux37
查看pod已经挂载上去
[root@linux37-nginx-deployment-7db6f7447f-fvn59 /]# df -TH
192.168.200.201:/data/linux37/images nfs4 106G 6.6G 94G 7% /data/nginx/html/linux37/images
从网上拖一个图片过来
root@haproxy1:/data/linux37/images# ls
1.jpg

添加创建pod的yaml文件
root@master:/opt/k8s-data/yaml/web/linux37/nginx# vim nginx.yaml
38 volumeMounts:
39 - name: linux37-images
40 mountPath: /data/nginx/html/linux37/images
41 readOnly: false
42 - name: linux37-static
43 mountPath: /data/nginx/html/linux37/static
44 readOnly: false
45 volumes:
46 - name: linux37-images
47 nfs:
48 server: 192.168.200.201
49 path: /data/linux37/images
50 - name: linux37-static
51 nfs:
52 server: 192.168.200.201
53 path: /data/linux37/static
更新pod
root@master:/opt/k8s-data/yaml/web/linux37/nginx# kubectl apply -f nginx.yaml
查看有两个nfs的挂载信息
[root@linux37-nginx-deployment-76c4687b54-l2n26 /]# df -Th | grep 192
192.168.200.201:/data/linux37/static nfs4 98G 6.2G 87G 7% /data/nginx/html/linux37/static
192.168.200.201:/data/linux37/images nfs4 98G 6.2G 87G 7% /data/nginx/html/linux37/images
创建文件
root@haproxy1:/data/linux37/static# cat static.html
static

修改tomcat1的pod配置文件
root@master:/opt/k8s-data/dockerfile/web/linux37/tomcat-app1# cat tomcat-app1.yaml | grep ^[^#] | grep -v "#"
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
labels:
app: linux37-tomcat-app1-deployment-label
name: linux37-tomcat-app1-deployment
namespace: linux37
spec:
replicas: 1
selector:
matchLabels:
app: linux37-tomcat-app1-selector
template:
metadata:
labels:
app: linux37-tomcat-app1-selector
spec:
containers:
- name: linux37-tomcat-app1-container
image: harbor.wyh.net/linux37/linux37-tomcat:app1
imagePullPolicy: Always
ports:
- containerPort: 8080
protocol: TCP
name: http
env:
- name: "password"
value: "123456"
- name: "age"
value: "18"
resources:
limits:
cpu: 2
memory: "2048Mi"
requests:
cpu: 0.5
memory: "1024Mi"
volumeMounts:
- name: linux37-images
mountPath: /data/nginx/html/linux37/images
readOnly: false
- name: linux37-static
mountPath: /data/nginx/html/linux37/static
readOnly: false
volumes:
- name: linux37-images
nfs:
server: 192.168.200.248
path: /data/linux37/images
- name: linux37-static
nfs:
server: 192.168.200.248
path: /data/linux37/static
---
kind: Service
apiVersion: v1
metadata:
labels:
app: linux37-tomcat-app1-service-label
name: linux37-tomcat-app1-service
namespace: linux37
spec:
type: NodePort
ports:
- name: http
port: 80
protocol: TCP
targetPort: 8080
nodePort: 30002
selector:
app: linux37-tomcat-app1-selector
---
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
namespace: linux37
name: linux37-tomcat-app1-podautoscaler
labels:
app: linux37-tomcat-app1
version: v2beta1
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: linux37-tomcat-app1-deployment
minReplicas: 1
maxReplicas: 5
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 1
- type: Resource
resource:
name: memory
targetAverageValue: 1024Mi
root@master:/opt/k8s-data/dockerfile/web/linux37/tomcat-app1# kubectl apply -f tomcat-app1.yaml
创建tomcat2的配置文件
root@master:/opt/k8s-data/dockerfile/web/linux37/tomcat-app2# cat tomcat-app2.yaml | grep ^[^#] | grep -v "#"
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
labels:
app: linux37-tomcat-app2-deployment-label
name: linux37-tomcat-app2-deployment
namespace: linux37
spec:
replicas: 1
selector:
matchLabels:
app: linux37-tomcat-app2-selector
template:
metadata:
labels:
app: linux37-tomcat-app2-selector
spec:
containers:
- name: linux37-tomcat-app2-container
image: harbor.wyh.net/linux37/linux37-tomcat:app2
imagePullPolicy: Always
ports:
- containerPort: 8080
protocol: TCP
name: http
env:
- name: "password"
value: "123456"
- name: "age"
value: "18"
resources:
limits:
requests:
volumeMounts:
- name: linux37-images
mountPath: /data/nginx/html/linux37/images
readOnly: false
- name: linux37-static
mountPath: /data/nginx/html/linux37/static
readOnly: false
volumes:
- name: linux37-images
nfs:
server: 192.168.200.201
path: /data/linux37/images
- name: linux37-static
nfs:
server: 192.168.200.201
path: /data/linux37/static
---
kind: Service
apiVersion: v1
metadata:
labels:
app: linux37-tomcat-app2-service-label
name: linux37-tomcat-app2-service
namespace: linux37
spec:
type: NodePort
ports:
- name: http
port: 80
protocol: TCP
targetPort: 8080
nodePort: 30003
selector:
app: linux37-tomcat-app2-selector
创建tomcat2
root@master:/opt/k8s-data/dockerfile/web/linux37/tomcat-app2# kubectl apply -f tomcat-app2.yaml
查看tomcat的挂载情况
[root@linux37-tomcat-app1-deployment-798998586b-lz58s /]# df -Th | grep 19
192.168.200.201:/data/linux37/static nfs4 98G 6.2G 87G 7% /data/nginx/html/linux37/static
192.168.200.201:/data/linux37/images nfs4 98G 6.2G 87G 7% /data/nginx/html/linux37/images
查看App2的
[root@linux37-tomcat-app2-deployment-f5749f98c-lcwqm /]# df -Th | grep 192
192.168.200.201:/data/linux37/static nfs4 98G 6.2G 87G 7% /data/nginx/html/linux37/static
192.168.200.201:/data/linux37/images nfs4 98G 6.2G 87G 7% /data/nginx/html/linux37/images
网友评论