Я использую Docker для Mac 18.05.0-CE-Mac66 (24545) (край) с поддержкой Kubernetes, и я борюсь с созданием развертывания Kubernetes со ссылкой на локально созданный образ.
Вывод docker images
:
REPOSITORY TAG IMAGE
test latest 2c3bdb36a5ed
Мой развертывание. Yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: helloworld-deployment
spec:
selector:
matchLabels:
app: helloworld
replicas: 1
template:
metadata:
labels:
app: helloworld
spec:
containers:
- name: aaa
image: test:latest
ports:
- containerPort: 8080
Когда я запускаю kubectl apply -f deplyment.yaml
создаются, но:
helloworld-deployment-764b8b85d8-2c4kl 0/1 ImagePullBackOff 0
helloworld-deployment-764b8b85d8-rzq7l 0/1 ImagePullBackOff 0
Опишите один из этих стручков дает:
Normal Scheduled 20s default-scheduler Successfully assigned helloworld-deployment-79f66d97c6-7tj2x to docker-for-desktop
Normal SuccessfulMountVolume 19s kubelet, docker-for-desktop MountVolume.SetUp succeeded for volume "default-token-72f44"
Normal BackOff 16s kubelet, docker-for-desktop Back-off pulling image "test:latest"
Warning Failed 16s kubelet, docker-for-desktop Error: ImagePullBackOff
Normal Pulling 4s (x2 over 19s) kubelet, docker-for-desktop pulling image "test:latest"
Warning Failed 2s (x2 over 17s) kubelet, docker-for-desktop Failed to pull image "test:latest": rpc error: code = Unknown desc = Error response from daemon: pull access denied for test, repository does not exist or may require 'docker login'
Warning Failed 2s (x2 over 17s) kubelet, docker-for-desktop Error: ErrImagePull
Что интересно, если я пытаюсь запустить какое-то изображение, размещенное на dockerhub, то все в порядке, я также попытался использовать скаффолд, и это также работает как шарм...
Я вижу некоторые похожие проблемы, касающиеся minikube, где решение состоит в том, чтобы использовать Minikube Docker Deamon для создания изображений, чтобы на них можно было ссылаться из кластера kubernetes. Я хотел бы избежать настройки локального репо, но как я могу заставить его работать с Docker Edge Kubernetes?