netflix conductor打包及K8s环境部署流程超详细

Netflix conductor打包

自定义 tar包基础准备

下载对应的JDK版本安装到Linux:
具体步骤如下:
step1:下载jdk11,地址:https://docs.oracle.com/en/java/javase/11/

step2:配置jdk11:
解压:tar -zxvf openjdk-11.0.1_linux-x64_bin.tar.gz -C /root/jdk11/jdk-11.0.15.1 #解压到指定目录

step3:编辑环境变量:vi /etc/profile
添加一下内容:

#JAVA_HOME
export JAVA_HOME=/root/jdk11/jdk-11.0.15.1
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

step4:加载环境变量生效:source /etc/profile

step5:查看环境变量是否生效:

[root@master conductor-tar]# echo $PATH
/data/istio-1.16.2/bin:/root/jdk11/jdk-11.0.15.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

step6:查看环境变量是否配置成功

[root@master conductor-tar]# java -version
java version "11.0.15.1" 2022-04-22 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.15.1+2-LTS-10)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.15.1+2-LTS-10, mixed mode)

step7:解压congductorImage文件 到目录/server/下,执行:docker build -t conductor-server.tar .请完成复制这段话尤其后面的点别忘了

X86环境打包

安装以上步骤更改对应的JDK11 jar包,如果是x86的就正常使用https://www.oracle.com/java/technologies/downloads/#java11

Arm环境打包

安装以上步骤更改对应的JDK11 jar包,如果是arm的就正常使用https://www.oracle.com/java/technologies/downloads/#java11

K8S部署流程

部署conductor

step1:根据上面的流程,生成tar,推送tar到harbor仓库或者直接使用

docker save -o conductor-server.tar
docker tag  conductor-server.tar ip:port/目录/ conductor-server.tar(例如:127.0.0.1:1180/test/ conductor-server.tar)
docker push  ip:port/目录/ conductor-server.tar

step2: yaml 编写

apiVersion: apps/v1
kind: Deployment
metadata:
  name: conductor-server
  namespace: conductor
  labels:
    app: conductor-server
spec:
  selector:
    matchLabels:
      app: conductor-server
  replicas: 1
  template:
    metadata:
      labels:
        app: conductor-server
    spec:
      containers:
        - name: conductor-server
          image: conductor/native-conductor-server:latest
          imagePullPolicy: IfNotPresent
          resources:
            requests:
              cpu: 0.1
              memory: 4Gi
            limits:
              cpu: 0.2
              memory: 4Gi
          command:
            - /bin/bash
          args:
            - /app/bootstrap.sh
          env:
            - name: CONFIG_PROP
              value: "config-postgres.properties"
          ports:
            - containerPort: 8080
              name: http
          volumeMounts:
            - name: db-config
              mountPath: /app/config/config-postgres.properties
              subPath: config-postgres.properties
            - name: bootstrap
              mountPath: /app/bootstrap.sh
              subPath: bootstrap.sh
      volumes:
        - name: db-config
          configMap:
            name: server-db-config
        - name: bootstrap
          configMap:
            name: server-bootstrap
      restartPolicy: Always
---
kind: ConfigMap
apiVersion: v1
metadata:
  name: server-db-config
  namespace: conductor
data:
  config-postgres.properties: |
    # Servers.
    #conductor.grpc-server.enabled=false

    #memory
    # Database persistence model.
    #conductor.db.type=memory

    # Dynomite Cluster details.
    # format is host:port:rack separated by semicolon
    #conductor.redis.hosts=native-redis.conductor.svc.cluster.local:6379

    # Namespace for the keys stored in Dynomite/Redis
    #conductor.redis.workflowNamespacePrefix=conductor

    # Namespace prefix for the dyno queues
    #conductor.redis.queueNamespacePrefix=conductor_queues

    # No. of threads allocated to dyno-queues (optional)
    #queues.dynomite.threads=10
    #Database persistence type.
    #conductor.redis.queuesNonQuorumPort=22122



    #pgsql
    conductor.db.type=postgres

    spring.datasource.url=jdbc:postgresql://native-postgres.conductor.svc.cluster.local:5432/conductor
    spring.datasource.username=postgres
    spring.datasource.password=postgres

    # Hikari pool sizes are -1 by default and prevent startup
    spring.datasource.hikari.maximum-pool-size=10
    spring.datasource.hikari.minimum-idle=2

    # Elastic search instance indexing is enabled.
    conductor.indexing.enabled=false

    # Transport address to elasticsearch
    conductor.elasticsearch.url=http://elasticsearch7-single.conductor.svc.cluster.local:9200

    # Name of the elasticsearch cluster
    conductor.elasticsearch.indexName=conductor

    conductor.elasticsearch.clusterHealthColor=yellow

    # Load sample kitchen sink workflow
    # loadSample=true
---
kind: ConfigMap
apiVersion: v1
metadata:       
  name: server-bootstrap
  namespace: conductor
data:
  bootstrap.sh: |
    #!/bin/bash
    mkdir -p /app/logs
    touch /app/logs/server.log
    /app/startup.sh & tail -f /app/logs/server.log
---
apiVersion: v1
kind: Service
metadata:
  name: conductor-server
  namespace: conductor
spec:
  selector:
    app: conductor-server
  type: NodePort
  ports:
    - name: http
      protocol: TCP
      port: 8080

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值