如何配置kubernetes(microk8s)以使用本地docker镜像?

Bun*_*nyk 2 docker kubernetes microk8s

我已经在本地构建了docker镜像:

docker build -t backend -f backend.docker
Run Code Online (Sandbox Code Playgroud)

现在,我要使用它创建部署:

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
Run Code Online (Sandbox Code Playgroud)

kubectl apply -f file_provided_above.yaml 可以,但是我有以下豆荚状态:

$ kubectl get pods
NAME                                   READY   STATUS             RESTARTS   AGE
backend-deployment-66cff7d4c6-gwbzf    0/1     ImagePullBackOff   0          18s
Run Code Online (Sandbox Code Playgroud)

在此之前ErrImagePull。所以,我的问题是,如何告诉它使用本地docker映像?我在互联网上的某个地方读到我需要使用来建立图像,microk8s.docker但是它似乎已被删除

Bun*_*nyk 7

找到有关如何使用私有注册表的文档:https : //microk8s.io/docs/working

首先,需要启用它:

microk8s.enable registry
Run Code Online (Sandbox Code Playgroud)

然后将图像推送到注册表:

docker tag backend localhost:32000/backend
docker push localhost:32000/backend
Run Code Online (Sandbox Code Playgroud)

然后在上面的配置中image: backend需要替换为image: localhost:32000/backend