Sie können eine externe Containerregistrierung mit TKG-Cluster-Pods verwenden.

Anwendungsbeispiel für eine private Container-Registrierung

Container-Registrierungen stellen eine kritische Funktion für Kubernetes-Bereitstellungen zur Verfügung und dienen als zentrales Repository für die Speicherung und Freigabe von Container-Images. Die am häufigsten verwendete Registrierung für öffentliche Container ist Docker Hub. Es gibt viele Private Container-Registrierungsangebote. VMware Harbor ist eine native Cloud-Registrierung mit Open Source und privatem Container, die im Lieferumfang von Supervisor enthalten ist.

Konfiguration einer privaten Container-Registrierung

Um eine private Registrierung mit TKG-Clustern zu verwenden, konfigurieren Sie den TKG-Cluster mit einem oder mehreren selbstsignierten Zertifikaten, um private Registrierungsinhalte über HTTPS abzuwickeln. Fügen Sie in der Clusterspezifikation den Abschnitt trust mit dem Feldpaar additionalTrustedCAs hinzu. Sie können eine beliebige Anzahl selbstsignierter Zertifikate definieren, denen der TKG-Cluster vertrauen soll. Mit dieser Funktion können Sie problemlos eine Liste von Zertifikaten definieren und diese Zertifikate bei Bedarf aktualisieren.

Vertrauenswürdige Felder für Zertifikate einer privaten Container-Registrierung

Fügen Sie einen Zertifikateintrag (Base64-codierte Zeichenfolge eines PEM-codierten öffentlichen Zertifikats) zum Abschnitt additionalTrustedCAs in der TKG-Clusterspezifikation hinzu.

Tabelle 1. Vertrauenswürdige Felder für private Registrierungen
Bereich Beschreibung
trust Abschnittsmarkierung. Akzeptiert keine Daten.
additionalTrustedCAs Abschnittsmarkierung. Enthält ein Array von Zertifikaten mit dem Namen und den Daten für jedes Zertifikat.
name Name des TLS-Zertifikats
data Die doppelt base64-codierte Zeichenfolge eines PEM-codierten öffentlichen Zertifikats, das als Klartext gespeichert ist.
Hinweis: Doppelte Base64-Codierung ist erforderlich. Wenn der Inhalt des Datenzuordnungswerts nicht doppelt Base64-codiert ist, kann die resultierende PEM-Datei nicht verarbeitet werden.

Beispiel für die v1alpha3-API

Das folgende Beispiel veranschaulicht, wie Sie einen TKG 2-Cluster mit einem privaten Registrierungszertifikat erstellen. Die vollständige Spezifikation finden Sie unter v1alpha3-Beispiel: TKC mit benutzerdefiniertem Netzwerk.
Hinweis: Um einen vorhandenen Cluster zu bearbeiten und die Felder für das Zertifikat der privaten Registrierung hinzuzufügen, verwenden Sie die kubectl edit-Methode wie hier beschrieben: Konfigurieren eines Texteditors für Kubectl.
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: TanzuKubernetesCluster
metadata:
  name: tkg2-private-registry
  namespace: tkg2-cluster-ns
spec:
  topology:
    controlPlane:
      ...
    nodePools:
    - name: worker
      ...
  settings:
    network:
      ...
      trust:
        additionalTrustedCAs:
          - name: CompanyInternalCA-1
            data: LS0tLS1C...LS0tCg==
          - name: CompanyInternalCA-2
            data: MTLtMT1C...MT0tPg==

Beispiel für die v1beta1-API

Das folgende Beispiel veranschaulicht, wie Sie einen TKG-Cluster mit einem privaten Registrierungszertifikat mithilfe der v1beta1-API erstellen. Weitere Informationen finden Sie in der Beschreibung der trust-Variable in der Cluster-API v1beta1-Spezifikation.
Hinweis: Um einen vorhandenen Cluster zu bearbeiten und die Felder für das Zertifikat der privaten Registrierung hinzuzufügen, verwenden Sie die kubectl edit-Methode wie hier beschrieben: Konfigurieren eines Texteditors für Kubectl.
spec:
  clusterNetwork:
    pods:
      ...
    serviceDomain: 
    services:
      ...
  topology:
    class: tanzukubernetescluster
    controlPlane:
      ...
    variables:
    - name: storageClass
      value: tkg2-storage-profile
    - name: trust
      value:
        additionalTrustedCAs:
        - name: additional-ca-1

Verwalten von Zertifikaten für eine private Container-Registrierung

Um ein Zertifikat zu rotieren, ändert der VI-Administrator oder DevOps Engineer den Inhalt des Zertifikats in der TKG-Clusterspezifikation und wendet diese Konfiguration an, um eine fortlaufende Aktualisierung des Clusters auszulösen.

Um ein Zertifikat aus der Liste der Zertifikate zu entfernen, löschen Sie es und wenden Sie die aktualisierte Spezifikation an, wodurch eine fortlaufende Aktualisierung ausgelöst wird.