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
搞定:一波三联 关注+收藏!给大神双手膜拜!