我在k8s集群中创建了一个私有注册表,并通过https和ingress公开了它。我建立自己的映像并将其推送到此注册表。我可以进行docker构建,但是无法进行“ docker登录”或“ docker push”。这是我得到的错误:
docker login registry.example.com
Username: admin
Password:
Error response from daemon: Get https://registry.example.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
这是我正在其中运行的吊舱,
apiVersion: apps/v1
kind: Deployment
metadata:
name: docker
spec:
selector:
matchLabels:
app: docker
replicas: 1
template:
metadata:
labels:
app: docker
spec:
containers:
- name: docker
image: docker:stable
command: ["docker"]
volumeMounts:
- name: docker-socket
mountPath: /var/run/docker.sock
volumes:
- name: docker-socket
hostPath:
path: /var/run/docker.sock
type: Socket
我能够从同一设置推送到官方Docker注册表,我的gitlab注册表等。
我还可以在本地笔记本电脑上创建具有相同设置的容器实例,然后推送到k8s注册表。
是否有任何安全设置可阻止我推送到自己的k8s注册表?还是网络问题?
注意,我可以从Pod内部成功卷曲到k8s注册表。
更多信息:我正在DigitalOcean Kubernetes集群中运行它。