?
kuboard如何部署nacos?
這個快速開始手冊是幫忙您快速在您的電腦上,下載、安裝并使用 Nacos。
項目包含一個可構建的Nacos Docker Image,旨在利用StatefulSets在Kubernetes上部署Nacos。
在高級使用中,Nacos在K8S擁有自動擴容縮容和數據持久特性,請注意如果需要使用這部分功能請使用PVC持久卷,Nacos的自動擴容縮容需要依賴持久卷,以及數據持久化也是一樣,本例中使用的是NFS來使用PVC.
nacos官網傳送門-https://nacos.io/zh-cn/
NFS 如何部署請參見本博客下的另一篇文章:
Linux-centos上如何配置管理NFS服務器?
各種工作準備就緒請參考一下內容。
快速開始
基本信息
名稱 | 值 |
---|---|
工作負載名稱 | nacos |
工作負載類型 | 有狀態副本集(StatefulSet) |
工作負載分層 | 持久層 |
副本數 | 1 |
容器信息
名稱 | 值 |
---|---|
容器名稱 | nacos |
容器鏡像 | nacos/nacos-server |
工作負載分層 | 持久層 |
環境變量1 | MODE=standalone |
環境變量2 | PREFER_HOST_MODE=hostname |
環境變量3 | SPRING_DATASOURCE_PLATFORM = mysql |
環境變量4 | MYSQL_SERVICE_DB_NAME=nacos_dev |
環境變量5 | MYSQL_SERVICE_PORT=3306 |
環境變量6 | MYSQL_SERVICE_USER=nacos |
環境變量7 | MYSQL_SERVICE_PASSWORD=nacos |
環境變量8 | MYSQL_SERVICE_HOST=nacos-mysql |
容器端口
單節點啟動
1)防火墻放開8848端口
集群啟動
1)防火墻放開8848端口
2)放開集群通信端口
- A:raft-rpc 7848
- 當nacos客戶端升級為2.x版本后,新增了gRPC的通信方式,新增了兩個端口。這兩個端口在nacos原先的端口上(默認8848),進行一定偏移量自動生成.。
端口 與主端口的偏移量 描述
9848 1000 客戶端gRPC請求服務端端口,用于客戶端向服務端發起連接和請求
9849 1001 服務端gRPC請求服務端端口,用于服務間同步等
如果nacos版本為2.0以上,不放開gRPC通信端口會狂刷日志。
描述 | 端口號 | 是否必須 |
---|---|---|
Nacos集群通信端口 | 7848 | 是 |
Nacos的HTTP API端口號,用于通過HTTP接口與Nacos進行交互 | 8848 | 是 |
Nacos的gRPC API端口號,用于通過gRPC接口與Nacos進行交互 | 9848 | 是 |
Nacos的WebSocket API端口號,用于通過WebSocket與Nacos進行交互 | 9849 | 是 |
命名服務的端口號,提供服務發現、配置管理、流量路由等功能 | 5800 | - |
命名服務的高可用版,提供與5800相同的功能,同時支持多數據中心和主備節點。 | 7800 | - |
健康檢查
容器啟動檢查探針
#HttpGet
#端口號-8848
#路徑- /nacos/v1/ns/instance/list?serviceName=nacos
#Pod 所在節點上的 kubelet 將對如下地址執行 httpGet
#http://${podIP}:8848/nacos/v1/ns/instance/list?serviceName=nacos
容器存活檢查探針
容器就緒檢查探針
存儲掛載(NFS)
高級設置
服務/應用路由
圖粘的差不多了,大佬們都應該清楚了吧。
還沒完 yaml 代碼如下:
---
apiVersion: apps/v1
kind: StatefulSet
metadata:annotations: {}labels:k8s.kuboard.cn/layer: dbk8s.kuboard.cn/name: nacosname: nacosnamespace: sca-devresourceVersion: '1492325'
spec:podManagementPolicy: Parallelreplicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s.kuboard.cn/layer: dbk8s.kuboard.cn/name: nacosserviceName: nacostemplate:metadata:creationTimestamp: nulllabels:k8s.kuboard.cn/layer: dbk8s.kuboard.cn/name: nacosspec:containers:- env:- name: MODEvalue: standalone- name: PREFER_HOST_MODEvalue: hostname- name: SPRING_DATASOURCE_PLATFORMvalue: mysql- name: MYSQL_SERVICE_DB_NAMEvalue: nacos_dev- name: MYSQL_SERVICE_PORTvalue: '3306'- name: MYSQL_SERVICE_USERvalue: nacos- name: MYSQL_SERVICE_PASSWORDvalue: nacos- name: MYSQL_SERVICE_HOSTvalue: nacos-mysqlimage: nacos/nacos-serverimagePullPolicy: IfNotPresentlivenessProbe:failureThreshold: 3httpGet:path: /nacos/v1/ns/instance/list?serviceName=nacosport: 8848scheme: HTTPinitialDelaySeconds: 30periodSeconds: 10successThreshold: 1timeoutSeconds: 1name: nacosports:- containerPort: 8848protocol: TCP- containerPort: 9848protocol: TCP- containerPort: 9849protocol: TCP- containerPort: 7848name: raftprotocol: TCPreadinessProbe:failureThreshold: 3httpGet:path: /nacos/v1/ns/instance/list?serviceName=nacosport: 8848scheme: HTTPinitialDelaySeconds: 30periodSeconds: 10successThreshold: 2timeoutSeconds: 1resources:limits:memory: 2Girequests:memory: 200MistartupProbe:failureThreshold: 20httpGet:path: /nacos/v1/ns/instance/list?serviceName=nacosport: 8848scheme: HTTPinitialDelaySeconds: 30periodSeconds: 10successThreshold: 1timeoutSeconds: 1terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilevolumeMounts:- mountPath: /home/nacos/logsname: nocoslogs- mountPath: /home/nacos/init.d/custom.propertiesname: volume-6kep4subPath: custom.propertiesdnsPolicy: ClusterFirstrestartPolicy: AlwaysschedulerName: default-schedulersecurityContext: {}terminationGracePeriodSeconds: 30volumes:- name: nocoslogsnfs:path: /mnt/nacoslogsserver: 10.0.2.210- configMap:defaultMode: 420items:- key: custom.propertiespath: custom.propertiesname: nacos-configname: volume-6kep4updateStrategy:rollingUpdate:partition: 0type: RollingUpdate---
apiVersion: v1
kind: Service
metadata:annotations: {}labels:k8s.kuboard.cn/layer: dbk8s.kuboard.cn/name: nacosname: nacosnamespace: sca-devresourceVersion: '1492138'
spec:clusterIP: 10.233.53.225clusterIPs:- 10.233.53.225externalTrafficPolicy: ClusterinternalTrafficPolicy: ClusteripFamilies:- IPv4ipFamilyPolicy: SingleStackports:- name: nacos-clientnodePort: 31100port: 8848protocol: TCPtargetPort: 8848- name: raftnodePort: 30100port: 7848protocol: TCPtargetPort: 7848- name: grcp1nodePort: 32100port: 9848protocol: TCPtargetPort: 9848- name: grpc1nodePort: 32101port: 9849protocol: TCPtargetPort: 9849selector:k8s.kuboard.cn/layer: dbk8s.kuboard.cn/name: nacossessionAffinity: ClientIPsessionAffinityConfig:clientIP:timeoutSeconds: 10800type: NodePort
搞定:一波三聯 關注+收藏!給大神雙手膜拜!