Ich habe Schwierigkeiten, Kubernetes mit meinem privaten Hub.docker.com Registry Image arbeiten zu lassen.Kubernetes PullImageError mit Docker Hub mit einem privaten Bild
Ich verwende kubectl Version: 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"}
und Vagrant 1.7.4
auf Mac OS X Yosemite 10.10.5
ich die hier aufgeführten Hinweise gefolgt: https://github.com/kubernetes/kubernetes/blob/release-1.1/docs/user-guide/images.md#pre-pulling-images
Auf den Punkt gebracht, heißt es zum Anmelde sollte Registrierung dann base64 kodieren Sie den Inhalt der resultierenden .docker/config.json
, und verwenden Sie das in einem Yaml-Dokument wie folgt:
apiVersion: v1
kind: Secret
metadata:
name: myregistrykey
data:
.dockercfg: eyAiYXV0aHMiOiB7ICJodHRwczovL2luZGV4LmRvY2tlci5pby92MS8iOiB7ICJhdXRoIjogImFXNTBjbWx1YzJsak9tSTJVVTR5Z...h1YkBpbnRyaW5zaWMud29ybGQiIH0gfSB9Cg==
type: kubernetes.io/dockercfg
Dann füttern, dass zu kubectl. Ich habe dann die resultierenden Schlüssel (hier genannt myregistrykey
) in meiner pod Definition:
apiVersion: v1
kind: Pod
metadata:
name: authorities-backend
spec:
containers:
- name: authorities-backend
image: intrinsic/authorities-backend:latest
imagePullSecrets:
- name: myregistrykey
und kubectl create
d es.
jedoch kubectl hält andernfalls das Bild abzurufen:
[[email protected] intrinsic]# kubectl get pods
NAME READY STATUS RESTARTS AGE
authorities-backend 0/1 PullImageError 0 7m
Docker Zug am Kubernetes Master jedoch gearbeitet.
Was fehlt mir?
UPDATE
In der Schote Definition oben hatte ich die Registry-Host, das heißt docker.io angeben weggelassen. Es zu beheben, wird es: image: docker.io/intrinsic/authorities-backend:latest
Das Problem besteht jedoch weiterhin. kubectl get events -w
tun bekommt mir: 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)
Ich kenne das Geheimnis richtig registriert wurde, wie ich es unter kubectl get secrets
haben: NAME TYPE DATA AGE default-token-a7s5n kubernetes.io/service-account-token 2 51m myregistrykey kubernetes.io/dockercfg 1 50m
Immer noch verwirrt ...
Candide
https://github.com/kubernetes/kubernetes/pull/18777 behebt die Dokumentation. Ihre Rezension wäre willkommen. –
Aufgrund eines Versehens überprüft Kubernetes momentan nicht 'type: kubernetes.io/dockerconfigjson'. Ich schrieb https://github.com/kubernetes/kubernetes/pull/18790, um das zu beheben. –
Danke für diesen Eric - die Dokumentation funktioniert super. Geringfügige Beschwerde: Ich kann 'nodes = $ (kubectl get nodes -o jsonpath = '{range.items [*] .metadaten} {. Name} {end}'' 'nicht ausführen (bekomme' error: output format' jsonpath = {range.items [*]. metadata} {. name} {end} "nicht erkannt") wahrscheinlich aufgrund meiner Unkenntnis darüber, wie dies zu tun ist. Trotzdem wäre es nett, wenn es etwas expliziter wäre. – candide