kubernetes - 使用 k3s 时 imagePullSecrets 不起作用

标签 kubernetes minikube rancher k3s

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

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

例子:

我创建 secret :

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

这是一个 daemonset 示例:

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 并在 pod 上运行 describe 它说:

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

为什么它不起作用?

最佳答案

终于在问题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。

关于kubernetes - 使用 k3s 时 imagePullSecrets 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55457376/

相关文章:

authentication - Istio 中的授权策略和请求认证有什么区别?

kubernetes - 如何检查 pod 正在使用 kubectl 监听的端口而不是查看 dockerFile?

kubernetes - 在 Kubernetes 集群中运行 E2E 测试

docker - 如何列出所有容器的暴露端口?

kubernetes - Rancher 的 Helm 操作失败

kubernetes - 删除 ~/.kube/config

postgresql - 如何在 Kubernetes 中挂载 PostgreSQL 数据目录?

kubernetes - 我该如何解决minikube hello-world?

kubernetes - 尝试为Minikube安装Weave Cloud Agents时如何解决Kubernetes DNS问题

kubernetes - 在 Rancher 的私有(private)目录中,没有显示模板文件