如何解决创建的 Docker 注册表无法在集群内部访问
我在 aws 上使用 EKS 集群
我已经创建了 docker 注册表作为部署,然后创建了一个 svc 和一个入口
在 ingress 中,我为 ingress Host 放置了 tls secrets
apiVersion: extensions/v1beta1
kind: Ingress
Metadata:
annotations:
kubernetes.io/ingress.class: Nginx
Nginx.org/client-max-body-size: "0"
creationTimestamp: "2021-06-18T05:10:02Z"
generation: 1
name: registry-ingress
namespace: devops
resourceVersion: "4126584"
selfLink: /apis/extensions/v1beta1/namespaces/devops/ingresses/registry-ingress
uid: d808177b-cb0b-4da2-82aa-5ab2f3c99109
spec:
rules:
- host: docker-registry.xxxx.com
http:
paths:
- backend:
serviceName: docker-registry
servicePort: 5000
path: /
pathType: ImplementationSpecific
tls:
- hosts:
- docker-registry.xxxx.com
secretName: tls-registry
我有 4 个工作节点和一个跳转服务器 我面临的问题是,我能够从跳转主机访问入口地址上的 docker 注册表,但是从工作节点它因错误而失败,因此当我使用注册表中的图像创建任何 pod 时,它们也会因以下错误而失败
Worker 和 Jump 主机在同一个子网
request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
我尝试将服务 IP 和注册表入口主机放在 /etc/hosts 中,将证书复制到 /etc/docker.certs.d/registryname 。 任何提示都会很棒
集群信息: Kubernetes 版本:v1.19.8-eks-96780e kubectl 版本 o/p : 客户端版本:version.Info{Major:"1",Minor:"20+",GitVersion:"v1.20.4-eks-6b7464",GitCommit:"6b746440c04cb81db4426842b4ae65c3f7035e53","GitTree2 Build1Date:"-clean2 -19T19:35:50Z",GoVersion:"go1.15.8",编译器:"gc",平台:"linux/arm64"}
服务器版本:version.Info{Major:"1",Minor:"19+",GitVersion:"v1.19.8-eks-96780e", GitCommit:"96780e1b30acbf0a52c38b6030d7853e575bcdf3:"BuildTreeState",GitTreeState 2021-03-10T21:32:29Z",平台:"linux/amd64"}
正在使用的云:AWS
安装方式:EKS
编辑 1
我检查了一个工作节点以找到 CRI,kubelet 进程如下,所以我认为 CRI 是 docker
/usr/bin/kubelet --cloud-provider aws --config /etc/kubernetes/kubelet/kubelet-config.json --kubeconfig /var/lib/kubelet/kubeconfig --container-runtime docker
但我确实看到 dockerd 和 containerd 进程都在工作节点上运行。
同样在检查 docker 服务日志时,我也遇到了同样的错误。
Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2021-06-14 08:31:57 UTC; 4 days ago
Docs: https://docs.docker.com
Process: 12574 ExecStartPre=/usr/libexec/docker/docker-setup-runtimes.sh (code=exited,status=0/SUCCESS)
Process: 12571 ExecStartPre=/bin/mkdir -p /run/docker (code=exited,status=0/SUCCESS)
Main PID: 12579 (dockerd)
Tasks: 23
Memory: 116.5M
CGroup: /system.slice/docker.service
└─12579 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Jun 19 02:23:45 ip-xxxxx dockerd[12579]: time=“2021-06-19T02:23:45.876987774Z” level=error msg=“Handler for POST /v1.40/images/create returned error: Get https://xxxx: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。