快速開始

• Clone 項目

git clone https://github.com/nacos-group/nacos-k8s.git

• 簡單例子
如果你使用簡單方式快速啟動,請注意這是沒有使用持久化卷的,可能存在資料丟失風險:

cd nacos-k8s chmod +x quick-startup.sh ./quick-startup.sh

• 測試

o 服務註冊
• curl -X PUT 'http://cluster-ip:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
o 服務發現
• curl -X GET 'http://cluster-ip:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
o 發佈配置
• curl -X POST "http://cluster-ip:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld"
o 獲取配置
curl -X GET "http://cluster-ip:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"
 
部署 NFS 
創建角色
kubectl create -f deploy/nfs/rbac.yaml
如果的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

kubectl create -f deploy/nfs/deployment.yaml

創建 NFS StorageClass

kubectl create -f deploy/nfs/class.yaml

驗證NFS部署成功

kubectl get pod -l app=nfs-client-provisioner

部署資料庫

部署主庫

cd nacos-k8s
kubectl create -f deploy/mysql/mysql-master-nfs.yaml

部署從庫

cd nacos-k8s
kubectl create -f deploy/mysql/mysql-slave-nfs.yaml

驗證資料庫是否正常工作

# master

kubectl get pod
NAME READY STATUS RESTARTS AGE
mysql-master-gf2vd 1/1 Running 0 111m

# slave

kubectl get pod
mysql-slave-kf9cb 1/1 Running 0 110m

部署Nacos

修改 deploy/nacos/nacos-pvc-nfs.yaml

data:
  mysql.master.db.name: "主庫名稱"
  mysql.master.port: "主庫埠"
  mysql.slave.port: "從庫埠"
  mysql.master.user: "主庫用戶名"
  mysql.master.password: "主庫密碼"

創建 Nacos

kubectl create -f nacos-k8s/deploy/nacos/nacos-pvc-nfs.yaml

驗證Nacos節點啟動成功

kubectl get pod -l app=nacos
NAME READY STATUS RESTARTS AGE
nacos-0 1/1 Running 0 19h
nacos-1 1/1 Running 0 19h
nacos-2 1/1 Running 0 19h

擴容測試

在擴容前,使用 kubectl exec獲取在pod中的Nacos集群設定檔資訊

for i in 0 1; do echo nacos-$i; kubectl exec nacos-$i cat conf/cluster.conf; done

StatefulSet控制器根據其序數索引為每個Pod提供唯一的主機名稱。 主機名稱採用 - 的形式。 因為nacos StatefulSet的副本欄位設置為2,所以當前集群檔中只有兩個Nacos節點位址

nacos-nodeport-svc.yaml

apiVersion: v1 
kind: Service 
metadata: 
  name: nacos-nodeport 
  labels: 
    app: nacos 
  annotations: 
    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" 
spec: 
  ports: 
    - port: 8848 
      name: server 
      nodePort: 31390 
  selector: 
    app: nacos 
  type: NodePort
驗證服務
導入之前docker版本的配置設定檔
起一個busybox 來驗證是否有值 紅字的部份要換掉 ip使用clusterip 檔名使用匯入後有的名稱
curl -X GET "http://nacos_ip:8848/nacos/v1/cs/configs?dataId=test-version.yml&group=DEFAULT_GROUP&tenant=public"
 
官網教學說明:https://nacos.io/zh-cn/docs/use-nacos-with-kubernetes.html
 

By tony

自由軟體愛好者~喜歡不斷的思考各種問題,有新的事物都會想去學習嘗試 做實驗並熱衷研究 沒有所謂頂天的技術 只有謙虛及不斷的學習 精進專業,本站主要以分享系統及網路相關知識、資源而建立。 Github http://stnet253.github.io

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料