Запуск образов Docker Windows в кластере Kubernetes, установленном в Windows 10
Я установил Kubernetes Cluster (minikube) на мой компьютер с Windows 10 и, похоже, он работает (то есть: я могу просматривать панель мониторинга minikube и т. Д.).
У меня также есть образ Windows (в котором есть приложение Asp.Net Web API .Net framework 4.6) в реестре контейнеров Azure, который я хотел бы загрузить и развернуть в своем локальном кластере 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 Description, я вижу следующую ошибку:
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
Мне было интересно, что мне здесь не хватает и возможно ли то, что я пытаюсь сделать?
Примечание: это работает, когда я использую эту команду и извлекаю образ nginx из dockerhub:
kubectl run kubernetes-nginx --image=nginx:latest --port=80
Затем я предоставляю эту услугу и могу просматривать веб-страницу nginx в моем локальном кластере.
2 ответа
Ошибка rpc: code = Unknown desc = image Операционная система "Windows" не может использоваться на этой платформе
На самом деле, мы устанавливаем kubernetes на Windows 10 Bash на Ubuntu, таким образом, Bash на Ubuntu работает как мастер, основанный на Linux, мы не можем запустить образ Windows Docker на нем.
Как мы знаем, kubernetes master должен быть Linux, у вас нет других узлов, поэтому мы не можем запустить windows
изображение докера на нем.
Для теста вы можете использовать Azure container service
и развернуть kubernetes
с узлами Windows, таким образом, мы можем запустить образ докера Windows на узлах Windows K8S.
Надеюсь это поможет:)
Instead of minikube you can use Docker for Windows with Windows containers mode on (Switch to Windows containers... context menu option from system tray).
Если вы хотите настроить кластер Kubernetes с узлами под управлением Windows и Linux, вы можете попробовать (kubernetes-windows-vagrant) [ https://github.com/rjmorse/kubernetes-windows-vagrant]. Он использует Vagrant для обеспечения окружающей среды.