单机 Docker Compose 已经无法满足高可用、弹性和多环境发布。迁移到 Kubernetes 可以复用 Compose 的服务定义,但需要重新设计网络、存储、配置和发布。
docker-compose.yml。docker compose config
docker compose ps
docker compose images
kompose convert -f docker-compose.yml -o k8s/
ls k8s/
build: 改为已推送的镜像。ports: 改为 Service,外部入口用 Ingress。volumes: 改为 PVC 或 ConfigMap。environment: 改为 ConfigMap/Secret。depends_on: 改为启动探针或 initContainer。kubectl create configmap app-config --from-env-file=.env
kubectl create secret generic app-secret \
--from-literal=DB_PASSWORD='***'
kubectl apply -f k8s/
kubectl get pods,svc,ingress
kubectl apply -f - <<'EOF'
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: app-data
spec:
accessModes: [ReadWriteOnce]
resources:
requests:
storage: 20Gi
EOF
depends_on 在 Kubernetes 不生效,启动顺序需要探针或 initContainer。localhost 访问其他服务,迁移后失败。kompose — Compose 转 Kubernetes 清单docker compose — 查看旧环境kubectl — 部署和排查helm / kustomize — 管理清单