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

相关推荐
BUG弄潮儿15 分钟前
k8s 集群安装
云原生·容器·kubernetes
何遇mirror1 小时前
云原生基础-云计算概览
后端·云原生·云计算
颜淡慕潇2 小时前
【K8S系列】kubectl describe pod显示ImagePullBackOff,如何进一步排查?
后端·云原生·容器·kubernetes
Linux运维日记2 小时前
k8s1.31版本最新版本集群使用容器镜像仓库Harbor
linux·docker·云原生·容器·kubernetes
一名路过的小码农4 小时前
ceph 18.2.4二次开发,docker镜像制作
ceph·docker·容器
AI_小站4 小时前
RAG 示例:使用 langchain、Redis、llama.cpp 构建一个 kubernetes 知识库问答
人工智能·程序人生·langchain·kubernetes·llama·知识库·rag
xiangshangdemayi6 小时前
Windows环境GeoServer打包Docker极速入门
windows·docker·容器·geoserver·打包·数据挂载
程序员JerrySUN7 小时前
熟悉的 Docker,陌生的 Podman
linux·docker·容器·系统架构·podman
长囧鹿8 小时前
云原生之k8s服务管理
云原生·容器·kubernetes
gobeyye8 小时前
Docker 用法详解
运维·docker·容器