Nacos(十)之Kubernetes Nacos
生活随笔
收集整理的這篇文章主要介紹了
Nacos(十)之Kubernetes Nacos
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉載自??Kubernetes Nacos
本項目包含一個可構建的Nacos Docker Image,旨在利用StatefulSets在Kubernetes上部署Nacos
快速開始
- Clone 項目
- 簡單例子
如果你使用簡單方式快速啟動,請注意這是沒有使用持久化卷的,可能存在數據丟失風險:
cd nacos-k8s chmod +x quick-startup.sh ./quick-startup.sh-
測試
- 服務注冊
- 服務發現
- 發布配置
- 獲取配置
高級使用
在高級使用中,Nacos在K8S擁有自動擴容縮容和數據持久特性,請注意如果需要使用這部分功能請使用PVC持久卷,Nacos的自動擴容縮容需要依賴持久卷,以及數據持久化也是一樣,本例中使用的是NFS來使用PVC.
部署 NFS
- 創建角色
如果的K8S命名空間不是default,請在部署RBAC之前執行以下腳本:
# Set the subject of the RBAC objects to the current namespace where the provisioner is being deployed $ NS=$(kubectl config get-contexts|grep -e "^\*" |awk '{print $5}') $ NAMESPACE=${NS:-default} $ sed -i'' "s/namespace:.*/namespace: $NAMESPACE/g" ./deploy/nfs/rbac.yaml- 創建?ServiceAccount?和部署?NFS-Client Provisioner
- 創建 NFS StorageClass
- 驗證NFS部署成功
部署數據庫
- 部署主庫
- 部署從庫
- 驗證數據庫是否正常工作
部署Nacos
- 修改?deploy/nacos/nacos-pvc-nfs.yaml
- 創建 Nacos
- 驗證Nacos節點啟動成功
擴容測試
- 在擴容前,使用?kubectl exec獲取在pod中的Nacos集群配置文件信息
StatefulSet控制器根據其序數索引為每個Pod提供唯一的主機名。 主機名采用?-?的形式。 因為nacos StatefulSet的副本字段設置為2,所以當前集群文件中只有兩個Nacos節點地址
- 使用kubectl scale 對Nacos動態擴容
- 在擴容后,使用?kubectl exec獲取在pod中的Nacos集群配置文件信息
- 使用?kubectl exec執行Nacos API 在每臺節點上獲取當前Leader是否一致
到這里你可以發現新節點已經正常加入Nacos集群當中
例子部署環境
- 機器配置
| 172.17.79.3 | k8s-master | CentOS Linux release 7.4.1708 (Core) Single-core processor Mem 4G Cloud disk 40G |
| 172.17.79.4 | node01 | CentOS Linux release 7.4.1708 (Core) Single-core processor Mem 4G Cloud disk 40G |
| 172.17.79.5 | node02 | CentOS Linux release 7.4.1708 (Core) Single-core processor Mem 4G Cloud disk 40G |
- Kubernetes 版本:1.12.2?(如果你和我一樣只使用了三臺機器,那么記得開啟master節點的部署功能)
- NFS 版本:4.1?在k8s-master進行安裝Server端,并且指定共享目錄,本項目指定的**/data/nfs-share**
- Git
限制
- 必須要使用持久卷,否則會出現數據丟失的情況
項目目錄
| plugin | 幫助Nacos集群進行動態擴容的插件Docker鏡像源碼 |
| deploy | K8s 部署文件 |
配置屬性
- nacos-pvc-nfs.yaml or nacos-quick-start.yaml
| mysql.master.db.name | Y | 主庫名稱 |
| mysql.master.port | N | 主庫端口 |
| mysql.slave.port | N | 從庫端口 |
| mysql.master.user | Y | 主庫用戶名 |
| mysql.master.password | Y | 主庫密碼 |
| NACOS_REPLICAS | N | 確定執行Nacos啟動節點數量,如果不適用動態擴容插件,就必須配置這個屬性,否則使用擴容插件后不會生效 |
| NACOS_SERVER_PORT | N | Nacos 端口 |
| PREFER_HOST_MODE | Y | 啟動Nacos集群按域名解析 |
- nfs?deployment.yaml
| NFS_SERVER | Y | NFS 服務端地址 |
| NFS_PATH | Y | NFS 共享目錄 |
| server | Y | NFS 服務端地址 |
| path | Y | NFS 共享目錄 |
- mysql
| MYSQL_ROOT_PASSWORD | N | ROOT 密碼 |
| MYSQL_DATABASE | Y | 數據庫名稱 |
| MYSQL_USER | Y | 數據庫用戶名 |
| MYSQL_PASSWORD | Y | 數據庫密碼 |
| MYSQL_REPLICATION_USER | Y | 數據庫復制用戶 |
| MYSQL_REPLICATION_PASSWORD | Y | 數據庫復制用戶密碼 |
| Nfs:server | N | NFS 服務端地址,如果使用本地部署不需要配置 |
| Nfs:path | N | NFS 共享目錄,如果使用本地部署不需要配置 |
總結
以上是生活随笔為你收集整理的Nacos(十)之Kubernetes Nacos的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nacos(九)之Dubbo 融合 Na
- 下一篇: Nacos(十一)之NacosSync