4

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

Kubernetes集群状态

我在 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 网页。

4

3 回答 3

1

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

实际上,我们在 Ubuntu 上的 windows 10 bash 上安装了 kubernetes,这样 ubuntu 上的 bash 作为 master,基于 Linux,我们不能在其上运行 windows docker 镜像。

众所周知,kubernetes master应该是Linux,你没有其他节点,所以不能windows在上面运行docker镜像。

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

希望这可以帮助:)

于 2017-11-13T11:02:38.660 回答
0

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

于 2019-10-03T11:16:39.327 回答
0

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

于 2018-01-27T20:52:46.167 回答