kuboard如何部署nacos?
这个快速开始手册是帮忙您快速在您的电脑上,下载、安装并使用 Nacos。项目包含一个可构建的Nacos Docker Image,旨在利用StatefulSets在Kubernetes上部署Nacos。在高级使用中,Nacos在K8S拥有自动扩容缩容和数据持久特性,请注意如果需要使用这部分功能请使用PVC持久卷,Nacos的自动扩容缩容需要依赖持久卷,以及数据持久化也是一样,本例中使用的是NFS来
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: db
k8s.kuboard.cn/name: nacos
name: nacos
namespace: sca-dev
resourceVersion: '1492325'
spec:
podManagementPolicy: Parallel
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s.kuboard.cn/layer: db
k8s.kuboard.cn/name: nacos
serviceName: nacos
template:
metadata:
creationTimestamp: null
labels:
k8s.kuboard.cn/layer: db
k8s.kuboard.cn/name: nacos
spec:
containers:
- env:
- name: MODE
value: standalone
- name: PREFER_HOST_MODE
value: hostname
- name: SPRING_DATASOURCE_PLATFORM
value: mysql
- name: MYSQL_SERVICE_DB_NAME
value: nacos_dev
- name: MYSQL_SERVICE_PORT
value: '3306'
- name: MYSQL_SERVICE_USER
value: nacos
- name: MYSQL_SERVICE_PASSWORD
value: nacos
- name: MYSQL_SERVICE_HOST
value: nacos-mysql
image: nacos/nacos-server
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
path: /nacos/v1/ns/instance/list?serviceName=nacos
port: 8848
scheme: HTTP
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
name: nacos
ports:
- containerPort: 8848
protocol: TCP
- containerPort: 9848
protocol: TCP
- containerPort: 9849
protocol: TCP
- containerPort: 7848
name: raft
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /nacos/v1/ns/instance/list?serviceName=nacos
port: 8848
scheme: HTTP
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 2
timeoutSeconds: 1
resources:
limits:
memory: 2Gi
requests:
memory: 200Mi
startupProbe:
failureThreshold: 20
httpGet:
path: /nacos/v1/ns/instance/list?serviceName=nacos
port: 8848
scheme: HTTP
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /home/nacos/logs
name: nocoslogs
- mountPath: /home/nacos/init.d/custom.properties
name: volume-6kep4
subPath: custom.properties
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: nocoslogs
nfs:
path: /mnt/nacoslogs
server: 10.0.2.210
- configMap:
defaultMode: 420
items:
- key: custom.properties
path: custom.properties
name: nacos-config
name: volume-6kep4
updateStrategy:
rollingUpdate:
partition: 0
type: RollingUpdate
---
apiVersion: v1
kind: Service
metadata:
annotations: {}
labels:
k8s.kuboard.cn/layer: db
k8s.kuboard.cn/name: nacos
name: nacos
namespace: sca-dev
resourceVersion: '1492138'
spec:
clusterIP: 10.233.53.225
clusterIPs:
- 10.233.53.225
externalTrafficPolicy: Cluster
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: nacos-client
nodePort: 31100
port: 8848
protocol: TCP
targetPort: 8848
- name: raft
nodePort: 30100
port: 7848
protocol: TCP
targetPort: 7848
- name: grcp1
nodePort: 32100
port: 9848
protocol: TCP
targetPort: 9848
- name: grpc1
nodePort: 32101
port: 9849
protocol: TCP
targetPort: 9849
selector:
k8s.kuboard.cn/layer: db
k8s.kuboard.cn/name: nacos
sessionAffinity: ClientIP
sessionAffinityConfig:
clientIP:
timeoutSeconds: 10800
type: NodePort
搞定:一波三联 关注+收藏!给大神双手膜拜!
更多推荐
所有评论(0)