【Docker/K8S】windows环境下kompose安装与使用(安装Celery并启动beat定时任务)--20220825

39 篇文章 1 订阅
36 篇文章 1 订阅

参考文档

github https://github.com/kubernetes/kompose/

在这里插入图片描述

CSDN

https://blog.csdn.net/wenwenxiong/article/details/79088449

# Linux
curl -L https://github.com/kubernetes/kompose/releases/download/v1.1.0/kompose-linux-amd64 -o kompose

# macOS
curl -L https://github.com/kubernetes/kompose/releases/download/v1.1.0/kompose-darwin-amd64 -o kompose

# Windows
curl -L https://github.com/kubernetes/kompose/releases/download/v1.1.0/kompose-windows-amd64.exe -o kompose.exe

chmod +x kompose
sudo mv ./kompose /usr/local/bin/kompose

kompose安装

步骤1:安装curl

git clone https://github.com/curl/curl.git
在这里插入图片描述

步骤2:安装kompose

(windows环境)curl -L https://github.com/kubernetes/kompose/releases/download/v1.24.0/kompose-windows-amd64.exe -o kompose.exe
在这里插入图片描述

步骤3:检查kompose

kompose
在这里插入图片描述

步骤4:使用kompose将docker-compose转化为Kubernetes yaml档

kompose convert
在这里插入图片描述
原来的docker-compose.yml

version: "3.2"
services:
  web:
    image: "seasonzhang/gaga_meeting:0.9"
    container_name: gaga_meeting-web
    entrypoint: ["/bin/sh","/code/package/start.sh"]
    # environment:
    #   - server_params=--settings=settings.local
    volumes:
      - C:/Users/Season/Desktop/SQL:/code/package/GAGA/SQL
    ports:
      - "8000:8000"
    depends_on:
      - redis
      - celery
      # - flower
  redis:
    image: "redis:alpine"
    container_name: gaga_meeting-redis
    ports:
      - "6379:6379"
  celery:
    image: "seasonzhang/gaga_meeting:0.9"
    container_name: gaga_meeting-celery
    volumes:
      - C:/Users/Season/Desktop/SQL:/code/package/GAGA/SQL
    entrypoint: ["/bin/sh","/code/package/start-celery.sh"]
    depends_on: 
      - redis
  flower:
    image: "seasonzhang/gaga_meeting:0.9"
    container_name: gaga_meeting-flower
    ports:
      - "5555:5555"
    volumes:
      - C:/Users/Season/Desktop/SQL:/code/package/GAGA/SQL
    entrypoint: ["/bin/sh","/code/package/start-flower.sh"]
    depends_on: 
      - redis
      - web
  beat:
    image: "seasonzhang/gaga_meeting:0.9"
    container_name: gaga_meeting-beat
    volumes:
      - C:/Users/Season/Desktop/SQL:/code/package/GAGA/SQL
    entrypoint: ["/bin/sh","/code/package/start-beat.sh"]
    depends_on: 
      - flower

步骤5:打开yaml档并修改

修改点包括volume和service。

  • web-deployment,svc.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.24.0 (7c629530)
  creationTimestamp: null
  labels:
    io.kompose.service: web
  name: web
spec:
  replicas: 1
  selector:
    matchLabels:
      io.kompose.service: web
  strategy:
    type: Recreate
  template:
    metadata:
      annotations:
        kompose.cmd: kompose convert
        kompose.version: 1.24.0 (7c629530)
      creationTimestamp: null
      labels:
        io.kompose.service: web
    spec:
      containers:
        - command:
            - /bin/sh
            - /code/package/start.sh
          image: seasonzhang/gaga_meeting:0.9.1
          name: gaga-meeting-web
          ports:
            - containerPort: 8000
          resources:
            requests:
              cpu: 100m
              memory: 100Mi
            limits:
              cpu: 200m
              memory: 200Mi
#           volumeMounts:
#             - mountPath: /code/package/GAGA/SQL
#               name: C
#       restartPolicy: Always
#       volumes:
#         - name: C
#           persistentVolumeClaim:
#             claimName: C
# status: {}

---
apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.24.0 (7c629530)
  creationTimestamp: null
  labels:
    io.kompose.service: web
  name: web
spec:
  type: LoadBalancer
  ports:
    - name: "8000"
      port: 8000
      targetPort: 8000
      rotocol: TCP
  selector:
    io.kompose.service: web
status:
  loadBalancer: {}

  • redis-deployment,svc.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.24.0 (7c629530)
  creationTimestamp: null
  labels:
    io.kompose.service: redis
  name: redis
spec:
  replicas: 1
  selector:
    matchLabels:
      io.kompose.service: redis
  strategy: {}
  template:
    metadata:
      annotations:
        kompose.cmd: kompose convert
        kompose.version: 1.24.0 (7c629530)
      creationTimestamp: null
      labels:
        io.kompose.service: redis
    spec:
      containers:
        - image: redis:alpine
          name: gaga-meeting-redis
          ports:
            - containerPort: 6379
          resources:
            requests:
              cpu: 100m
              memory: 100Mi
            limits:
              cpu: 200m
              memory: 200Mi
      restartPolicy: Always
status: {}

---

apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.24.0 (7c629530)
  creationTimestamp: null
  labels:
    io.kompose.service: redis
  name: redis
spec:
  ports:
    - name: "6379"
      port: 6379
      targetPort: 6379
  selector:
    io.kompose.service: redis
status:
  loadBalancer: {}

  • celery-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.24.0 (7c629530)
  creationTimestamp: null
  labels:
    io.kompose.service: celery
  name: celery
spec:
  replicas: 1
  selector:
    matchLabels:
      io.kompose.service: celery
  strategy:
    type: Recreate
  template:
    metadata:
      annotations:
        kompose.cmd: kompose convert
        kompose.version: 1.24.0 (7c629530)
      creationTimestamp: null
      labels:
        io.kompose.service: celery
    spec:
      containers:
        - command:
            - /bin/sh
            - /code/package/start-celery.sh
          image: seasonzhang/gaga_meeting:0.9.1
          name: gaga-meeting-celery
          resources:
            requests:
              cpu: 100m
              memory: 100Mi
            limits:
              cpu: 200m
              memory: 200Mi
      #     volumeMounts:
      #       - mountPath: /code/package/GAGA/SQL
      #         name: C
      # restartPolicy: Always
      # volumes:
      #   - name: C
      #     persistentVolumeClaim:
      #       claimName: C
status: {}

  • beat-deployment.yam
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.24.0 (7c629530)
  creationTimestamp: null
  labels:
    io.kompose.service: beat
  name: beat
spec:
  replicas: 1
  selector:
    matchLabels:
      io.kompose.service: beat
  strategy:
    type: Recreate
  template:
    metadata:
      annotations:
        kompose.cmd: kompose convert
        kompose.version: 1.24.0 (7c629530)
      creationTimestamp: null
      labels:
        io.kompose.service: beat
    spec:
      containers:
        - command:
            - /bin/sh
            - /code/package/start-beat.sh
          image: seasonzhang/gaga_meeting:0.9.1
          name: gaga-meeting-beat
          resources:
            requests:
              cpu: 100m
              memory: 100Mi
            limits:
              cpu: 200m
              memory: 200Mi
#           volumeMounts:
#             - mountPath: /code/package/GAGA/SQL
#               name: C
#       restartPolicy: Always
#       volumes:
#         - name: C
#           persistentVolumeClaim:
#             claimName: C
# status: {}

  • flower-deployment,svc.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.24.0 (7c629530)
  creationTimestamp: null
  labels:
    io.kompose.service: flower
  name: flower
spec:
  replicas: 1
  selector:
    matchLabels:
      io.kompose.service: flower
  strategy:
    type: Recreate
  template:
    metadata:
      annotations:
        kompose.cmd: kompose convert
        kompose.version: 1.24.0 (7c629530)
      creationTimestamp: null
      labels:
        io.kompose.service: flower
    spec:
      containers:
        - command:
            - /bin/sh
            - /code/package/start-flower.sh
          image: seasonzhang/gaga_meeting:0.9.1
          name: gaga-meeting-flower
          ports:
            - containerPort: 5555
          resources:
            requests:
              cpu: 100m
              memory: 100Mi
            limits:
              cpu: 200m
              memory: 200Mi
#           volumeMounts:
#             - mountPath: /code/package/GAGA/SQL
#               name: C
#       restartPolicy: Always
#       volumes:
#         - name: C
#           persistentVolumeClaim:
#             claimName: C
# status: {}

---
apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.24.0 (7c629530)
  creationTimestamp: null
  labels:
    io.kompose.service: flower
  name: flower
spec:
  type: LoadBalancer
  ports:
    - name: "5555"
      port: 5555
      targetPort: 5555
      protocol: TCP
  selector:
    io.kompose.service: flower
status:
  loadBalancer: {}


步骤6:发布在K8S上

基本上kompose转换后的yaml是可以发布的,但目前flower启动有问题。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

步骤7:flower需要debug

Traceback (most recent call last):
  File "/usr/local/bin/celery", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.8/site-packages/celery/__main__.py", line 16, in main
    _main()
  File "/usr/local/lib/python3.8/site-packages/celery/bin/celery.py", line 322, in main
    cmd.execute_from_commandline(argv)
  File "/usr/local/lib/python3.8/site-packages/celery/bin/celery.py", line 499, in execute_from_commandline
    super(CeleryCommand, self).execute_from_commandline(argv)))
  File "/usr/local/lib/python3.8/site-packages/celery/bin/base.py", line 305, in execute_from_commandline
    return self.handle_argv(self.prog_name, argv[1:])
  File "/usr/local/lib/python3.8/site-packages/celery/bin/celery.py", line 491, in handle_argv
    return self.execute(command, argv)
  File "/usr/local/lib/python3.8/site-packages/celery/bin/celery.py", line 415, in execute
    return cls(
  File "/usr/local/lib/python3.8/site-packages/flower/command.py", line 30, in run_from_argv
    self.apply_env_options()
  File "/usr/local/lib/python3.8/site-packages/flower/command.py", line 68, in apply_env_options
    value = option.type(value)
ValueError: invalid literal for int() with base 10: 'tcp://10.43.203.249:5555'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值