k8s集群中部署生产级Nacos服务 十八岁 2026-11-12 2026-11-12
k8s集群中部署生产可用的Nacos服务 1.整体架构与设计原则
决策
原因
使用官方 Chart
与 Nacos 版本同步最好,社区维护,升级路径清晰
Nacos版本
2.4.0
global.mode: cluster
生产尽量高可用(根据实际情况选择是否用单节点)
replicaCount: 3
奇数副本保证 Raft 选主;推荐最少 3
外部 MySQL(版本5.7.44)
生产数据不能放在嵌入式 Derby
开启鉴权 + existingSecret
生产必须鉴权;密钥用 Secret 管理,避免写在 values 或 ConfigMap 里
开启 persistence
日志、raft 数据需要持久化,否则重启/漂移会丢状态(数据持久化用CubeFS)
资源限制 requests/limits
防止资源争抢和 OOM,保证可调度
反亲和性 podAntiAffinity
尽量把 3 个 Pod 打散到不同节点,提升可用性
对外暴露Istio(或者Ingress)
生产不直接暴露 NodePort,统一走 Istio 或者 Ingress
2.前置准备 2.1获取官方Chart包 官方的Github项目地址:https://github.com/nacos-group/nacos-k8s
1 2 3 # 使用master分支部署Nacos 2.x服务 # 拉取代码 git clone https://github.com/nacos-group/nacos-k8s.git
如果服务器网络慢的话也可以通过浏览器下载ZIP包到本地,在上传到服务器上:
1 2 3 4 5 6 7 # 将下载好的zip包上传到服务器 # 文件上传路径是/nacos [root@k8s-master01 nacos]# pwd /nacos [root@k8s-master01 nacos]# ll total 2380 -rw-r--r-- 1 root root 2435904 Nov 8 15:32 nacos-k8s-master.zip
解压缩:
1 [root@k8s-master01 nacos-k8s-master]# unzip nacos-k8s-master.zip
进入到 Helm 目录:
1 2 3 4 5 6 7 8 9 10 11 12 13 [root@k8s-master01 nacos-k8s-master]# cd nacos-k8s-master/ # 进入 helm 目录,后续所有 helm 命令都在这个目录执行 [root@k8s-master01 nacos-k8s-master]# cd helm/ [root@k8s-master01 helm]# ll total 36 -rw-r--r-- 1 root root 293 Nov 2 12:44 Chart.yaml -rw-r--r-- 1 root root 19271 Nov 2 12:44 README.md drwxr-xr-x 2 root root 148 Nov 2 12:44 templates -rw-r--r-- 1 root root 1997 Nov 2 12:44 values.schema.json -rw-r--r-- 1 root root 4106 Nov 2 12:44 values.yaml # 如果是在线clone 的直接cd 到helm目录即可 cd 。/nacos-k8s/helm
2.2准备外置MySQL 生产数据不放在嵌入式 Derby,而是放在外置的MySQL数据库中。
创建一个数据库用户(nacos)专门给Nacos服务使用,并限制权限。
1 2 3 4 5 6 7 -- 1. 创建库(字符集必须 utf8mb4),创建的库名是nacos,专门给nacos服务使用 CREATE DATABASE nacos CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 2. 创建专用用户(不要用 root),用户是nacos,密码是asdqwe123 CREATE USER 'nacos'@'%' IDENTIFIED BY 'asdqwe123'; GRANT ALL PRIVILEGES ON nacos.* TO 'nacos'@'%'; FLUSH PRIVILEGES;
通过官方的 schema 来初始化数据,我是用的是Nacos 2.x版本(必须与 Nacos 版本匹配):
从https://github.com/alibaba/nacos.git仓库获取数据库文件,找到自己版本对应的标签:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 不能直接用 develop 分支的 schema。我用的是 nacos-server:v2.4.0,必须使用对应版本的 SQL 文件,不能用 develop(当前是 3.x 开发分支)的。为什么不能用 develop? 因为develop 分支是 Nacos 3.x 的开发代码,表结构、字段、索引都可能和 2.4.0 有差异。用 3.x 的 schema 初始化 2.4.0,可能出现字段缺失、多余字段、启动报错等问题。 Nacos 2.x版本和3.x版本的mysql-schema.sql文件路径有所不同 从 Nacos 3.2.0 开始,官方把 mysql-schema.sql 从 distribution/conf/ 挪到了插件目录:plugin-default-impl/nacos-default-datasource-plugin/nacos-datasource-plugin-mysql/src/main/resources/META-INF/mysql-schema.sql 原则:镜像版本是多少,就用对应 tag 的 schema。正确做法(针对 v2.4.0)直接从 2.4.0 标签下载:固定到 2.4.0 标签 curl -o mysql-schema.sql \ https://github.com/alibaba/nacos/blob/2.4.0/distribution/conf/mysql-schema.sql # 备选方案:从 release 包里取 # 先下载 Nacos 2.4.0 发行包,解压后 distribution/conf 目录里就有 mysql-schema.sql wget https://github.com/alibaba/nacos/releases/download/2.4.0/nacos-server-2.4.0.tar.gz tar -xzf nacos-server-2.4.0.tar.gz # 文件位置:nacos-2.4.0/distribution/conf/mysql-schema.sql,将sql文件恢复到nacos的数据库中
恢复后的表如下:
这里我用的MySQL数据库是在k8s集群外部单独部署的,为了统一管理,这里使用Service进行代理:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 kubectl create ns ruoyi cat external-mysql-svc.yaml kind: Service apiVersion: v1 metadata: name: external-mysql-svc namespace: ruoyi labels: app: external-mysql spec: ports: - protocol: TCP port: 3306 targetPort: 33806 type: ClusterIP --- apiVersion: v1 kind: Endpoints metadata: name: external-mysql-svc namespace: ruoyi labels: app: external-mysql subsets: - addresses: - ip: 192.168 .0 .89 ports: - protocol: TCP port: 33806
创建svc,这个nacos是为了给ruoyi项目使用的,所以所有服务都创建在ruoyi空间:
1 2 3 [root@k8s-master01 mysql]# kubectl create -f external-mysql-svc.yaml -n ruoyi service/external-mysql-svc created endpoints/external-mysql-svc created
1 2 3 [root@k8s-master01 mysql]# kubectl get svc -n ruoyi NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE external-mysql-svc ClusterIP 10.96.105.207 <none> 3306/TCP 6m46s
nacos-server服务连接数据库所用的信息如下:
1 2 3 4 k8s集群内的数据库连接地址:external-mysql-svc.ruoyi.svc.cluster.local 用户:nacos 密码:asdqwe123 库名:nacos
2.3生成生产及鉴权密钥 Nacos 开启 Client API 鉴权,生产必须自己生成强密钥。
使用 existingSecret 后,密钥不会写进 values.yaml,升级时也不会被覆盖。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # token 建议 Base64,解码后长度足够(官方要求至少 32 字节) [root@k8s-master01 mysql]# export NACOS_AUTH_TOKEN=$(openssl rand -base64 48 | tr -d '\n') [root@k8s-master01 mysql]# export NACOS_AUTH_IDENTITY_KEY=$(openssl rand -hex 16) [root@k8s-master01 mysql]# export NACOS_AUTH_IDENTITY_VALUE=$(openssl rand -hex 16) [root@k8s-master01 mysql]# echo "NACOS_AUTH_TOKEN=$NACOS_AUTH_TOKEN" NACOS_AUTH_TOKEN=XJchWQ+rACK5qQSEiQIhiC4nyNzzsUM0M8+Et6bx/HhhPXD2IO/prqo9Z5vQZby+ [root@k8s-master01 mysql]# echo "NACOS_AUTH_IDENTITY_KEY=$NACOS_AUTH_IDENTITY_KEY" NACOS_AUTH_IDENTITY_KEY=4160ace3a76a3a12bc6307bbb8a2b125 [root@k8s-master01 mysql]# echo "NACOS_AUTH_IDENTITY_VALUE=$NACOS_AUTH_IDENTITY_VALUE" NACOS_AUTH_IDENTITY_VALUE=a7c67ea5322b95e7f5bfd056b4a95378 # 利用上面生成的token生成secret,secret名字是nacos-auth,也创建在ruoyi空间 [root@k8s-master01 mysql]# kubectl create secret generic nacos-auth -n ruoyi \ --from-literal=token="${NACOS_AUTH_TOKEN}" \ --from-literal=identity-key="${NACOS_AUTH_IDENTITY_KEY}" \ --from-literal=identity-value="${NACOS_AUTH_IDENTITY_VALUE}" secret/nacos-auth created [root@k8s-master01 mysql]# kubectl get secrets -n ruoyi NAME TYPE DATA AGE nacos-auth Opaque 3 57s
这个步骤是在干什么?
它在生成三个鉴权相关的密钥 :
变量
作用
NACOS_AUTH_TOKEN
用于签发/校验用户登录后的 JWT Token(登录凭证)
NACOS_AUTH_IDENTITY_KEY
集群节点之间互相识别的“身份 Key”
NACOS_AUTH_IDENTITY_VALUE
对应的“身份 Value”
简单理解:
用户登录控制台/调用 API 时,靠 TOKEN 生成的 JWT 来证明身份
多个 Nacos 节点组成集群时,靠 IDENTITY_KEY/VALUE 互相确认“你是不是自己人”
生成后通常会放进 Kubernetes Secret,再通过环境变量或 Chart 的 existingSecret 注入给 Nacos。
如果你的nacos服务不需要开启鉴权可以忽略该步骤,如果要开启鉴权就不能省略,在nacos 3.x的版本默认就已经打开了鉴权。
生产环境建议:
开启鉴权
自己生成强密钥 (不要用默认或空值)
把密钥放进 Secret,而不是写在 values 明文里
2.4编写生产 values 文件(核心) 修改values.yaml文件,以达到生产要求:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 imagePullSecrets: []global: mode: cluster nacos: image: repository: registry.cn-beijing.aliyuncs.com/k8s-liujunwei/nacos-server tag: v2.4.0 pullPolicy: IfNotPresent plugin: enable: true image: repository: registry.cn-beijing.aliyuncs.com/k8s-liujunwei/nacos-peer-finder-plugin tag: latest pullPolicy: IfNotPresent replicaCount: 3 auth: enabled: true existingSecret: "nacos-auth" tokenSecretKey: token identityKeySecretKey: identity-key identityValueSecretKey: identity-value authToken: "" identityKey: "" identityValue: "" probe: startupDelaySeconds: 180 health: enabled: true storage: type: mysql db: host: external-mysql-svc.ruoyi.svc.cluster.local name: nacos port: 3306 username: nacos password: asdqwe123 param: characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false persistence: enabled: true data: accessModes: - ReadWriteOnce storageClassName: "cfs-sc" resources: requests: storage: 10Gi service: type: NodePort port: 8848 nodePort: 30000 resources: requests: cpu: 1000m memory: 2Gi
1 2 3 4 5 6 # MySQL 连接参数(MySQL5.7时默认即可) param: characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false # 如果外部 MySQL 是 8.0+,建议加上 allowPublicKeyRetrieval=true ,否则可能报公钥检索错误: param: characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true
下图原配置和修改后的对比截图,左边是chart包里values.yaml默认配置 ,右边是修改后的values.yaml配置:
global.mode: cluster + replicaCount: 3 生产高可用必须。单节点无法容忍故障。
nacos.auth.enabled: true + existingSecret 生产必须鉴权。用 Secret 管理密钥,避免明文出现在 values 或 Git 仓库。
storage.type: mysql + 完整 db 配置 生产数据必须进外部数据库,才能做备份、主从、监控。
persistence.enabled: true 即使使用外部 MySQL,Nacos 自身仍有 raft 日志、本地缓存等需要持久化,否则 Pod 重建后集群状态恢复慢或不稳定。
resources 不设 limits 容易被其他 Pod 挤占或 OOMKill;requests 保证调度时有足够资源。
affinity.podAntiAffinity ,该配置我没设置,生产建议配置 强制/尽量把副本分散到不同物理节点,避免单节点故障导致整个集群不可用。
1 2 3 4 5 6 7 8 9 10 11 12 affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchExpressions: - key: app.kubernetes.io/name operator: In values: - nacos topologyKey: kubernetes.io/hostname
3.安装Nacos集群 在正式安装前可以先执行dry-run检查渲染出来的 YAML 是否正确,避免直接上生产出错:
1 2 3 4 # 在values.yaml执行 helm install nacos . \ -n ruoyi \ --dry-run --debug
没有问题在正式安装服务:
1 2 # 在values.yaml所在的目录中执行安装指令 [root@k8s-master01 helm]# helm install nacos . -n ruoyi
查看服务:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [root@k8s-master01 helm]# helm list -n ruoyi NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION nacos ruoyi 1 2026-11-08 22:16:28.181960688 +0800 CST deployed nacos-1.3.0 3.3.0 [root@k8s-master01 helm]# kubectl get all -n ruoyi NAME READY STATUS RESTARTS AGE pod/nacos-0 1/1 Running 0 78m pod/nacos-1 1/1 Running 0 78m pod/nacos-2 1/1 Running 0 78m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/external-mysql-svc ClusterIP 10.96.105.207 <none> 3306/TCP 3h45m service/nacos-cs NodePort 10.96.115.191 <none> 8848:30000/TCP,9848:31972/TCP,9849:31743/TCP,7848:32752/TCP 78m service/nacos-hs ClusterIP None <none> 8848/TCP,9848/TCP,9849/TCP,7848/TCP 78m NAME READY AGE statefulset.apps/nacos 3/3 78m [root@k8s-master01 helm]# kubectl get pvc -n ruoyi NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE data-nacos-0 Bound pvc-73b96b6b-ed54-4799-bff1-5c137a960fdb 10Gi RWO cfs-sc <unset> 78m data-nacos-1 Bound pvc-69e1e6f6-7dbc-411c-bd04-98eb12704a69 10Gi RWO cfs-sc <unset> 78m data-nacos-2 Bound pvc-fb7ccb93-6e41-480b-85b8-b36a72c10da7 10Gi RWO cfs-sc <unset> 78m
查看pod日志,启动成功后日志中会出现类似信息:
1 2 3 2026-11-08 22:17:44,457 INFO Nacos is starting... 2026-11-08 22:17:45,458 INFO Nacos is starting... 2026-11-08 22:17:46,048 INFO Nacos started successfully in cluster mode. use external storage
4.访问web控制台 4.1修改nacos用户密码 启动成功通过NodePort的端口访问,2.4.0之前的版本会有默认账号密码:nacos / nacos
自 2.4.0 版本开始,Nacos构建时不再提供管理员用户nacos的默认密码,需要在首次开启鉴权后,通过 API 或 Nacos 控制台进行管理员用户nacos的密码初始化。
本文选择 Nacos 控制台的方式初始化密码,当 Nacos 集群开启鉴权后,访问 Nacos 控制台时,会校验管理员用户nacos的密码是否已经初始化,若发现未初始化密码时,则会跳转至初始化密码的页面进行初始化。
在该页面密码文本框内输入自定义密码,然后点击提交即可。
注意: 若密码文本框内未输入自定义密码或输入空白密码,Nacos 将会生成随机密码,请保存好生成的随机密码。
初始化成功后会弹窗提示初始化成功,并明文展示指定的密码或随机生成的密码,请保存好此密码。
4.2重置nacos用户密码 如果后续忘记了nacos管理员的密码可以通过修改MySQL表中数据进行密码的重置,下面演示修改nacos的密码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 # 如果在web端修改不起作用,可以直接在数据库里修改 htpasswd -nbBC 10 '' '你的新密码' | tr -d ':\n' | sed 's/^//' # 得到类似: $2a$10$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # 例如: [root@k8s-master01 helm]# htpasswd -nbBC 10 '' 'asdqwe123' | tr -d ':\n' | sed 's/^//' $2y$10$aiAFvwRI6ob6HujNg2dyWeYd/tKgTuOYTdjy9QkAP314w8nHp1EoW # 登录数据库在数据库里执行: USE nacos; -- 你的库名 -- 先看当前值 SELECT username, password FROM users WHERE username='nacos'; -- 更新(把下面密文换成你自己生成的) UPDATE users SET password='$2y$10$aiAFvwRI6ob6HujNg2dyWeYd/tKgTuOYTdjy9QkAP314w8nHp1EoW' WHERE username='nacos'; --查看修改后的值 SELECT username, password FROM users WHERE username='nacos';
5.通过Istio对外暴露服务 弄过NodePort的方式能正常登录控制台后,使用Istio来对外暴露服务:
1 2 3 4 5 6 7 8 9 10 # 先将原来使用的NodePort改成ClusterIP [root@k8s-master01 helm]# kubectl edit svc -n ruoyi nacos-cs # 找到type : NodePort 改成 ClusterIP type: ClusterIP # 保存退出后查看svc,已经变更为ClusterIP: [root@k8s-master01 helm]# kubectl get svc -n ruoyi nacos-cs NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nacos-cs ClusterIP 10.96.115.191 <none> 8848/TCP,9848/TCP,9849/TCP,7848/TCP 3d1h
创建Istio Gateway + VirtualService(控制台 HTTP),使用nacos.gateway.com进行访问nacos控制台:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 [root@k8s-master01 nacos ] apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata: name: nacos-gateway namespace: ruoyi spec: selector: istio: ingressgateway servers: - port: number: 80 name: http protocol: HTTP hosts: - nacos.gateway.com --- apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: nacos-vs namespace: ruoyi spec: hosts: - nacos.gateway.com gateways: - nacos-gateway http: - match: - uri: prefix: /nacos route: - destination: host: nacos-cs.ruoyi.svc.cluster.local port: number: 8848 timeout: 30s
创建资源:
1 2 3 [root@k8s-master01 nacos]# kubectl create -f nacos-gateway.yaml -n ruoyi gateway.networking.istio.io/nacos-gateway created virtualservice.networking.istio.io/nacos-vs created
本地测试记得加hosts解析,通过nacos.gateway.com:30080/nacos访问:
注意:
业务应用 不要 走公网域名访问 Nacos
用集群内应该用 Service,延迟更低、更稳
Istio Gateway 主要用于 人访问控制台 ,不是给所有微服务绕一圈
若微服务在集群外,才需要在 Gateway 上额外暴露 8848/9848,并做好鉴权与网络限制 ,参考如下:
gRPC(9848)若必须经 Istio:
1 2 3 4 5 6 7 - port: number: 9848 name: nacos-grpc protocol: GRPC hosts: - nacos.gateway.com
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: nacos-vs namespace: ruoyi spec: hosts: - nacos.gateway.com gateways: - nacos-gateway http: - match: - port: 9848 route: - destination: host: nacos-cs.ruoyi.svc.cluster.local port: number: 9848
同时确认 nacos-cs Service 已声明 9848 端口,所以直接配置vs的路由即可:
1 2 3 4 5 6 7 8 9 10 11 # nacos-cs 已经声明了9848端口 [root@k8s-master01 helm]# kubectl get svc -n ruoyi NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE external-mysql-svc ClusterIP 10.96.105.207 <none> 3306/TCP 3d4h external-redis-svc ClusterIP 10.96.28.65 <none> 6379/TCP 2d7h nacos-cs ClusterIP 10.96.115.191 <none> 8848/TCP,9848/TCP,9849/TCP,7848/TCP 3d1h nacos-hs ClusterIP None <none> 8848/TCP,9848/TCP,9849/TCP,7848/TCP 3d1h ruoyi-auth ClusterIP 10.96.52.116 <none> 9200/TCP 2d ruoyi-gateway ClusterIP 10.96.2.167 <none> 8080/TCP 34h ruoyi-system ClusterIP 10.96.235.128 <none> 9201/TCP 2d1h ruoyi-ui ClusterIP 10.96.57.74 <none> 80/TCP 31h
6.验证Nacos服务可用性 接下来做验证,配置中心功能验证(必须)和 服务注册与发现验证(必须):
注意nacos2.x和3.x版本的验证路径是不一样的,我用的是2.x的版本
6.1配置中心功能验证: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 curl -s -X POST "http://nacos.gateway.com:30080/nacos/v1/cs/configs" \ -d "dataId=test.properties" \ -d "group=DEFAULT_GROUP" \ -d "content=hello=nacos-prod-test" \ -d "accessToken=${TOKEN}" # 期望返回:true 如: true[root@harbor ~]# curl -s -X POST "http://nacos.gateway.com:30080/nacos/v1/cs/configs" \ > -d "dataId=test.properties" \ > -d "group=DEFAULT_GROUP" \ > -d "content=hello=nacos-prod-test" \ > -d "accessToken=${TOKEN}" true[root@harbor ~]#
控制台
1 2 3 4 5 6 7 8 9 # 读取配置 curl -s "http://nacos.gateway.com:30080/nacos/v1/cs/configs?dataId=test.properties&group=DEFAULT_GROUP&accessToken=${TOKEN}" # 期望返回:hello=nacos-prod-test # 删除配置 curl -s -X DELETE "http://nacos.gateway.com:30080/nacos/v1/cs/configs?dataId=test.properties&group=DEFAULT_GROUP&accessToken=${TOKEN}" # 期望返回:true
6.2服务注册与发现验证: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # 注册实例 curl -s -X POST "http://nacos.gateway.com:30080/nacos/v1/ns/instance" \ -d "serviceName=prod-check-service" \ -d "ip=10.0.0.1" \ -d "port=8080" \ -d "accessToken=${TOKEN}" # 期望:ok # 查询实例 curl -s "http://nacos.gateway.com:30080/nacos/v1/ns/instance/list?serviceName=prod-check-service&accessToken=${TOKEN}" # 期望:JSON 里能看到 10.0.0.1:8080 # 注销实例 curl -s -X DELETE "http://nacos.gateway.com:30080/nacos/v1/ns/instance?serviceName=prod-check-service&ip=10.0.0.1&port=8080&accessToken=${TOKEN}" # 期望:ok
执行过程:
1 2 3 4 5 6 [root@harbor ~]# curl -s -X POST "http://nacos.gateway.com:30080/nacos/v1/ns/instance" \ > -d "serviceName=prod-check-service" \ > -d "ip=10.0.0.1" \ > -d "port=8080" \ > -d "accessToken=${TOKEN}" ok[root@harbor ~]#
控制台显示
测试没问题最后把实例注销即可。
证明配置中心功能和服务注册/发现/注销功能都是正常的,可以交付生产使用。
该部署实例中没有为nacos的控制台配置https证书,如果有需要可以参考文章《服务网格Istio流量治理实践》