Wie führe ich ein Docker-Image aus, das ich lokal auf Google Container Engine erstellt habe?
Sie können Ihr Bild in Google Container Registry verschieben und in Ihrem Pod-Manifest darauf verweisen.
Angenommen, Sie haben einen DOCKER_Host
ordnungsgemäß eingerichtet, einen GKE-Cluster, auf dem die letzte Version von Kubernetes ausgeführt wird, und Google Cloud SDK .
Richten Sie einige Umgebungsvariablen ein
gcloud components update kubectl
gcloud config set project <your-project>
gcloud config set compute/zone <your-cluster-zone>
gcloud config set container/cluster <your-cluster-name>
gcloud container clusters get-credentials <your-cluster-name>
Markieren Sie Ihr Bild
docker tag <your-image> gcr.io/<your-project>/<your-image>
Drücke dein Bild
gcloud docker Push gcr.io/<your-project>/<your-image>
Erstellen Sie ein Pod-Manifest für Ihren Container: my-pod.yaml
id: my-pod
kind: Pod
apiVersion: v1
desiredState:
manifest:
containers:
- name: <container-name>
image: gcr.io/<your-project>/<your-image>
...
Planen Sie diesen Pod
kubectl create -f my-pod.yaml
Wiederholen Sie den Vorgang ab Schritt (4) für jeden Pod, den Sie ausführen möchten. Sie können mehrere Definitionen in einer einzigen Datei verwenden, indem Sie eine Zeile mit ---
als Trennzeichen verwenden.
Schritt 1: Geben Sie den Container an, an dem Sie arbeiten müssen
gcloud container clusters get-credentials [$cluster_name]
Schritt 2: Markieren Sie das Docker-Image, das Sie ausführen möchten
docker tag nginx gcr.io/first-project/nginx
Schritt 3: Bild drücken
gcloud docker Push gcr.io/first-project/nginx
Schritt 4: yaml-Datei erstellen (test.yaml)
apiVersion: v1
kind: Pod
containers:
- name : nginx1
image: gcr.io/first-project/nginx
Schritt 5: Erstellen Sie den Pod
kubectl create –f test.yaml
Sie können den Registrierungsauthentifizierungsschlüssel Ihrer privaten Docker-Registrierung direkt in die Datei .dockercfg im Stammverzeichnis der Minions kopieren, bevor Sie die Pods .
docker login --username=<> --password=<> --email=<> <DockerServer>
Das Verweisen auf das private Docker-Image in der Pod-Konfiguration sollte dann wie erwartet funktionieren.
Das Setup, das ich verwende, besteht darin, meine eigene Docker-Registry bereitstellen in Verbindung mit der Weiterleitung von ssh-Ports. Zu diesem Zweck habe ich im Cluster einen SSH-Server eingerichtet und mit ~/.ssh/config
einen Port für die Weiterleitung an die Registrierung konfiguriert.
Ich benutze auch Jenkins, um die Bilder direkt in der Cloud zu erstellen.