参考文档
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'