webentwicklung-frage-antwort-db.com.de

Wie führe ich private Docker-Images auf der Google Container Engine aus?

Wie führe ich ein Docker-Image aus, das ich lokal auf Google Container Engine erstellt habe?

37
proppy

Sie können Ihr Bild in Google Container Registry verschieben und in Ihrem Pod-Manifest darauf verweisen.

Detaillierte Anleitung

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 .

  1. 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>
    
  2. Markieren Sie Ihr Bild

    docker tag <your-image> gcr.io/<your-project>/<your-image>
    
  3. Drücke dein Bild

    gcloud docker Push gcr.io/<your-project>/<your-image>
    
  4. 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>
        ...
    
  5. Planen Sie diesen Pod

    kubectl create -f my-pod.yaml
    
  6. 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.

47
proppy

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
0
Vageesha

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.

0
Leela

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.

0
ruediste