k8s上部署seata-server集群并注册到nacos上

news2025/1/12 21:01:52

部署前准备

第一步:

创建seata-server需要的表,有现成的阿里云RDS,就直接在RDS上创建数据库了,方便后面统一管理。
具体的 SQL 参考script/server/db ,这里使用的是 MySQL 的脚本,数据库名称为 seata,还需要创建undo_log 表, 可以参考script/client/at/db/

第二步:

  • 修改seata-server配置

将以下配置保存为config.txt

service.vgroupMapping.my_test_tx_group=default
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://xxx.mysql.rds.aliyuncs.com/seata?useUnicode=true
store.db.user=数据库的用户
store.db.password=数据库的密码
  • 创建nacos目录,将nacos-config.sh存放到nacos目录,层级结构如上,执行shell脚本,将配置导入Nacos配置中心,具体添加方法可以参考script/config-center

  • 执行shell

sh ./nacos/nacos-config.sh -h xx.xx.xx.xx -p 8848 -g SEATA_GROUP -u username -w password
参数说明:
-h: Nacos主机地址,默认是localhost
-p: Nacos主机端口,默认是8848
-g: 配置分组, the default value is 'SEATA_GROUP'.
-t: 租户信息, 与Nacos的 "命名空间ID" 字段相对应, the default value is ''.
-u: Nacos用户名, the default value is ''.
-w: Nacos密码, the default value is ''.

由于执行上面的shell脚本这种方式在nacos会生成一堆配置信息,看着比较乱,修改seata-server这步可以换成在nacos的配置管理-配置列表里导入配置
在这里插入图片描述
在这里插入图片描述
Data ID:xx-seata.yaml
Group: DEFAULT_GROUP
配置内容:

# Seata配置
seata:
  # 默认关闭
  enabled: true
  # Seata 应用编号
  application-id: ${spring.application.name}
  # Seata 事务组编号,用于 TC 集群名 default_tx_group
  tx-service-group: ${spring.application.name}-group
  #  # 关闭自动代理
  enable-auto-data-source-proxy: false
  # 服务配置项
#  service:
#    # 虚拟组和分组的映射
#    vgroup-mapping:
#      test-platform-layer-group: default
  config:
    type: nacos
    nacos:
      server-addr: ${spring.cloud.nacos.config.server-addr}
      group: SEATA_GROUP
      namespace: ${spring.profiles.active}
      data-id: xxx-seata-server.properties
      username: ${spring.cloud.nacos.username}
      password: ${spring.cloud.nacos.password}
  registry:
    type: nacos
    nacos:
      application: ${spring.application.name}-seata
      server-addr: ${spring.cloud.nacos.config.server-addr}
      group: SEATA_GROUP
      namespace: ${spring.profiles.active}
      username: ${spring.cloud.nacos.username}
      password: ${spring.cloud.nacos.password}

部署 seata-server 到 Kubernetes

由于新版本里启动配置文件把registry.conf和file.conf去掉了,现在新版本默认的配置文件只用到了application.yml文件,所以需要把application.yml文件挂载到seata-server 服务里的/seata-server/resources/目录下,替换掉服务默认的application.yml文件。
需要将application.yml从宿主机挂载到pod内,部署的全部yaml文件如下:

apiVersion: v1
kind: Service
metadata:
  name: seata-ha-server
  namespace: default
  labels:
    app.kubernetes.io/name: seata-ha-server
spec:
  type: NodePort
  ports:
    - port: 8091
      protocol: TCP
      targetPort: 8091
      name: http
  selector:
    app.kubernetes.io/name: seata-ha-server


---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: seata-ha-server
  namespace: default
  labels:
    app.kubernetes.io/name: seata-ha-server
spec:
  serviceName: seata-ha-server
  replicas: 3
  selector:
    matchLabels:
      app.kubernetes.io/name: seata-ha-server
  template:
    metadata:
      labels:
        app.kubernetes.io/name: seata-ha-server
    spec:
      nodeSelector: 
        app: seata
      containers:
      - name: seata-ha-server
        image: seataio/seata-server:1.5.2
        imagePullPolicy: IfNotPresent
        volumeMounts: 
        - mountPath: /seata-server/resources/application.yml
          name: seata-ha-server-config
        ports:
          - name: http
            containerPort: 8091
            hostPort: 8091
            protocol: TCP
      volumes:
        - name: seata-ha-server-config
          hostPath:
            path: /root/seata/application.yml
            type: File

kubectl create -f seata-server.yaml

部署完以后,seata-server服务会注册到nacos上
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/165.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

对外 API 接口,请把握这3 条原则,16 个小点

对外API接口设计 安全性 1、创建appid,appkey和appsecret 2、Token:令牌(过期失效) 3、Post请求 4、客户端IP白名单 (可选) 5、单个接口针对IP限流(令牌桶限流,漏桶限流,计数器…

git如何回滚,返回到之前的记录

文章目录1.建立一个reset的测试文件,并连续提交。2.进行回滚测试。2.1测试,回滚到第二次提交2.1.1首先使用git log命令查看commit记录2.1.2查看结果.2.1.3回滚结果提交到远程2.2.你发现自己回滚的多了3.1撤销测试3.1建立文件,多次填写内容上传到git3.2撤…

顺序栈和链栈的定义和使用C语言实现(附有完整代码)

栈的基本内容: 无论是我们接下来要讲的栈还是后面要讲到的队列,他们虽然在名字上不同于我们之前的顺序表或者单链表,但是它们本质也是线性表,只是在基本操作上没有表那么“自由”。比如:栈只能从栈顶进行插入和删除&a…

【Linux】Linux文件权限的理解

💬推荐一款模拟面试、刷题神器 、从基础到大厂面试题:👉点击跳转刷题网站进行注册学习 目录 一、Shell是什么? 1、Shell承担用户和内核间的翻译工作 2、拒绝用户非法请求,保护内核 3、派生子进程执行用户指令 二…

SpringCloud

SpringCloud 三 本章知识点 3.1 项目架构演变 3.1.1 单体应用架构 部署到一个war里 部署到一个web容器里(如tomcat) 公用一个DB 优点: 容易测试 容易部署缺点: 开发效率低 代码维护难 部署不灵活(如构建时间特别长&#xff0…

人工智能轨道交通行业周刊-第19期(2022.10.17-10.23)

本期关键词:首都智慧地铁、AI四小龙、文本生成视频、低光照目标检测、天窗、电务人员 1 整理涉及公众号名单 1.1 行业类 RT轨道交通中关村轨道交通产业服务平台人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟V…

四非到保研厦大,我们还有多少路要走----技术人的保研之路

前言: “Hello,大家好我叫是Dream呀!”在1024程序员节到来之际,我想和大家一起分享一下技术人生的故事----我的学长2022年从四非保研至厦大的经验和经历,希望大家可以耐心看完,收获技术力量,更加…

Java面试题

1、JDK 、JRE和JVM 的区别? JDK,java development kit java开发工具包,为java程序提供开发和运行环境JRE, java runtime environment java运行环境,为java程序提供必须的运行环境JVM, java virtual mach…

RayVentory以改进IT的分析,RayVentory原始数据之间轻松切换

使用KeyCloak进行SSO(单点登录)-使用单点登录解决方案,并直接与KeyClok交互。 特定于公司的数据丰富—使用产品所有者、价格或许可证信息等信息轻松丰富您的数据,以获得所需数据的综合视图。 用于更深入数据管理的新连接器-添加了许多新连接器&#xff0…

Vue3中 响应式 API ( readonly、shallowReadonly、toRaw、markRaw ) 详解

传送门:Vue3中 响应式 API ( reactive、ref、toRef、toRefs ) 详解 传送门:Vue3中 响应式 API( shallowReactive、shallowRef、triggerRef 、customRef )详解 1. readonly 函数 接受一个对象 (不论是响应式还是普通的) 或是一个…

深度学习visio作图技巧

目录 1.不显示跨线 2.调节连接线拐弯 3.方框与连接线反应 4.设计一个卷积块/特征图 5.设计一个特征图方块 1.不显示跨线 不显示跨线:设计→连接线,取消显示 跨线的勾选 2.调节连接线拐弯 连接线拐弯:按住shift拖动线条即可控制连接线拐…

高数(下) 第十二章:无穷级数

文章目录Ch12. 无穷级数(一) 常数项级数正项级数交错级数任意项级数4个特殊的常数项级数收敛级数的性质(针对任意项级数)常数项级数的审敛法1.正项级数审敛法(判别法)(1)比较判别法(2)比较审敛法极限形式(3)比值法(4)根值法(5)收敛的充要条件(6)绝对收敛…

Spring Boot 篇四: Spring Data JPA使用SQL Server

本文目录SQL Server Express的安装或直接DockerSQL Server JDBC DriverTCP/IP 链接端口Integrated SecuritySSL总结本篇介绍篇一至篇三中用到的JPA链接SQL Server的具体情况以及实战过程中可能遇到的问题。 SQL Server Express的安装或直接Docker 具体的下载和安装教程&#…

sanic:通过dockerfile部署

简介:长期以来,环境一直是部署的难题。如果您的项目中有冲突的配置,您将不得不花费大量时间来解决它们。幸运的是,虚拟化为我们提供了一个很好的解决思路。Docker 就是其中之一。 历史攻略: sanic框架:简…

内网渗透体系学习1

工作组 工作组(Work Group)是计算机网络的一个概念,也是最常见和最普通的资源管理 模式,就是将不同的计算机按照功能或部门分别置于不同的组。通过创建不同的 工作组,不同的计算机可以按照功能或部门归属到不同的组内,整个组织的网…

XSCTF联合招新赛-热身赛(部分WP)

由于没有多少时间答题,抽空在划水的时候做了一两道题目.比赛已经结束了24小时了。特把写的WP分享一下,欢迎各位大佬进行指点。 文章目录warm_up头头是道B45364EZphpeasy_sqlbaigeiRSAimage1image2image3image42^11warm_up 只有虔诚的嘉心糖才能成功拿到flag 地址:4…

5G核心网技术基础自学系列 | 语音业务

书籍来源:《5G核心网 赋能数字化时代》 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:5G核心网技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 3.9.1 5G语音概述 除了用于机器之…

libusb系列-003-Linux下libusb源码编译

libusb系列-003-Linux下libusb源码编译 文章目录libusb系列-003-Linux下libusb源码编译摘要源码下载及解压下载源码解压下载的源码压缩包打开终端准备编译环境安装make dh-autoreconf安装 libudev-dev编译错误的教程增加执行bootstrap.sh指令再编译make安装库确认下关键字&…

C语言中的文件操作那些事儿~~

是时候该学着操作文件了什么是文件文件种类文件名为什么要使用文件文件的打开和关闭文件的顺序读写fgetc/fputcfgets/gputsfscanf/fprintffread/fwrite文件的随机读写fseekftellrewind文件读取结束的判断文件缓冲区男人过了二十岁就要学着沉稳,遇到问题不要慌&#…

【Java】异常

看似不起波澜的日复一日 会突然在某一天让人看到坚持的意义 目录 1.认识异常 1.1 异常的概念 1.2 常见的异常 2.异常的体系结构 3.异常的分类 3.1 编译时异常 3.2 运行时异常 4.异常的处理 4.1 事前防御型 4.2 事后认错型 5.事后认错型处理 5.1 异常的抛出…