【问题标题】:Running kubernetes on windows在 Windows 上运行 kubernetes
【发布时间】:2020-06-29 00:38:18
【问题描述】:

我正在使用 docker toolbox (windows 7) 创建我的 docker 镜像,现在我想使用 kubernetes 作为容器编排。

我想在本地运行 Kubernetes,我使用 minikube 和 kubectl 安装它。这是最好的方法吗?我可以在 windows7 上使用 k3s 吗?

是否可以在 Windows 7 上创建一个私有注册表作为 docker hub?

谢谢。

【问题讨论】:

    标签: docker kubernetes minikube


    【解决方案1】:

    在本地试验 Kubernetes 的最简单方法是使用 Minikube

    至于 Docker 注册表,我建议从 Docker Hub 运行官方的registry image。当你想更上一层楼时,Nexus 是一个非常不错的选择。

    【讨论】:

      【解决方案2】:
      1. 如果您想使用 Kubernetes,最新版本的 Docker Desktop 允许您在桌面上设置一个功能齐全的 Kubernetes 环境,并通过单击启用此功能,请参见下图和此处Docker docs

      2. 私有注册表允许您存储图像,并提取供应商提供的官方图像。那是一种云服务,Docker Hub 只是众多可用的存储库之一。

      【讨论】:

      • 她使用的是 Windows 7,因此无法下载 Docker Desktop。
      【解决方案3】:

      Docker Desktop 包括一个独立的 Kubernetes 服务器和客户端,以及 Docker CLI 集成。 Kubernetes 服务器在您的 Docker 实例中本地运行,不可配置,并且是一个单节点集群。

      参考: https://docs.docker.com/docker-for-windows/kubernetes/

      Kubernetes 服务器在本地系统的 Docker 容器中运行,仅用于本地测试。启用 Kubernetes 支持后,您可以在 Kubernetes、Swarm 和独立容器上并行部署工作负载。启用或禁用 Kubernetes 服务器不会影响您的其他工作负载。

      您可以使用docker stack deploydocker-compose.yml 文件和堆栈名称在 Kubernetes 上部署堆栈。

      docker stack deploy --compose-file /path/to/docker-compose.yml mystack
      docker stack services mystack
      

      为了能够在 kubernetes 上运行,请在您的堆栈部署中指定 orchestrator

      docker stack deploy --orchestrator kubernetes --compose-file /path/to/docker-compose.yml mystack
      
      1. 为 nexus-data 创建一个卷目录。我使用了 /nexus-data 目录,它是第二个磁盘的挂载点
      2. mkdir /nexus-data
      3. chown -R 200 /nexus-data

      示例应用:

      version: '3.3'
      
      services:
        traefik:
          image: traefik:v2.2
          container_name: traefik
          restart: always
          command:
            - "--log.level=DEBUG"
            - "--api.insecure=true"
            - "--providers.docker=true"
            - "--providers.docker.exposedbydefault=true"
            - "--entrypoints.web.address=:80"
            - "--entrypoints.websecure.address=:443"
          ports:
            - 80:80
            - 443:443
          networks:
            - nexus
          volumes:
            - /var/run/docker.sock:/var/run/docker.sock
      
        nexus:
          container_name: nexus
          image: sonatype/nexus3
          restart: always
          networks:
            - nexus
          volumes:
          - /nexus-data:/nexus-data
          labels:
            - traefik.port=8081
            - traefik.http.routers.nexus.rule=Host(`NEXUS.mydomain.com`)
            - traefik.enable=true
            - traefik.http.routers.nexus.entrypoints=websecure
            - traefik.http.routers.nexus.tls=true
            - traefik.http.routers.nexus.tls.certresolver=myresolver
      
      networks:
        nexus:
          external: true
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-03
        • 2015-12-28
        • 2021-08-18
        • 2015-08-17
        • 2017-04-27
        • 2018-08-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多