首页 > 数据库 >K8s部署Nacos 2.0.3集群模式(外置mysql数据库)

K8s部署Nacos 2.0.3集群模式(外置mysql数据库)

时间:2023-09-19 19:48:47浏览次数:62  
标签:name service 数据库 Nacos 外置 nacos mysql 2.0 metadata

来源:https://www.woniusnail.com/?p=1691

Nacos 具体介绍就不介绍了,详细的官方都有。

本次主要介绍在k8s集群中部署Nacos集群(3节点),数据库使用外置的 mysql ,相比使用官方的在k8s内创建数据库的方案维护更方便,所有nacos配置 全部保存在数据库中,不用担心重启掉线等异常导致配置文件丢失。

Nacos及所有相关服务皆部署在default 命名空间,配置文件中未指定命名空间,如需指定命名空间可在配置文件增加 metadata.namespace 属性,指定命名空间。建议与需要使用的微服务在同一个命名空间下。

部署用到的文件可直接下载使用。

环境介绍:

Mysql 5.7

kubernetes 1.20

第一步:初始化数据库

连接数据库并创建库,执行初始化脚本建表。

#1.创建数据库 CREATE DATABASE `nacos_config` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';   #2.执行初始化脚本方式随意,导进去就可以 脚本官方地址: https://github.com/alibaba/nacos/blob/develop/distribution/conf/nacos-mysql.sql   打不开多试几次。

第二步:创建mysql-nacos服务

因为我们是使用外置的mysql服务,所以需要使用k8s的endpoints + service 进行转发,否则无法连接数据库。

#1.创建mysql-nacos-service.yaml vim mysql-nacos-service.yaml   kind: Service apiVersion: v1 metadata: name: mysql-nacos #保持与下面endpoint的metadata.name一致 labels: name: mysql-nacos #保持与下面endpoint的metadata.labels.name一致 spec: clusterIP: None ports: - port: 33006 name: mysql-nacos #这名字理论上随意 targetPort: 33006   --- kind: Endpoints apiVersion: v1 metadata: name: mysql-nacos labels: name: mysql-nacos subsets: - addresses: - ip: 192.168.10.21 #这里是数据库的ip地址 ports: - port: 33036 #数据库端口     #2.使用mysql-nacos-service.yaml   kubectl create -f mysql-nacos-service.yaml

第三步:创建nacos集群

根据官方模板修改,新增及修改部分已经标注。

#1.创建nacos-StatefulSet.yaml vim nacos-StatefulSet.yaml --- apiVersion: v1 kind: Service metadata: name: nacos-headless labels: app: nacos-headless spec: type: ClusterIP clusterIP: None ports: - port: 8848 name: server targetPort: 8848 - port: 9848 name: client-rpc targetPort: 9848 - port: 9849 name: raft-rpc targetPort: 9849 ## 兼容1.4.x版本的选举端口 - port: 7848 name: old-raft-rpc targetPort: 7848 selector: app: nacos --- apiVersion: v1 kind: ConfigMap metadata: name: nacos-cm #这里下面会用到 data: mysql.service.name: "mysql-nacos" #增加数据库地址变量,这里填写第二步创建的service名字. mysql.db.name: "nacos_config" #数据库名字 mysql.port: "33006" #数据库端口 mysql.user: "your user" #数据库用户名 mysql.password: "your password" #数据库密码 --- apiVersion: apps/v1 kind: StatefulSet metadata: name: nacos spec: serviceName: nacos-headless replicas: 3 template: metadata: labels: app: nacos annotations: pod.alpha.kubernetes.io/initialized: "true" spec: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: "app" operator: In values: - nacos topologyKey: "kubernetes.io/hostname" containers: - name: k8snacos image: "nacos/nacos-server:latest" resources: requests: memory: "2Gi" cpu: "500m" ports: - containerPort: 8848 name: client - containerPort: 9848 name: client-rpc - containerPort: 9849 name: raft-rpc - containerPort: 7848 name: old-raft-rpc env: - name: NACOS_REPLICAS value: "3" - name: MYSQL_SERVICE_HOST #添加的数据库地址环境变量,无需修改. valueFrom: configMapKeyRef: name: nacos-cm key: mysql.service.name - name: MYSQL_SERVICE_DB_NAME valueFrom: configMapKeyRef: name: nacos-cm key: mysql.db.name - name: MYSQL_SERVICE_PORT valueFrom: configMapKeyRef: name: nacos-cm key: mysql.port - name: MYSQL_SERVICE_USER valueFrom: configMapKeyRef: name: nacos-cm key: mysql.user - name: MYSQL_SERVICE_PASSWORD valueFrom: configMapKeyRef: name: nacos-cm key: mysql.password - name: NACOS_SERVER_PORT value: "8848" - name: NACOS_APPLICATION_PORT value: "8848" - name: PREFER_HOST_MODE value: "hostname" - name: NACOS_SERVERS value: "nacos-0.nacos-headless.default.svc.cluster.local:8848 nacos-1.nacos-headless.default.svc.cluster.local:8848 nacos-2.nacos-headless.default.svc.cluster.local:8848" #这里中间的default,需要根据实际的命名空间修改,默认default命名空间 selector: matchLabels: app: nacos   #2.创建nacos集群   kubectl create -f nacos-StatefulSet.yaml   #4.检查集群状态   kubectl get sts nacos   #5.查看日志   kubectl logs -f po/nacos-0 kubectl logs -f po/nacos-1 kubectl logs -f po/nacos-2

第四步:访问Nacos集群

使用NodePort方式访问

#1.创建nacos-service.yaml vim nacos-service.yaml --- apiVersion: v1 kind: Service metadata: name: nacos labels: app: nacos spec: selector: app: nacos externalTrafficPolicy: Cluster ports: - name: nacos-service-0 targetPort: 8848 nodePort: 30000 port: 8848 protocol: TCP type: NodePort   访问方式为:NodePort IP:30000   默认用户名密码为 nacos/nacos

至此Nacos集群就配置完成了。

附件中包含所有的配置文件,有需要可直接下载使用。

标签:name,service,数据库,Nacos,外置,nacos,mysql,2.0,metadata
From: https://www.cnblogs.com/gaoyanbing/p/17715610.html

相关文章

  • HBuilder打包vue2.0项目生成的APK空白(已解决)
    1、config下面的index.js中bulid模块导出的路径,因为index.html里边的内容都是通过script标签引入的,而路径不对,打开肯定是空白的。先看一下默认的路径。build:{//Templateforindex.html//Paths需要修改的是这里的路径index:path.resolve(__dirname,'........
  • vue2.0 项目创建和配置
    项目的框架概述:前端:1、采用vue2.02、采用elementui后端:1、Jave一、前端1、创建项目vuecreateweb_admin创建成功后的项目结构2、安装elementui指定版本[email protected]、在main.js入口文件引入elementui插件importVuefrom'vue'importAppfro......
  • Python端连接nacos的配置settings
    Python端连接nacos的配置settings安装依赖pipinstallnacos-sdk-python#Nacos配置文件为yaml的依赖pipinstallpyyaml基础使用#导入包importnacos,yaml#连接地址SERVER_ADDRESSES='需要连接的nacos地址'#命名空间NAMESPACE='需要连接的命名空间'#账......
  • “源启2.0”:从自上而下的解构,到自下而上的重构
    从垂直打穿、到应用重构,中电金信赋能行业数字化转型之路既“向下走”、也“向上看”。“向上”先理解和吃透客户的企业战略,进而自上而下地将企业战略拆解为业务架构,“向下”再将业务架构拆解为应用架构和数据架构,并进一步对齐技术架构。而在此过程中,上至“应用重构”,下至“数字基础......
  • “源启2.0”:从自上而下的解构,到自下而上的重构
    从垂直打穿、到应用重构,中电金信赋能行业数字化转型之路既“向下走”、也“向上看”。“向上”先理解和吃透客户的企业战略,进而自上而下地将企业战略拆解为业务架构,“向下”再将业务架构拆解为应用架构和数据架构,并进一步对齐技术架构。而在此过程中,上至“应用重构”,下至“数字基......
  • Nacos源码 (6) Grpc概述与Nacos集成
    Nacos2.x版本增加了GRPC服务接口和客户端,极大的提升了Nacos的性能,本文将简单介绍grpc-java的使用方式以及Nacos中集成GRPC的方式。grpc-javaGRPC是google开源的、以protobuf作为序列化方式、以http2作为通信协议的高性能rpc框架。grpc-java是grpc对java语言的实现,使用Netty/Ok......
  • Ubuntu 22.04 安装Google chrome谷歌浏览器
    前言Ubuntu22.04LTS版本不会自带google浏览器,默认自带了Firefox浏览器。本文介绍如何使用Firefox浏览器下载Google浏览器。动作指导打开自带的Firefox浏览器输入网址:www.google.cn/intl/zh-CN/chrome,回车打开页面根据页面提示,下载deb版本的安装文件等待下载完成......
  • Ubuntu22.04防火墙设置
    使用管理员账号sudosuroot如果你的系统还没有安装ufw,则使用以下命令进行安装sudoaptupdatesudoaptinstallufw安装完成后查看防火墙状态sudoufwstatus如果输出结果为Status:inactive则代表防火墙是关闭状态使用以下命令打开防火墙sudoufwenabl......
  • Virtual Box 安装 Ubuntu 22.04 操作系统窗口过小,修改分辨率
    问题在VirtualBox安装Ubuntu操作系统时,默认给的800x600窗口太小,ubuntu22.04的安装按钮被遮挡,无法顺利执行安装引导。解决安装引导是一个窗口化程序,支持鼠标拖动。鼠标左键单击窗口标题栏,拖动窗口在桌面处右键,选择显示设置设置合适的分辨率,点击应用短暂黑屏后,界......
  • Nacos深入原理从源码层面讲解
    目录1Nacos原理1.1Nacos架构1.2注册中心原理1.3SpringCloud服务注册1.4NacosServiceRegistry实现1.4.1心跳机制1.4.2注册原理1.4.3总结1.5服务提供者地址查询1.6Nacos服务地址动态感知原理1Nacos原理1.1Nacos架构ProviderAPP:服务提供者ConsumerAPP:服务消费者......