k8s_使用k8s部署wordpress博客系統(一)


系統部署流程

使⽤kubernetes部署wordpress+MySQL, 並利⽤NFS去保存我們容器的源代碼以及DB數據。搭建好nfs后任意node上的Pod訪問db或者業務代碼都會有相同的效果,數據只存儲一份。
步驟:
  • 所有節點搭建nfs⽂件系統
  • 創建PersistentVolumeClaims(PVC)和PersistentVolume(PV)
  • 創建service
  • 創建Secret(注⼊MySql密碼等)
  • 創建confifigMap(初始化數據庫)
  • 部署MySQL容器組(Deployment)
  • 部署WordPress容器組(Deployment)
在K8S上部署⼀個WordPress和MySQL應⽤,其中WordPress和MySQL都使⽤PersistentVolume 和 PersistentVolumeClaim 存儲數據。
PersistentVolume 是集群中可⽤的⼀⽚存儲空間,通常由集群管理員⼿⼯提供,或者由Kubernetes 使⽤ StorageClass ⾃動提供。
PersistentVolumeClaim 代表了⽤戶(應⽤程序)對存儲空間的需求,此需求可由PersistentVolume 滿⾜。
PersistentVolume 和 PersistentVolumeClaim 都是獨⽴於 Pod 的⽣命周期,可⽤於在Pod 重啟、重新調度、甚⾄刪除之后保存數據。⼀句話表示PersistentVolume 和PersistentVolumeClaim 就是,我有多少,你要多少
 

nfs文件系統搭建

安裝nfs並設置開機啟動

#集群所有節點上執行nfs文件系統的安裝和啟動
[root@k8s-01 ~]# yum install nfs-utils -y
[root@k8s-01 ~]# systemctl enable nfs-server && systemctl start nfs-server
#啟動完成后查看nfs啟動狀態
[root@k8s-01 ~]# systemctl status nfs-server
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
  Drop-In: /run/systemd/generator/nfs-server.service.d
           └─order-with-mounts.conf
   Active: active (exited) since Mon 2021-10-04 17:51:47 CST; 16h ago
  Process: 1399 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
  Process: 1378 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 1375 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 1378 (code=exited, status=0/SUCCESS)
    Tasks: 0
   Memory: 0B
   CGroup: /system.slice/nfs-server.service

Oct 04 17:51:47 k8s-01 systemd[1]: Starting NFS server and services...
Oct 04 17:51:47 k8s-01 systemd[1]: Started NFS server and services.

master節點創建nfs掛載點

#創建/home/nfstest測試路徑,測試nfs文件系統
[root@k8s-01 home]# mkdir nfstest
#修改/home/nfstest路徑權限
#no_subtree_check不檢查其父目錄的權限,rw表示權限 讀寫,sync表示同步寫入,no_root_squash表示worknode以root訪問時賦予本地root權限
[root@k8s-01 home]# chown nfsnobody:nfsnobody /home/nfstest
[root@k8s-01 home]# echo -e "/home/nfstest *(rw,sync,no_subtree_check,no_root_squash)" > /etc/exports
#應用配置
[root@k8s-01 home]# exportfs -a

work node進行nfs掛載驗證

#worknode上創建本地掛載點
[root@k8s-02 ~]# mkdir /home/nfstest
#將worknode本地掛載點與master上的nfs掛載點映射
[root@k8s-02 ~]# mount -t nfs 192.168.188.131:/home/nfstest /home/nfstest
#本地掛載點修改屬主信息
[root@k8s-02 ~]# chown nfsnobody:nfsnobody /home/nfstest
#檢查掛載是否成功
[root@k8s-02 ~]# df -h|grep /home/nfstest
192.168.188.131:/home/nfstest   16G  7.2G  8.9G  45% /home/nfstest

#master節點上創建文件
[root@k8s-01 nfstest]# echo "test nfs on k8s-01 master" >> nfstest.file
[root@k8s-01 nfstest]# cat nfstest.file 
test nfs on k8s-01 master
#worknode上對應掛載點查看此文件
[root@k8s-02 ~]# cat /home/nfstest/nfstest.file 
test nfs on k8s-01 master

 配置mysql和wordpress的nfs文件系統

#master節點創建nfs文件主目錄以及相關設置
[root@k8s-01 ~]# mkdir -p /kube/mysql-db
[root@k8s-01 ~]# mkdir -p /kube/wordpress
[root@k8s-01 ~]# chown nfsnobody:nfsnobody /kube/mysql-db
[root@k8s-01 ~]# chown nfsnobody:nfsnobody /kube/wordpress
[root@k8s-01 ~]# vim /etc/exports
/kube/wordpress *(rw,sync,no_subtree_check,no_root_squash)
/kube/mysql-db *(rw,sync,no_subtree_check,no_root_squash)
[root@k8s-01 ~]# exportfs -a

#worknode上創建掛載點,作相應設置,並通過nfs將掛載點掛載到master對應的目錄上,k8s-01是master節點的主機名
[root@k8s-02 ~]# mkdir -p /kube/mysql-db
You have new mail in /var/spool/mail/root
[root@k8s-02 ~]# mkdir -p /kube/wordpress
[root@k8s-02 ~]# chown nfsnobody:nfsnobody /kube/mysql-db
[root@k8s-02 ~]# chown nfsnobody:nfsnobody /kube/wordpress
[root@k8s-02 ~]# mount -t nfs k8s-01:/kube/wordpress /kube/wordpress
[root@k8s-02 ~]# mount -t nfs k8s-01:/kube/mysql-db /kube/mysql-db

[root@k8s-02 ~]# df -h|grep k8s-01
k8s-01:/kube/wordpress   16G  6.0G   11G  38% /kube/wordpress
k8s-01:/kube/mysql-db    16G  6.0G   11G  38% /kube/mysql-db

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM