栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker和k8s部署seata-server 配置nacos

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker和k8s部署seata-server 配置nacos

通过docker-compose部署

1、编写docker-compose.yaml文件

version: "3"
services:
  seata-server:
    image: seataio/seata-server:1.4.2
    hostname: seata-server
    container_name: seata-server
    ports:
      - "8091:8091"
    volumes:
      - ./seata-server:/seata-server
    environment:
      - SEATA_PORT=8091
      - STORE_MODE=file

2、将挂载目录注释后启动

docker-compose up -d

3、将容器镜像里的配置拷贝出来

docker cp seata-server:/seata-server ./seata-server

4、停止容器并修改seata-server/resources/registry.conf配置文件

停止容器

docker-compose down

文件修改

修改为type="nacos",并填上正确的nacos地址

registry {
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  type = "nacos"

  nacos {
    application = "seata-server"
    serverAddr = "ip:8848"
    group = ""
    namespace = ""
    cluster = "default"
    username = ""
    password = ""
  }

5、nacos添加seata-serveer配置文件

seata.yaml

client:
  rm:
    asyncCommitBufferLimit: 10000
    reportRetryCount: 5
    reportSuccessEnable: false
    sagaBranchRegisterEnable: false
    sqlParserType: druid
    tablemetaCheckEnable: false
    tablemetaCheckerInterval: 60000
    tccActionInterceptorOrder: -2147482648
    lock:
      retryInterval: 10
      retryPolicyBranchRollbackOnConflict: true
      retryTimes: 200
  tm:
    commitRetryCount: 5
    defaultGlobalTransactionTimeout: 60000
    degradeCheck: false
    degradeCheckAllowTimes: 10
    degradeCheckPeriod: 2000
    interceptorOrder: -2147482648
    rollbackRetryCount: 5
  undo:
    dataValidation: true
    logSerialization: jackson
    logTable: undo_log
    onlyCareUpdateColumns: true
    compress:
      enable: true
      threshold: 64k
      type: zip
log:
  exceptionRate: 100
metrics:
  enabled: false
  exporterList: prometheus
  exporterPrometheusPort: 9898
  registryType: compact
server:
  distributedLockExpireTime: 10000
  maxCommitRetryTimeout: -1
  maxRollbackRetryTimeout: -1
  recovery:
    asynCommittingRetryPeriod: 1000
    committingRetryPeriod: 1000
    rollbackingRetryPeriod: 1000
    timeoutRetryPeriod: 1000
  rollbackRetryTimeoutUnlockEnable: false
  undo:
    logDeletePeriod: 86400000
    logSaveDays: 7
service:
  default:
    grouplist: 172.21.73.115:8091
  disableGlobalTransaction: false
  enableDegrade: false
  vgroupMapping:
    dev_tx_group: default
store:
  db:
    branchTable: branch_table
    datasource: druid
    dbType: mysql
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://mysqlurl:3306/seata?serverTimezone=GMT%2B8&useSSL=false&useUnicode=true&characterEncoding=utf-8
    user: 
    password: 
    globalTable: global_table
    lockTable: lock_table
    queryLimit: 100
    maxConn: 100
    maxWait: 5000
    minConn: 10
  file:
    dir: file_store/data
    fileWriteBufferCacheSize: 16384
    flushDiskMode: async
    maxBranchSessionSize: 16384
    maxGlobalSessionSize: 512
    sessionReloadReadSize: 100
  lock:
    mode: db
  mode: db
  redis:
    mode: single
    single:
      host: 172.21.74.151
      port: 6379
    password: 
    database: 0
    maxConn: 10
    maxTotal: 100
    minConn: 1
    queryLimit: 100
  session:
    mode: db
transport:
  type: TCP
  compressor: none
  enableClientBatchSendRequest: true
  heartbeat: true
  serialization: seata
  server: NIO
  shutdown:
    wait: 3
  threadFactory:
    bossThreadPrefix: NettyBoss
    bossThreadSize: 1
    clientSelectorThreadPrefix: NettyClientSelector
    clientSelectorThreadSize: 1
    clientWorkerThreadPrefix: NettyClientWorkerThread
    serverExecutorThreadPrefix: NettyServerBizHandler
    shareBossWorker: false
    workerThreadPrefix: NettyServerNIOWorker
    workerThreadSize: default

 6、docker-compose ip -d启动

7、在nacos上查看服务列表

k8s部署 

 1、制作镜像并上传到harbor

Dockerfile

FROM seataio/seata-server:1.4.2
ADD registry.conf  /seata-server/resources/registry.conf

docker build -t xxx/seata-server:k8sv1.4.2 .
docker push  xxx/seata-server:k8sv1.4.2

2、编写k8s yaml文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: seata-server #应用名称
  namespace: mbo
  labels:
    app: seata-server
    mbo: seata-server
spec:
  selector:
    matchLabels:
      app: seata-server
  replicas: 1 #开启实例份数
  template:
    metadata:
      labels:
        app: seata-server
        mbo: seata-server
    spec:
      imagePullSecrets:
        - name: docker-pull-images
      containers:
        - name: seata-server  #容器名称
          image: xxx/seata-server:k8sv1.4.2                
          imagePullPolicy: Always 
          ports:
            - name: http
              containerPort: 8091       
          #readinessProbe就绪探测,用于判断容器是否启动完成
          readinessProbe:
            tcpSocket:
              port: 8091
            initialDelaySeconds: 5
            periodSeconds: 10
          #存活探测,用于判断容器是否存活(running状态)
          livenessProbe:
            tcpSocket:
              port: 8091
            initialDelaySeconds: 15
            periodSeconds: 20                

---
    
kind: Service
apiVersion: v1 
metadata:
  name: seata-server-svc #服务名称
  namespace: mbo
spec:
  type: ClusterIP
  selector:
    app: seata-server #应用名称
  ports:
    - name: seata-server-svc
      protocol: TCP
      port: 8091
      targetPort: 8091              

3、启动并查看日志
kubectl apply -f seata-server.yaml
kubectl get pods -nmbo|grep seata-server
kubectl logs seata-server-665cd7bfdf-f9nbc -nmbo

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/757252.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号