允许 Kubernetes 使用本地 docker 注册表

问题描述 投票:0回答:1

我是 kubernetes 的新手,在成功创建我的第一个具有单个节点的集群(在 debian 12 上)后,我尝试部署我的第一个应用程序,一个简单的 python hello world。 我用的是Kudeadm。

我创建了一个简单的 docker 镜像,并将其推送到本地注册表。我的注册表只能在本地访问,并且不安全。仅使用docker,我可以在添加后拉取图像

{"insecure-registries": ["192.168.0.102:5005"]}
到 /etc/docker/daemon.json。

问题是当我尝试使用以下命令创建 kubernetes 部署时:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-python-app
  labels:
    app: my-python-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-python-app
  template:
    metadata:
      labels:
        app: my-python-app
    spec:
      containers:
      - name: my-python-app
        image: 192.168.0.102:5005/my-python-app
        ports:
        - containerPort: 8080

我收到以下错误:

Failed to pull image "192.168.0.102:5005/my-python-app": failed to pull and unpack image "192.168.0.102:5005/my-python-app:latest": failed to resolve reference "192.168.0.102:5005/my-python-app:latest": failed to do request: Head "https://192.168.0.102:5005/v2/my-python-app/manifests/latest": http: server gave HTTP response to HTTPS client

这似乎是关于不安全注册表的错误,即使我的 docker 配置应该允许它。

我尝试在 /etc/docker/daemon.json、/etc/default/docker.json 中启用不安全注册表并将其添加到 DOCKER_OPTS,但结果相同。

docker-registry kubernetes-deployment
1个回答
0
投票

您的配置和方法看起来很可靠。我猜问题在于 k8s 不是在 Docker 之上运行,而是在其他东西上运行(它自己的容器运行时)

尝试从 Docker Hub 部署映像,并查看部署 (docker ps)(如果可以看到它)。

© www.soinside.com 2019 - 2024. All rights reserved.