当前位置: 首页 > news >正文

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

文章目录

    • 操作步骤
      • 1. 拉取仓库代码
      • 2. 安装nacos-operator
      • 3. 安装nacos-server
    • 坑点一
    • 坑点二
    • nacos-ui页面访问
    • 同一集群环境下微服务连接nacos地址配置
    • 待办
    • 参考文档

操作步骤

1. 拉取仓库代码

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

git clone git@github.com:nacos-group/nacos-k8s.git

2. 安装nacos-operator

  1. 本地安装helm命令(可有可无)
  2. 安装kubectl命令,并配置好远程集群的配置信息(自行百度)
  3. 准备好nacos-operator镜像
docker pull docker.rainbond.cc/nacos/nacos-operator:latest
  1. 修改values中的镜像地址和tag
    在这里插入图片描述

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

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镜像
docker pull docker.rainbond.cc/nacos/nacos-server:latest
  1. 修改nacos_cluster_mysql.yaml:主要修改nacos-server镜像地址,和mysql的连接信息
    在这里插入图片描述
  2. 修改完成之后执行
kubectl get nacos

在这里插入图片描述

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

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


http://www.mrgr.cn/news/72358.html

相关文章:

  • Antd中的布局组件
  • STM32F103C8T6实时时钟RTC
  • 46.坑王驾到第十期:vscode 无法使用 tsc 命令
  • Javaweb梳理18——JavaScript
  • 线性回归 - 最小二乘法
  • 3.langchain中的prompt模板 (few shot examples in chat models)
  • MongoDB在现代Web开发中的应用
  • 「IDE」集成开发环境专栏目录大纲
  • ssm107电动车租赁网站+jsp(论文+源码)_kaic
  • 数据分析-系统认识数据分析
  • Linux编程:嵌入式ARM平台Linux网络实时性能优化
  • 第3章: 图像增强与色彩处理
  • 基于HFSS软件的滤波器设计
  • 货拉拉四次冲刺业绩向好:净变现率下滑,司机大量投诉及权益保护仍亟待完善
  • spring-gateway网关聚合swagger实现多个服务接口切换
  • 【学习】【HTML】HTML、XML、XHTML
  • 运行springBlade项目历程
  • 论云游戏的性能与性价比,ToDesk、青椒云、顺网云游戏等具体实操看这篇就够了
  • 上海亚商投顾:沪指放量调整 全市场近3800只个股下跌
  • 关于我、重生到500年前凭借C语言改变世界科技vlog.18——内存函数
  • Rocky linux8 安装php8.0
  • CesiumJS 案例 P27:创建椭圆、创建带边框的椭圆、创建圆、创建带边框的圆、创建椭圆环、创建圆环
  • WPF 中的视觉层和逻辑层有什么区别?
  • frp搭建内网穿透
  • PMC部门如何精准把控生产计划和生产进度?关键要点全解析
  • 【miniMax开放平台-注册安全分析报告-无验证方式导致安全隐患】