K8S 部署 seata

news/2025/2/25 18:55:27

文章目录

  • 创建 Deployment 文件
  • 创建 ConfigMap 文件
  • 创建 Service 文件
  • 运行
  • 访问
  • 高可用部署
  • 踩坑

官方文档

k8s中volumeMounts.subPath的巧妙用法

 

创建 Deployment 文件

deploymemt.yaml

  • namespace:指定命名空间
  • image:使用 1.5.2 版本的镜像
  • ports:暴露 8091 和 7091 端口
  • volumeMounts:容器中的存储
  • mountPath: 存储路径
  • subPath:指定出具体文件
  • volumes:pod 存储
  • configMap.name:对应 configMap 文件的 metadata. name
apiVersion: apps/v1
kind: Deployment
metadata:
  name: seata-server
  namespace: common
  labels:
    k8s-app: seata-server
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: seata-server
  template:
    metadata:
      labels:
        k8s-app: seata-server
    spec:
      containers:
        - name: seata-server
          image: docker.io/seataio/seata-server:1.5.2
          imagePullPolicy: IfNotPresent
          ports:
            - name: http-7091
              containerPort: 7091
              protocol: TCP
            - name: http-8091
              containerPort: 8091
              protocol: TCP
          volumeMounts:
            - name: seata-config
              mountPath: /seata-server/resources/application.yml
              subPath: application.yml
      volumes:
        - name: seata-config
          configMap:
            name: seata-server-config

 

创建 ConfigMap 文件

configmap.yaml
映射 application.yml 文件,例子使用 seata 原始配置文件

apiVersion: v1
kind: ConfigMap
metadata:
  name: seata-server-config
  namespace: common
data:
  application.yml: |
    server:
      port: 7091

    spring:
      application:
        name: seata-server

    logging:
      config: classpath:logback-spring.xml
      file:
        path: ${user.home}/logs/seata
      extend:
        logstash-appender:
          destination: 127.0.0.1:4560
        kafka-appender:
          bootstrap-servers: 127.0.0.1:9092
          topic: logback_to_logstash

    console:
      user:
        username: seata
        password: seata

    seata:
      config:
        # support: nacos, consul, apollo, zk, etcd3
        type: file
      registry:
        # support: nacos, eureka, redis, zk, consul, etcd3, sofa
        type: file
      store:
        # support: file 、 db 、 redis
        mode: file
    #  server:
    #    service-port: 8091 #If not configured, the default is '${server.port} + 1000'
      security:
        secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017
        tokenValidityInMilliseconds: 1800000
        ignore:
          urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login

 

创建 Service 文件

service.yaml
对外暴露 NodePort 端口

apiVersion: v1
kind: Service
metadata:
  name: seata-server
  namespace: common
  labels:
    k8s-app: seata-server
spec:
  type: NodePort
  ports:
    - port: 8091
      nodePort: 30893
      protocol: TCP
      name: seata-8091
    - port: 7091
      nodePort: 30793
      protocol: TCP
      name: seata-7091
  selector:
    k8s-app: seata-server

 

运行

kubectl apply -f deployment.yaml
kubectl apply -f configmap.yaml
kubectl apply -f service.yaml

 

访问

访问 ip:30793 即可访问 seata
默认账号:seata
默认密码:seata

在这里插入图片描述
 

高可用部署

修改 configmap 映射的 application.yml 文件

  • seata.config:配置 seata 配置文件路径
  • seata.registry:配置 seata 注册地址
seata:
  config:
    type: nacos
    nacos:
      server-addr: nacosIp:port
      namespace: seata
      group: dev
      username: nacos
      password: nacos
      data-id: seata-dev.yml
  registry:
    type: nacos
    nacos:
      application: seata-server
      server-addr: nacosIp:port
      group: dev
      namespace: seata
      cluster: default
      username: nacos
      password: nacos

deployment 添加多个 pod
在这里插入图片描述

成功注册上 nacos
在这里插入图片描述

 

踩坑

  • 问题:按照官方文档 Seata 高可用部署,镜像使用 1.5.0 及以上的版本时,seata 无法正常注册到 nacos
    解决办法:镜像使用 1.4.2 版本

  • 问题:使用 1.4.2 版本版本后,高可用还是有问题,nodeport 暴露后无法访问
    解决办法:使用本文部署


http://www.niftyadmin.cn/n/309889.html

相关文章

展馆展厅人员定位系统的功能和作用

展馆展厅人员管理存在许多痛点。首先,展馆展厅常常需要管理大量的志愿者和临时工,如何保证他们的工作质量和效率是一个挑战;其次,人员的排班和任务分配需要大量的协调和沟通,容易出现人员冲突和任务重复等问题&#xf…

spring cloud alibaba框架对比

SpringCloud状态SpringCloudAlibaba状态注册中心Eureka2.0孵化失败nacos性能强劲,感知能力更强消息中间件无(第三方替代方案:rabbitmq)RecketMQ/Kafka分布式事务解决方案无(第三方替代方案:2pc)Seata分布式调度服务无(第三方替代方案&#xf…

【云原生进阶之PaaS中间件】第一章Redis-1.2数据类型

1 Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。…

抖音小程序怎么压缩图片?教你使用抖音图片压缩助手

图片压缩是将原始图像的数据量进行减少,从而使其文件大小更小,但尽量保持原有图像质量的一种技术。通过对图片进行压缩,可以降低图片在传输过程中所需的带宽和存储空间,提高网站或应用程序的加载速度和响应速度。 此外&#xff0…

调用api接口有什么用?

API(应用程序接口)是一种允许不同应用之间互相通信的技术。API接口作为中间层,将不同的系统、平台、编程语言之间的数据进行交互和传输。API接口可以为开发人员提供调用外部程序或服务的统一界面,让开发人员无需深入了解被调用的程…

腾讯云网站备案流程步骤、备案审核通过时间详细说明

腾讯云网站备案流程先填写基础信息、主体信息和网站信息,然后提交备案后等待腾讯云初审,初审通过后进行短信核验,最后等待各省管局审核,前面腾讯云初审时间1到2天左右,最长时间是等待管局审核时间,网站备案…

asp.net web api 后端服务器在调试时跨域问题的解决方案

跨域在发布时,在iis设置中 https://www.cnblogs.com/babietongtianta/p/6488985.html 在开发调试时,program.cs中添加 和各种方法,都不可以。 后来在iisexpress中设置,解决了。 在右下角iisexpress 右键 双击打开applicationho…

严格平稳、弱平稳、白噪声与渐进独立

严格平稳、弱平稳、白噪声与渐进独立 文章目录 严格平稳、弱平稳、白噪声与渐进独立[toc]1 严格平稳2 弱平稳3 白噪声4 渐进独立 1 严格平稳 严格平稳:给定随机过程 { x t } t 1 ∞ \{x_t\}_{t1}^\infty {xt​}t1∞​,对于任意 m m m个时期的集合 { t …