如何配置 kubernetes (microk8s) 使用本地 docker 镜像?
How to configure kubernetes (microk8s) to use local docker images?
我已经在本地构建了 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
有效,但我有以下 pods 状态:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
backend-deployment-66cff7d4c6-gwbzf 0/1 ImagePullBackOff 0 18s
之前是 ErrImagePull
。所以,我的问题是,如何告诉它使用本地 docker 图片?在互联网上的某个地方,我读到我需要使用 microk8s.docker
构建图像,但它 seems to be removed.
找到关于如何使用私有注册表的文档:https://microk8s.io/docs/working
首先需要启用它:
microk8s.enable registry
然后将图像推送到注册表:
docker tag backend localhost:32000/backend
docker push localhost:32000/backend
然后在上面的配置中 image: backend
需要替换为 image: localhost:32000/backend
我已经在本地构建了 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
有效,但我有以下 pods 状态:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
backend-deployment-66cff7d4c6-gwbzf 0/1 ImagePullBackOff 0 18s
之前是 ErrImagePull
。所以,我的问题是,如何告诉它使用本地 docker 图片?在互联网上的某个地方,我读到我需要使用 microk8s.docker
构建图像,但它 seems to be removed.
找到关于如何使用私有注册表的文档:https://microk8s.io/docs/working
首先需要启用它:
microk8s.enable registry
然后将图像推送到注册表:
docker tag backend localhost:32000/backend
docker push localhost:32000/backend
然后在上面的配置中 image: backend
需要替换为 image: localhost:32000/backend