Kubernetes从私有不安全注册表中提取映像失败



我在vm服务器(vm1(上托管了一个不安全的私有docker注册表。我正在尝试从推送到该注册表的映像创建一个k8s部署。令人惊讶的是,dockerpull命令运行良好,因为我已经用不安全的注册表配置了/etc/docker/daemon.json。

kubectl describe命令的详细错误如下。你知道可能出了什么问题吗?

谢谢。

Failed to pull image "vm1:5000/temp/leads:latest": rpc error: code = Unknown desc = failed to pull and unpack image "vm1:5000/temp/leads:latest": failed to resolve reference "vm1:5000/temp/leads:latest": failed to do request: Head "https://vm1:5000/v2/temp/leads/manifests/latest": http: server gave HTTP response to HTTPS client

docker pull命令是

docker pull vm1:5000/temp/leads:latest

k8s清单文件如下

apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
namespace: oleads
spec:
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: vm1:5000/temp/leads:latest
resources:
requests:
memory: "64Mi"
cpu: 0.5
limits:
memory: "512Mi"
cpu: 0.5
ports:
- containerPort: 8980
imagePullPolicy: Always

我意识到我正在使用的kubernetes引擎k3s使用不同的容器运行时。它使用containerd而不是docker。对于k3s,使用私有注册表的配置是不同的。这里提到了。

我必须在/etc/rancher/k3s/registries.yaml文件中添加的配置是

mirrors:
vm1:5000:
endpoint:
- "http://vm1:5000"

添加此文件后重新启动k3s服务解决了问题,k8s能够从我的私人不安全docker注册表中提取图像。

我们也遇到了同样的问题,解决方案可能是使用docker deamon添加不安全的注册表。

所有节点上的活动


在/etc/docker/daemon.json中创建一个文件,并添加不安全的注册表详细信息:

{ "insecure-registries":["vm1:5000"] }

和CCD_ 2。

相关内容

最新更新