|NO.Z.00023|——————————|CloudNative|——|Kubernetes&持久化存储.V01|——|NFS存储|

一、持久存储-nfs
二、持久存储-NFS
### --- 找一台新的服务器作为nfs服务器,

[root@k8s-nfs ~]#  yum install -y nfs-utils
~~~     设置挂载的目录
[root@k8s-node2 ~]# vim /etc/exports
/data/nfs *(rw,no_root_squash)

~~~     挂载的路径必须手动创建,若是不创建,后期挂载时挂载不成功的
[root@k8s-node2 ~]# mkdir -p /data/nfs      
### --- 在k8snode节点上安装上nfs服务
~~~     两个k8s-node节点上都需要部署nfs服务,执行第一步操作
~~~     安装上之后,它会自动帮你挂载

[root@k8s-node1 ~]# yum install -y nfs-utils                
[root@k8s-node2 ~]# yum install -y nfs-utils 
### --- 在nfs服务端启动nfs

[root@k8s-nfs ~]# systemctl restart rpcbind 
[root@k8s-nfs ~]# systemctl start nfs  
### --- 在k8s集群部署应用使用nfs持久网络存储

[root@k8s-master ~]# mkdir pv
[root@k8s-master ~]# cd pv
[root@k8s-master pv]# vim nfs-nginx.yaml
apiVersion: apps/v1
kind: Deployment                                    # 部署一个deployment
metadata:
  name: nginx-dep1
spec:
  replicas: 1                                       # 副本只有一个
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        volumeMounts:                               # 通过volumeMounts挂载镜像
        - name: wwwroot
          mountPath: /usr/share/nginx/html          # 挂载路径
        ports:
        - containerPort: 80
      volumes:
        - name: wwwroot
          nfs:
            server: 10.10.10.14                      # nfs服务器地址
            path: /data/nfs
[root@k8s-master pv]# kubectl apply -f nfs-nginx.yaml 
deployment.apps/nginx-dep1 created

[root@k8s-master pv]# kubectl get pods
nginx-dep1-64f6dc84c9-7jcpm                     1/1     Running     0          8s 
### --- 查看它的创建日志

[root@k8s-master pv]# kubectl describe pod nginx-dep1-64f6dc84c9-7jcpm
Events:
  Type    Reason     Age   From                Message
  ----    ------     ----  ----                -------
  Normal  Scheduled  62s   default-scheduler   Successfully assigned default/nginx-dep1-64f6dc84c9-7jcpm to k8s-node2
  Normal  Pulling    57s   kubelet, k8s-node2  Pulling image "nginx"
  Normal  Pulled     57s   kubelet, k8s-node2  Successfully pulled image "nginx"
  Normal  Created    56s   kubelet, k8s-node2  Created container nginx
  Normal  Started    56s   kubelet, k8s-node2  Started container nginx
### --- 进入应用
[root@k8s-master pv]# kubectl exec -it nginx-dep1-64f6dc84c9-7jcpm  bash

~~~     #挂载目录下目前为空
root@nginx-dep1-64f6dc84c9-7jcpm:/# ls /usr/share/nginx/html/
### --- 在nfs服务端创建文件
[root@k8s-nfs ~]# vim /data/nfs/index.html
hello k8s-nfs server
 
~~~     进入k8s部署的持久应用服务查看挂载目录,可以查看到在k8s-nfs下创建的文件
root@nginx-dep1-64f6dc84c9-7jcpm:/# ls /usr/share/nginx/html/
index.html  
root@nginx-dep1-64f6dc84c9-7jcpm:/# cat /usr/share/nginx/html/index.html 
hello k8s-nfs server
### --- 对外暴露端口

[root@k8s-master pv]# kubectl expose deployment nginx-dep1 --port=80 --target-port=80 --type=NodePort
service/nginx-dep1 exposed
[root@k8s-master pv]# kubectl get svc
nginx-dep1       NodePort    10.99.50.53     <none>        80:30769/TCP   4s                    
### --- 通过Chrome访问持久化地址+端口号访问网页页面:http://10.10.10.14:30769/:
~~~     访问到该内容

service/nginx-dep1 exposed  

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(22)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示