Как настроить kubernetes (microk8s) для использования локальных образов Docker?
Я построил образ докера локально:
docker build -t backend -f backend.docker
Теперь я хочу создать развертывание с ним:
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend-deployment
spec:
selector:
matchLabels:
tier: backend
replicas: 2
template:
metadata:
labels:
tier: backend
spec:
containers:
- name: backend
image: backend
imagePullPolicy: IfNotPresent # This should be by default so
ports:
- containerPort: 80
kubectl apply -f file_provided_above.yaml
работает, но тогда у меня есть следующие статусы:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
backend-deployment-66cff7d4c6-gwbzf 0/1 ImagePullBackOff 0 18s
До этого было ErrImagePull
, Итак, мой вопрос, как сказать ему использовать локальные образы докера? Где-то в интернете я читал, что мне нужно создавать изображения, используя microk8s.docker
но это похоже на удаление.
1 ответ
Нашли документы о том, как использовать личный реестр: https://microk8s.io/docs/registry
Сначала его нужно включить:
microk8s.enable registry
Затем изображения помещаются в реестр:
docker tag backend localhost:32000/backend
docker push localhost:32000/backend
И тогда в вышеупомянутом конфиге image: backend
необходимо заменить на image: localhost:32000/backend