gpt4 book ai didi

docker - 我应该如何为 Kubernetes 重写 docker-compose.yaml?

转载 作者:行者123 更新时间:2023-12-02 11:32:11 25 4
gpt4 key购买 nike

我对 K8s 很陌生,所以我从来没有使用过它。但我已经熟悉了节点/pods 的概念。我知道 minikube 是用于 debug/etc 的本地 k8s 引擎,我应该通过 kubectl 工具与任何 k8s 引擎交互。现在我的问题是:

  • 在我的本地 minikube 实例和生产 AWS/etc 实例上启动相同的配置是否保证结果相同?
  • 如何为我的项目设置持续部署?现在我已经配置了 CI,它使用 :latest 将测试代码的图像推送到 docker hub。标签。但我希望它们在不中断正常运行时间的情况下以滚动更新模式自动部署。
  • 使用我应该执行的步骤来获得正确的配置以使其在任何集群上工作会很棒吗?我不想保存 docker-compose 的符号并使用 kompose。我想在 k8s 上下文中正确地制作它。

  • 我当前的 docker-compose.yml 是(django 和 react 服务现在可以从 dockerhub 获得):
    version: "3.5"
    services:
    nginx:
    build:
    context: .
    dockerfile: Dockerfile.nginx
    restart: always
    command: bash -c "service nginx start && tail -f /dev/null"
    ports:
    - 80:80
    - 443:443
    volumes:
    - /mnt/wts_new_data_volume/static:/data/django/static
    - /mnt/wts_new_data_volume/media:/data/django/media
    - ./certs:/etc/letsencrypt/
    - ./misc/ssl/server.crt:/etc/ssl/certs/server.crt
    - ./misc/ssl/server.key:/etc/ssl/private/server.key
    - ./misc/conf/nginx.conf:/etc/nginx/nginx.conf:ro
    - ./misc/conf/passports.htaccess:/etc/passports.htaccess:ro
    depends_on:
    - react
    redis:
    restart: always
    image: redis:latest
    privileged: true
    command: redis-server
    celery:
    build:
    context: backend
    command: bash -c "celery -A project worker -B -l info"
    env_file:
    - ./misc/.env
    depends_on:
    - redis
    django:
    build:
    context: backend
    command: bash -c "/code/manage.py collectstatic --no-input && echo donecollectstatic && /code/manage.py migrate && bash /code/run/daphne.sh"
    volumes:
    - /mnt/wts_new_data_volume/static:/data/django/static
    - /mnt/wts_new_data_volume/media:/data/django/media
    env_file:
    - ./misc/.env
    depends_on:
    - redis
    react:
    build:
    context: frontend
    depends_on:
    - django

    最佳答案

    简短的回答是肯定的,您可以使用 docker-compose 和 K8s 复制您拥有的内容。

  • 这取决于您的基础设施。例如,如果您有一个外部 LoadBalancer在您的 AWS 部署中,它在您的本地不会相同。
  • 你可以做rolling updates (这通常适用于无状态服务)。您还可以利用 GitOps方法的类型。
  • docker-compose 表示法与 K8s 不同,所以是的,您必须将其转换为 Kubernetes 对象:Pod、部署、 secret 、ConfigMap、卷等,并且在大多数情况下,基本对象将在任何集群上工作,但是有将始终是一些与集群物理特性相关的特定对象(即存储卷、负载均衡器等)。 Kubernetes docs非常全面,非常有帮助。
  • 关于docker - 我应该如何为 Kubernetes 重写 docker-compose.yaml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61544632/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com