4.基于NFS实现动静分离

2019-11-29  本文已影响0人  哆啦A梦_ca52
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

上一篇 下一篇

猜你喜欢

热点阅读