如何配置 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