2

我正在使用k3s来测试我的 k8s 配置。可悲的是,imagePullSecrets似乎无法正常工作。

我已经在minikube中测试了相同的配置,它工作正常。

例子:

我用以下方法创建秘密:

kubectl create secret generic myreg --from-file=.dockerconfigjson=$HOME/.docker/config.json

这是一个守护进程示例:

apiVersion: apps/v1                                                                                                                                                                                                                         
kind: DaemonSet
metadata:
  name: foo
  namespace: default
  labels:
    app: foo
spec:
  selector:
    matchLabels:
      name: foo
  template:
    metadata:
      labels:
        name: foo
    spec:
      imagePullSecrets:
      - name: myreg
      containers:
      - name: foo
        image: whatever/foo:latest

状态保持不变ErrImagePull并在它上面运行describe的 pod 上运行:

  Normal   BackOff    2s    kubelet, localhost  Back-off pulling image "whatever/foo:latest"
  Warning  Failed     2s    kubelet, localhost  Error: ImagePullBackOff

为什么它不起作用?

4

1 回答 1

1

最后我在Document image preloading问题中找到了答案。

imagePullSecrets 没有在 k3s 中实现,但是有一个未记录的功能,您可以手动拉取图像以使其工作。

要做到这一点(作为根):

# docker pull whatever/foo:latest
# docker save whatever/foo:latest -o /var/lib/rancher/k3s/agent/images/foo-latest.tgz

然后图像将被“下载”并安装到 k3s 中。

下载后记得重启k3s。

于 2019-04-01T14:20:49.867 回答