Auf dieser Seite wird beschrieben, wie Sie ein Container-Image in Harbor hochladen und in Ihrer GDC Sandbox-Instanz bereitstellen.
Vorbereitung
Folgen Sie der Anleitung unter Verbindung zur Instanz herstellen, um eine Verbindung zur Instanz mit Linux-Befehlszeilenzugriff herzustellen. Sie können über Remotedesktop eine Verbindung zu Ihrem Gateway herstellen oder
sshuttle
auf Ihrem Linux-Computer ausführen.Legen Sie Umgebungsvariablen fest, die in der folgenden Anleitung verwendet werden:
export TENANT_PROJECT=TENANT_PROJECT # Intended deployment project for the container workflow. export HARBOR_INSTANCE_NAME=HARBOR_INSTANCE_NAME # Harbor Container Registry instance name. export HARBOR_PROJECT=HARBOR_PROJECT # Container registry project name for your images. export AO_USER=AO_USER # Your user name in the instance, e.g.: fop-my-user@example.com. export INSTANCE_URL=${HARBOR_INSTANCE_NAME}-${TENANT_PROJECT}.org-1.zone1.google.gdch.test. export DOCKER_CONFIG_PATH=DOCKER_CONFIG_PATH # Path to docker config file e.g.: /root/.docker/config.json.
Wenn Sie eine Harbor-Registrierungsinstanz erstellen möchten, folgen Sie der Anleitung unter Harbor-Registrierungsinstanz erstellen. Alternativ können Sie die vorab erstellte Sandbox-Harbor-Instanz verwenden: Die Standard-
user-project
in der GDC-Sandbox enthält bereits eine bereitgestellte Harbor-Instanz,user-haas-instance
, die für die Entwicklung verwendet werden kann.export HARBOR_INSTANCE_NAME=user-haas-instance export TENANT_PROJECT=user-project export INSTANCE_URL=${HARBOR_INSTANCE_NAME}-${TENANT_PROJECT}.org-1.zone1.google.gdch.test
Bild in Harbor hochladen
Erstellen Sie ein Harbor-Projekt, indem Sie der Anleitung unter Harbor-Projekt erstellen folgen.
Beispiel:
gdcloud harbor harbor-projects create HARBOR_PROJECT \ --project=TENANT_PROJECT \ --instance=HARBOR_INSTANCE_NAME
Melden Sie sich bei Docker an. Beginnen Sie mit Mit CLI-Secrets bei Docker oder Helm anmelden.
Laden Sie Ihr Container-Image herunter oder erstellen Sie es und folgen Sie der Anleitung für Google Distributed Cloud Air-Gapped, um ein Image per Push an Harbor zu übertragen.
Hier sehen Sie beispielsweise einen Workflow zum Pullen aus GitLab und zum Pushen nach Harbor:
Melden Sie sich an und rufen Sie Daten aus Ihrer GitLab-Containerregistrierung ab.
export GITLAB_ID=GITLAB_ID export GITLAB_PROJECT_NAME=GITLAB_PROJECT_NAME export GITLAB_IMAGE_PATH=registry.gitlab.com/GITLAB_ID/GITLAB_PROJECT_NAME docker login registry.gitlab.com docker pull ${GITLAB_IMAGE_PATH}
Übertragen Sie das GitLab-Image per Push in Harbor:
export TAG=demo-image docker tag ${TAG} ${GITLAB_IMAGE_PATH} docker push ${INSTANCE_URL}/${HARBOR_PROJECT}/${TAG}
Rollen gewähren
Ermöglichen Sie dem Nutzer, Secrets und Bereitstellungen zu erstellen.
Erteilen Sie dem Nutzer die Berechtigung zum Erstellen von Secrets, indem Sie die Rolle
secret-admin
hinzufügen.gdcloud projects add-iam-policy-binding PROJECT \ --member="user:${AO_USER}" \ --role=secret-admin
Erteilen Sie dem Nutzer die Berechtigung zum Bereitstellen von Container-Arbeitslasten, indem Sie die Rolle
namespace-admin
hinzufügen.gdcloud projects add-iam-policy-binding PROJECT \ --member="user:${AO_USER}" \ --role=namespace-admin
Container-App bereitstellen
Fahren Sie mit Kubernetes-Secret zum Abrufen von Images erstellen fort, um ein Secret zu erstellen und Ihre App bereitzustellen.