【问题标题】:Running Windows Docker Images on Kubernetes Cluster, installed on Windows 10在 Kubernetes 集群上运行 Windows Docker 映像,安装在 Windows 10 上
【发布时间】:2017-11-13 02:58:46
【问题描述】:

我已经在我的 Windows 10 机器上安装了 Kubernetes Cluster (minikube),并且似乎正在运行(即:我可以浏览 minikube 仪表板等)。

我在 Azure 容器注册表上还有一个 Windows 映像(其中包含一个 Asp.Net Web API .Net 框架 4.6 应用程序),我想拉取并部署到我的本地 Kubernetes 集群。

我已经构建了以下 yaml 文件来创建 Kubernetes 部署:

apiVersion: v1
kind: Pod
metadata:
  name: hubapi
spec:
  containers:
  - name: hubapi
    image: lgmimages.azurecr.io/hubapi/hubapi
  imagePullSecrets:
  - name: azurepasswordsecret

当我运行这个命令时:

kubectl create -f hubapi.yaml

我明白了:

pod "hubapi" created

然后,当我转到仪表板或获取 Pod 描述时,我看到以下错误:

kubelet, minikube  Failed to pull image "lgmimages.azurecr.io/hubapi/hubapi": rpc error: code = Unknown desc = image operating system "windows" cannot be used on this platform

我想知道我在这里缺少什么,我正在尝试做的事情是否可能?

注意:当我使用此命令并从 dockerhub 拉取 nginx 映像时,它可以工作:

kubectl run kubernetes-nginx --image=nginx:latest --port=80

然后我把这个服务暴露出来,我就可以在我的本地集群上浏览 nginx 网页了。

【问题讨论】:

    标签: azure docker kubernetes azure-container-registry


    【解决方案1】:

    rpc 错误:代码 = Unknown desc = 映像操作系统“windows” 不能在这个平台上使用

    其实我们是在windows 10上安装kubernetes ubuntu上的bash,这样ubuntu上的bash就当master了,基于Linux,我们不能在上面运行windows docker镜像。

    我们知道,kubernetes master应该是Linux,你没有其他节点,所以不能在上面运行windowsdocker镜像。

    为了测试,你可以使用Azure container service并在windows节点上部署kubernetes,这样我们就可以在k8s windows节点上运行windows docker镜像了。

    希望这会有所帮助:)

    【讨论】:

    • 谢谢,所以如果我理解你的回答,你是说,我想做的事情是不可能的?现在这在 Windows Server 2016 上可行吗?或者这只是 Windows 10 的限制?
    • @Aram 据我所知,minikube 现在无法运行 windows docker 镜像。如果您只想运行 windows docker,我们可以在您的 windows 上安装 windows 容器。
    • 这实际上使 kubernetes/minikube 对于希望在 k8 中迁移/开发/测试/运行基于 Windows 的企业环境的开发人员毫无用处。很遗憾,因为 docker compose 确实 毫无困难地支持 Windows 容器。幸好有kompose
    【解决方案2】:

    如果你想搭建一个节点同时运行 Windows 和 Linux 的 Kubernetes 集群,你可以试试 (kubernetes-windows-vagrant)[https://github.com/rjmorse/kubernetes-windows-vagrant]。它使用 Vagrant 来提供环境。

    【讨论】:

      【解决方案3】:

      您可以使用 Docker for Windows 代替 minikube,并启用 Windows 容器模式(切换到 Windows 容器...来自系统托盘的上下文菜单选项)。

      【讨论】:

        猜你喜欢
        • 2019-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-04
        • 1970-01-01
        • 2020-05-03
        • 1970-01-01
        相关资源
        最近更新 更多