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

k8s 安装nacos集群

需求

使用k8s部署nacos集群,nacos的数据主要保存在mysql中,因此nacos运行时不需要考虑持久化问题。

这里使用2.3.2版本

导入mysql数据

github地址:https://github.com/alibaba/nacos/releases

找到2.3.2版本,下载压缩包,得到nacos-server-2.3.2.tar.gz

解压文件,找到文件nacos\conf\mysql-schema.sql

mysql-schema.sql,就是nacos的初始化sql

使用客户端工具DBeaver连接到mysql,创建数据库nacos

CREATE DATABASE nacos CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

新建数据库用户nacos_all并授权

CREATE USER 'nacos_all'@'%' IDENTIFIED BY 'abcd@1234';

GRANT ALL PRIVILEGES ON nacos . * TO 'nacos_all'@'%';

FLUSH PRIVILEGES;

切换到数据库nacos,执行sql文件mysql-schema.sql,执行完成后,会得到相应的数据表。

编写yaml

nacos-server.yaml

apiVersion: v1
kind: ConfigMap
metadata:name: nacos-server-confignamespace: middleware
data:MODE: clusterMYSQL_SERVICE_DB_NAME: nacosMYSQL_SERVICE_HOST: 192.168.20.131MYSQL_SERVICE_USER: nacos_allMYSQL_SERVICE_PASSWORD: abcd@1234MYSQL_SERVICE_PORT: "3306"NACOS_REPLICAS: "3"NACOS_SERVER_PORT: "8848"NACOS_SERVERS: nacos-server-0.nacos-server-svc.middleware.svc.cluster.local:8848 nacos-server-1.nacos-server-svc.middleware.svc.cluster.local:8848 nacos-server-2.nacos-server-svc.middleware.svc.cluster.local:8848PREFER_HOST_MODE: hostnameSPRING_DATASOURCE_PLATFORM: mysqlNACOS_AUTH_ENABLE: "false"
---
apiVersion: apps/v1
kind: StatefulSet
metadata:generation: 15labels:app: nacos-servermanagedFields:- apiVersion: apps/v1operation: Update- apiVersion: apps/v1manager: kube-controller-manageroperation: Updatesubresource: statusname: nacos-servernamespace: middleware
spec:podManagementPolicy: OrderedReadyreplicas: 3revisionHistoryLimit: 10selector:matchLabels:app: nacos-serverserviceName: nacos-server-svctemplate:metadata:labels:app: nacos-serverspec:containers:- envFrom:- configMapRef:name: nacos-server-configimage: 'nacos/nacos-server:v2.3.2'imagePullPolicy: IfNotPresentname: nacos-serverports:- containerPort: 8848name: webprotocol: TCP- containerPort: 7848name: g1protocol: TCP- containerPort: 9848name: g2protocol: TCP- containerPort: 9849name: g3protocol: TCPresources:limits:cpu: '0.6'ephemeral-storage: 2Girequests:cpu: 400mmemory: 128MiterminationMessagePath: /dev/termination-logterminationMessagePolicy: FilednsPolicy: ClusterFirstrestartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:name: nacos-server-svcnamespace: middleware
spec:ports:- name: webport: 8848protocol: TCPtargetPort: 8848nodePort: 30788- name: grbcport: 7848protocol: TCPtargetPort: 7848- name: g2port: 9848protocol: TCPtargetPort: 9848nodePort: 31788- name: g3port: 9849protocol: TCPtargetPort: 9849nodePort: 31789selector:app: nacos-servertype: NodePort

这里的nacos直接部署在middleware命名空间,注意修改上面的mysql相关参数。

NACOS_AUTH_ENABLE: "false"

这个参数必须要有,如果没有,默认会开启认证

由于java项目都运行在k8s里面,因此内网访问,就不需要开启nacos认证了。

创建命名空间

kubectl create namespace middleware

部署应用

kubectl apply -f nacos-server.yaml

等待几分钟,确保3个pod都是Running状态

访问

访问nacos页面,这里使用的nodeport方式暴露端口

http://172.16.0.13:30733/nacos/

默认用户名和密码,都是nacos

点击左侧的clusterManagement-->Cluster Node List,确保3个节点是UP状态


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

相关文章:

  • 微服务通过nacos实现动态路由
  • Go更换国内源配置环境变量
  • Baumer工业相机堡盟工业相机如何通过BGAPISDK初始化时过滤其它非Baumer相机(C#)
  • 鸿萌数据恢复服务:SQL Server 中的“PFS 可用空间信息不正确”错误
  • 网络安全实训第五天(主机系统渗透)
  • DAX(Data Analysis Expressions)数据建模底层原理是什么?BI分析工具的底层及应用场景的分析
  • 节省IO的小技巧:GD32 MCU如何使用一个GPIO实现串口半双工收发
  • Vue 3中deep属性的深度解析:ref与reactive的不同表现
  • Golang | Leetcode Golang题解之第352题将数据流变为多个不相交区间
  • 16:【stm32】I2C的使用一:I2C片上外设的使用
  • 记录一次edu web端渗透测试实录
  • C#与其它编程语言有什么区别,以及相关优势有哪些
  • Windows禁止应用联网
  • Awesome-Chinese-LLM:收集和梳理中文LLM相关的开源模型、应用、数据集及教程等资料
  • Android about event log
  • Java设计模式之中介者模式
  • EmguCV学习笔记 VB.Net 3.1 直线
  • python工具--mysql2doris的datax json生成工具
  • C语言整数溢出的问题
  • 智能驾驶时代的中控屏UI设计创新