我正在努力让 Kubernetes 使用我的私有 hub.docker.com 注册表映像。
我正在使用 kubectl 版本:Client Version: version.Info{Major:"1", Minor:"1+", GitVersion:"v1.1.0-alpha.0.1588+e44c8e6661c931", GitCommit:"e44c8e6661c931f7fd434911b0d3bca140e1df3a", GitTreeState:"clean"}
Server Version: version.Info{Major:"1", Minor:"1", GitVersion:"v1.1.3", GitCommit:"6a81b50c7e97bbe0ade075de55ab4fa34f049dc2", GitTreeState:"clean"}
和流浪者1.7.4
在 Mac OS X 上Yosemite 10.10.5
我按照此处给出的说明进行操作:https://github.com/kubernetes/kubernetes/blob/release-1.1/docs/user-guide/images.md#pre-pulling-images https://github.com/kubernetes/kubernetes/blob/release-1.1/docs/user-guide/images.md#pre-pulling-images
简而言之,它表示您应该登录注册表,然后对结果内容进行 Base64 编码.docker/config.json
,并在 yaml 文档中使用它,如下所示:
apiVersion: v1
kind: Secret
metadata:
name: myregistrykey
data:
.dockercfg: eyAiYXV0aHMiOiB7ICJodHRwczovL2luZGV4LmRvY2tlci5pby92MS8iOiB7ICJhdXRoIjogImFXNTBjbWx1YzJsak9tSTJVVTR5Z...h1YkBpbnRyaW5zaWMud29ybGQiIH0gfSB9Cg==
type: kubernetes.io/dockercfg
然后将其提供给 kubectl。然后我使用生成的密钥(此处称为myregistrykey
)在我的 pod 定义中:
apiVersion: v1
kind: Pod
metadata:
name: authorities-backend
spec:
containers:
- name: authorities-backend
image: intrinsic/authorities-backend:latest
imagePullSecrets:
- name: myregistrykey
and kubectl create
d it.
但是,kubectl 始终无法检索图像:
[root@kubernetes-master intrinsic]# kubectl get pods
NAME READY STATUS RESTARTS AGE
authorities-backend 0/1 PullImageError 0 7m
然而 Kubernetes master 上的 docker pull 工作正常。
我缺少什么?
UPDATE
在上面的 pod 定义中,我省略了指定注册表主机,即 docker.io。修复它,它变成:image: docker.io/intrinsic/authorities-backend:latest
然而,问题仍然存在。正在做kubectl get events -w
让我明白:
6s 0s 2 authorities-backend Pod spec.containers{authorities-backend} Failed {kubelet 10.245.1.3} Failed to pull image "docker.io/intrinsic/authorities-backend": image pull failed for docker.io/intrinsic/authorities-backend, this may be because there are no credentials on this request. details: (Error: image intrinsic/authorities-backend:latest not found)
我知道这个秘密已经正确注册,因为我已经在下面了kubectl get secrets
:
NAME TYPE DATA AGE
default-token-a7s5n kubernetes.io/service-account-token 2 51m
myregistrykey kubernetes.io/dockercfg 1 50m
还是很迷茫...