Sie können die eingebettete Harbor-Registrierung als private Containerregistrierung für Images verwenden, die Sie für die vom Tanzu Kubernetes Grid-Dienst bereitgestellten Tanzu Kubernetes-Cluster bereitstellen.
vSphere with Tanzu bettet eine Harbor-Registrierung-Instanz ein, die Sie im Supervisor-Cluster aktivieren und verwenden können, um containerbasierte Arbeitslasten in Tanzu Kubernetes-Clustern bereitzustellen.
Sobald die eingebettete Harbor-Registrierung im Supervisor-Cluster aktiviert ist, wird der Tanzu Kubernetes Grid-Dienst auf dem Tanzu Kubernetes-Clusterknoten mit dem Stammzertifizierungsstelle für die Registrierungsinstanz installiert. Dieses Zertifikat wird sowohl in neuen Clustern als auch in vorhandenen Clustern (über eine Abgleichsschleife) installiert. Von dort aus können Sie Images im Cluster ausführen, indem Sie die private Registrierung in der Arbeitslast-YAML angeben.
Workflow
Schritt | Aktion | Anleitung |
---|---|---|
0 | Überprüfen Sie den Workflow für die Verwendung der eingebetteten Harbor-Registrierung mit Tanzu Kubernetes-Clustern. | Weitere Informationen hierzu finden Sie unter Verwenden einer Containerregistrierung für vSphere with Tanzu-Arbeitslasten. |
1 | Aktivieren Sie die eingebettete Harbor-Registrierung im Supervisor-Cluster. | Weitere Informationen hierzu finden Sie unter Aktivieren der eingebetteten Harbor-Registrierung auf dem Supervisor-Cluster. |
2 | Konfigurieren Sie die kubeconfig für jeden Cluster mit dem geheimen Schlüssel des Registrierungsdienstanbieters. | Siehe nachfolgende Anweisungen: Konfigurieren eines Tanzu Kubernetes-Clusters mit dem Geheimschlüssel zum Ziehen von Images für die eingebettete Harbor-Registrierung. |
3 | Konfigurieren Sie die Arbeitslast-YAML, um die private Containerregistrierung anzugeben. | Siehe nachfolgende Anweisungen: Konfigurieren eines Tanzu Kubernetes-Clusters mit dem Geheimschlüssel zum Ziehen von Images für die eingebettete Harbor-Registrierung. |
4 | Um Images an die eingebettete Harbor-Registrierung weiterzugeben, konfigurieren Sie einen Docker-Client und installieren Sie den vSphere Docker Credential Helper. | Weitere Informationen finden Sie unter Konfigurieren eines Docker-Clients mit dem eingebetteten Harbor-Registrierung-Zertifikat und Weitergeben von Images an die eingebettete Harbor-Registrierung. |
Konfigurieren eines Tanzu Kubernetes-Clusters mit dem Geheimschlüssel zum Ziehen von Images für die eingebettete Harbor-Registrierung
- Stellen Sie eine Verbindung mit dem Supervisor-Cluster her. Weitere Informationen hierzu finden Sie unter Herstellen einer Verbindung mit dem Supervisor-Cluster als vCenter Single Sign-On-Benutzer.
- Ändern Sie den Kontext in den vSphere-Namespace, in dem der Tanzu Kubernetes-Zielcluster bereitgestellt wird.
kubectl config use-context tkgs-cluster-ns
- Beziehen Sie den Geheimschlüssel zum Ziehen von Images für den vSphere-Namespace und speichern Sie ihn in einer Datei.
kubectl get secret -n <vsphere-namespace> <vsphere-namespace>-default-image-pull-secret -o yaml > <path>/image-pull-secret.yaml
Beispiel:kubectl get secret -n tkgs-cluster-ns tkgs-cluster-ns-default-image-pull-secret -o yaml > tanzu/image-pull-secret.yaml
- Öffnen Sie
image-pull-secret.yaml
mit einem Texteditor. Nehmen Sie mindestens die erforderliche Änderung vor und speichern Sie die Datei, wenn Sie fertig sind.apiVersion: v1 data: .dockerconfigjson: ewoJCQkJImF1dGhzJUV2s1ZVZwWVFuWmp... kind: Secret metadata: creationTimestamp: "2020-11-12T02:41:08Z" managedFields: - apiVersion: v1 ... name: harbor-registry-secret #OPTIONAL: Change if desired namespace: default #REQUIRED: Enter the Kuberentes namespace ownerReferences: - apiVersion: registryagent.vmware.com/v1alpha1 ... resourceVersion: "675868" selfLink: /api/v1/namespaces/tkgs-cluster-ns/secrets/tkgs-cluster-ns-default-image-pull-secret uid: 66606b41-7363-4b74-a3f2-4436f83f type: kubernetes.io/dockerconfigjson
- ERFORDERLICH: Ändern Sie den Wert für
namespace
so, dass er einem geeigneten Kubernetes-Namespace im Cluster entspricht, wie z. B. default.Hinweis: Geben Sie zum Konfigurieren des Geheimschlüssels zum Ziehen von Images einen Kubernetes-Namespace an. Wenn der Tanzu Kubernetes-Cluster bereits vorhanden ist, nehmen Sie einen Kontextwechsel zum Cluster vor und führen Siekubectl get namespaces
zum Auflisten der verfügbaren Kubernetes-Namespaces aus. Erstellen Sie gegebenenfalls den Ziel-Namespace, bevor Sie fortfahren. Wenn der Tanzu Kubernetes-Cluster nicht vorhanden ist, können Sie dendefault
-Namespace verwenden. - OPTIONAL: Ändern Sie den Wert für
name
in einen aussagekräftigen Wert, wie z. B. harbor-registry-secret oder private-registry-secret.
- ERFORDERLICH: Ändern Sie den Wert für
- Erstellen Sie eine kubeconfig-Datei, die für den Zugriff auf den Tanzu Kubernetes-Cluster verwendet werden kann.
kubectl get secret -n <vsphere-namespace> <cluster-name>-kubeconfig -o jsonpath='{.data.value}' | base64 -d > <path>/cluster-kubeconfig
Ersetzen Sie <vsphere-namespace> durch den Namen des vSphere-Namespace, in dem der Tanzu Kubernetes-Zielcluster bereitgestellt wird. Ersetzen Sie <cluster-name> durch den Namen des Tanzu Kubernetes-Clusters.kubectl get secret -n tkgs-cluster-ns tkgs-cluster-5-kubeconfig -o jsonpath='{.data.value}' | base64 -d > tanzu/cluster-kubeconfig
- Erstellen Sie den geheimen Schlüssel des Registrierungsdiensts im Tanzu Kubernetes-Cluster. Verweisen Sie auf die Datei mit dem Geheimschlüssels zum Ziehen von Images, die sie lokal gespeichert und aktualisiert haben.
kubectl --kubeconfig=<path>/cluster-kubeconfig apply -f <path>/image-pull-secret.yaml
Beispiel:kubectl --kubeconfig=tanzu/cluster-kubeconfig apply -f tanzu/image-pull-secret.yaml
Die erfolgreiche Erstellung des geheimen Schlüssels des Registrierungsdiensts sollte angezeigt werden.secret/harbor-registry-secret created
Konfigurieren einer Tanzu Kubernetes-Arbeitslast zum Extrahieren von Images aus einer privaten Containerregistrierung
Um Images aus einer privaten Containerregistrierung für eine Tanzu Kubernetes-Cluster-Arbeitslast abzurufen, konfigurieren Sie die Arbeitslast-YAML mit den Details der privaten Registrierung.
- Erstellen Sie eine Beispiel-Pod-Spezifikation mit den Details zur privaten Registrierung.
apiVersion: v1 kind: Pod metadata: name: <workload-name> namespace: <kubernetes-namespace> spec: containers: - name: private-reg-container image: <Registry-IP-Address>/<vsphere-namespace>/<image-name>:<version> imagePullSecrets: - name: <registry-secret-name>
- Ersetzen Sie
<workload-name>
durch den Namen der Pod-Arbeitslast. - Ersetzen Sie
<kubernetes-namespace>
durch den Kubernetes-Namespace im Cluster, in dem der Pod erstellt werden soll. Hierbei muss es sich um denselben Kubernetes-Namespace handeln, in dem der Geheimschlüssel zum Ziehen von Images für den Registrierungsdienst im Tanzu Kubernetes-Cluster (z. B. dem Standard-Namespace) gespeichert ist. - Ersetzen Sie
<Registry-IP-Address>
durch die IP-Adresse für die eingebettete Harbor-Registrierung-Instanz, die auf dem Supervisor-Cluster ausgeführt wird. - Ersetzen Sie <vsphere-namespace> durch den vSphere-Namespace, in dem der Ziel-Tanzu Kubernetes bereitgestellt wird.
- Ersetzen Sie
<image-name>
durch einen Image-Namen Ihrer Wahl. - Ersetzen Sie
<version>
durch eine geeignete Version des Images, z. B. „neueste“. - Ersetzen Sie
<registry-secret-name>
durch den Namen des Ihnen zuvor erstellten Geheimschlüssel zum Ziehen von Images .
- Ersetzen Sie
- Erstellen Sie eine Arbeitslast im Tanzu Kubernetes-Cluster basierend auf der von Ihnen definierten Pod-Spezifikation.
kubectl --kubeconfig=<path>/cluster-kubeconfig apply -f <pod.yaml>
Der Pod sollte aus dem Image erstellt werden, das aus der Registrierung gezogen wurde.