nacos-operator在k8s集群上部署nacos-server2.4.3版本踩坑实录

文章目录

操作步骤

1. 拉取仓库代码

(这一步主要用到代码中的相关yml文件,稍加修改用于部署容器,github拉取慢,可以去gitee拉取)

bash 复制代码
git clone git@github.com:nacos-group/nacos-k8s.git

2. 安装nacos-operator

  1. 本地安装helm命令(可有可无)
  2. 安装kubectl命令,并配置好远程集群的配置信息(自行百度)
  3. 准备好nacos-operator镜像
bash 复制代码
docker pull docker.rainbond.cc/nacos/nacos-operator:latest
  1. 修改values中的镜像地址和tag

  2. 进入nacos-k8s/operator目录,cmd调出黑窗口,执行

bash 复制代码
helm install nacos-operator ./chart/nacos-operator --namespace logct

如无helm命令,执行如下命令(修改nacos-operator-all.yaml中镜像地址):
kubectl apply -f chart/nacos-operator/nacos-operator-all.yaml

3. 安装nacos-server

我是安装的cluster-mysql版本

  1. 下载nacos-server镜像
bash 复制代码
docker pull docker.rainbond.cc/nacos/nacos-server:latest
  1. 修改nacos_cluster_mysql.yaml:主要修改nacos-server镜像地址,和mysql的连接信息
  2. 修改完成之后执行
bash 复制代码
kubectl get nacos

过程中如果需要频繁修改配置,频繁刷新配置,如果使用apply -f之后刷新不生效,可以先卸载容器,再重新部署

bash 复制代码
kubectl delete -f config/samples/nacos_cluster_mysql.yaml
kubectl delete -n logct statefulset nacos

理论上这样就结束了,很简单,但是第一个坑点来了

坑点一

nacos启动报错,报"syntax error: unexpected "(""

参照如下issue

https://github.com/nacos-group/nacos-k8s/issues/469

高版本的nacos-server镜像的基础镜像改用alpine, 其使用的sh命令不支持数组,其次alpine中的ping命令其-c参数必须在域名之前

因此,修改yaml

坑点二

高版本nacos修复漏洞,新增了几个环境变量需要配置,不配置则启动报错,报"Error creating bean with name 'nacosAuthConfig' defined in URL..."

需要在yml中新增如下env,不加就报错,参照:

https://nacos.io/zh-cn/docs/v2/guide/user/auth.html

但是官方的nacos-operator部署文档中并没有更新此部分内容,官方文档的样例还是在部署1.4.1版本的nacos-server,以至于我事先没有思路的时候还专门再去部署了一遍1.4.1版本的nacos,确实很顺利,但是我客户端使用的是2.1.1的nacos-client,1.x和2.x版本的nacos存在兼容性问题,导致服务拉取不到配置而启动失败。。。

nacos-ui页面访问

视各自公司vpc映射规则而定,把nacos这个service的8848端口映射出来之后,访问

同一集群环境下微服务连接nacos地址配置

连接上图中的节点ip即可,上述域名集群内访问没问题,但是如果是集群外的服务,则不能配置域名,应该配置映射出来的ip。

待办

  1. 目前nacos服务注册等各项功能正常,且在k8s ui页面查看容器无报错,但是使用kubectl get nacos命令,得到的nacos状态为failed,不知道为什么,后续再看

  2. NACOS_AUTH_IDENTITY_KEY和NACOS_AUTH_IDENTITY_VALUE的value格式还没彻底搞明白要怎么写,我上边是把项目中使用加密工具加密后的密码胡乱贴上的,没想到可行,后续再研究研究官方建议是什么格式的

  3. nacos-server使用mysql作为持久化存储之后,是否还需要给容器挂载pvc?目前看使用不影响,暂时先不挂。

参考文档

https://gitee.com/nacos_group/nacos-k8s/blob/master/operator/README-CN.md

https://www.jianshu.com/p/c34024e6fa27

相关推荐
ProtonBase几秒前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构
大熊程序猿2 小时前
K8s证书过期
云原生·容器·kubernetes
摸鱼也很难5 小时前
Docker 镜像加速和配置的分享 && 云服务器搭建beef-xss
运维·docker·容器
鸠摩智首席音效师8 小时前
Docker 中如何限制CPU和内存的使用 ?
docker·容器
Michaelwubo8 小时前
Docker dockerfile镜像编码 centos7
运维·docker·容器
好像是个likun9 小时前
使用docker拉取镜像很慢或者总是超时的问题
运维·docker·容器
暴富的Tdy11 小时前
【快速上手Docker 简单配置方法】
docker·容器·eureka
魏 无羡11 小时前
linux CentOS系统上卸载docker
linux·kubernetes·centos
Karoku06612 小时前
【k8s集群应用】kubeadm1.20高可用部署(3master)
运维·docker·云原生·容器·kubernetes
豆豆豆豆变12 小时前
docker之compose篇
docker·容器·自动化运维