Tôi đang cố gắng để Kubernetes làm việc với hình ảnh đăng ký riêng tư của tôi trên hub.docker.com.Kubernetes PullImageError sử dụng Docker Hub với hình ảnh riêng
Tôi đang sử dụng phiên bản 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"}
và Vagrant 1.7.4
trên Mac OS X Yosemite 10.10.5
Tôi làm theo các hướng dẫn đưa ra ở đây: https://github.com/kubernetes/kubernetes/blob/release-1.1/docs/user-guide/images.md#pre-pulling-images
Tóm lại, nó nói rằng bạn nên đăng nhập vào registry sau đó base64 mã hóa nội dung của kết quả .docker/config.json
và sử dụng nó trong tài liệu yaml như sau:
apiVersion: v1
kind: Secret
metadata:
name: myregistrykey
data:
.dockercfg: eyAiYXV0aHMiOiB7ICJodHRwczovL2luZGV4LmRvY2tlci5pby92MS8iOiB7ICJhdXRoIjogImFXNTBjbWx1YzJsak9tSTJVVTR5Z...h1YkBpbnRyaW5zaWMud29ybGQiIH0gfSB9Cg==
type: kubernetes.io/dockercfg
Sau đó, cấp dữ liệu đó cho kubectl. Sau đó tôi đã sử dụng khóa kết quả (ở đây có tên là myregistrykey
) trong định nghĩa nhóm của tôi:
apiVersion: v1
kind: Pod
metadata:
name: authorities-backend
spec:
containers:
- name: authorities-backend
image: intrinsic/authorities-backend:latest
imagePullSecrets:
- name: myregistrykey
và kubectl create
d.
Tuy nhiên, kubectl tiếp tục thất bại trong việc lấy lại hình ảnh:
[[email protected] intrinsic]# kubectl get pods
NAME READY STATUS RESTARTS AGE
authorities-backend 0/1 PullImageError 0 7m
Docker kéo trên tổng thể Kubernetes làm việc tuy nhiên.
Tôi đang thiếu gì?
CẬP NHẬT
Trong định nghĩa pod ở trên, tôi đã bỏ qua để xác định các máy chủ đăng ký, ví dụ: docker.io. Sửa chữa, nó sẽ trở thành: image: docker.io/intrinsic/authorities-backend:latest
Tuy nhiên, sự cố vẫn tiếp diễn. Làm kubectl get events -w
được tôi: 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)
tôi biết bí mật đã được đăng ký đúng cách, như tôi đã có nó dưới kubectl get secrets
: NAME TYPE DATA AGE default-token-a7s5n kubernetes.io/service-account-token 2 51m myregistrykey kubernetes.io/dockercfg 1 50m
Vẫn còn lẫn lộn ...
Candide
https://github.com/kubernetes/kubernetes/pull/18777 khắc phục tài liệu. Đánh giá của bạn sẽ được hoan nghênh. –
Trên thực tế, do giám sát, Kubernetes hiện không xác thực 'loại: kubernetes.io/dockerconfigjson'. Tôi đã viết https://github.com/kubernetes/kubernetes/pull/18790 để sửa lỗi này. –
Cảm ơn Eric này - tài liệu hoạt động tuyệt vời. Đơn khiếu nại nhỏ: Tôi thực sự không thể thực thi 'nodes = $ (kubectl nhận được nút -o jsonpath = '{range.items [*]. Metadata} {. Name} {end}')' (nhận 'lỗi: định dạng đầu ra" jsonpath = {range.items [*]. metadata} {. name} {end} "không được công nhận') có khả năng là do sự thiếu hiểu biết của tôi về cách thực hiện điều này. Vẫn sẽ tốt đẹp nếu nó rõ ràng hơn một chút. – candide