Managen Sie Kubernetes Cluster über den Astra Control Service
Beitragende
Nach der Einrichtung der Umgebung erstellen Sie sofort einen Kubernetes Cluster und fügen ihn dann dem Astra Control Service hinzu.
Erstellen eines Kubernetes-Clusters
Wenn Sie noch keinen Cluster haben, können Sie ein Cluster erstellen, das erfüllt "Astra Control Service-Anforderungen für Amazon Elastic Kubernetes Service (EKS)". Wenn Sie noch keinen Cluster haben, können Sie ein Cluster erstellen, das erfüllt "Astra Control Service-Anforderungen für Google Kubernetes Engine (GKE)". Wenn Sie noch keinen Cluster haben, können Sie ein Cluster erstellen, das erfüllt "Astra Control Service-Anforderungen für Azure Kubernetes Service (AKS) mit Azure NetApp Files" Oder "Astra Control Service-Anforderungen für Azure Kubernetes Service (AKS) mit von Azure gemanagten Festplatten".
|
Astra Control Service unterstützt AKS-Cluster, die Azure Active Directory (Azure AD) zur Authentifizierung und Identitätsverwaltung nutzen. Wenn Sie das Cluster erstellen, befolgen Sie die Anweisungen im "Offizielle Dokumentation" Um den Cluster mit Azure AD zu konfigurieren. Stellen Sie sicher, dass Ihre Cluster die Anforderungen für die AKS-verwaltete Azure AD-Integration erfüllen. |
Selbstverwaltete Cluster
Ein selbstverwalteter Cluster ist ein Cluster, den Sie direkt bereitstellen und managen können. Astra Control Service unterstützt selbst gemanagte Cluster, die in einer Public-Cloud-Umgebung ausgeführt werden. Sie können einen selbstverwalteten Cluster zum Astra Control Service hinzufügen, indem Sie ein hochladen kubeconfig.yaml
Datei: Sie müssen sicherstellen, dass der Cluster die in aufgeführten Anforderungen erfüllt Verwalten Sie Kubernetes-Cluster.
Verwalten Sie Kubernetes-Cluster
Nachdem Sie sich beim Astra Control Service angemeldet haben, beginnen Sie zunächst mit dem Verwalten Ihrer Cluster. Sie können ein von einem Cloud-Provider gemanagtes Cluster oder einen Self-Managed Cluster hinzufügen. Bevor Sie Astra Control Service ein Cluster hinzufügen, müssen Sie bestimmte Aufgaben ausführen und sicherstellen, dass das Cluster bestimmte Anforderungen erfüllt.
Was Sie’ll benötigen Cluster, die von einem Cloud-Provider verwaltet werden
-
Sie sollten die JSON-Datei mit den Anmeldedaten des IAM-Benutzers haben, der das Cluster erstellt hat. "Erfahren Sie, wie ein IAM-Benutzer erstellt wird".
-
Astra Trident ist für Amazon FSX für NetApp ONTAP erforderlich. Wenn Sie Amazon FSX für NetApp ONTAP als Storage-Backend für Ihren EKS-Cluster verwenden möchten, finden Sie die Informationen zu Astra Trident im "EKS-Clusteranforderungen".
-
(Optional) Wenn Sie angeben müssen
kubectl
Befehlszugriff für ein Cluster auf andere IAM-Benutzer, die nicht der Ersteller des Clusters sind, finden Sie in den Anweisungen unter "Wie erhalte ich Zugriff auf andere IAM-Benutzer und Rollen nach der Cluster-Erstellung in Amazon EKS?". -
Wenn Sie NetApp Cloud Volumes ONTAP als Storage-Backend verwenden möchten, müssen Sie Cloud Volumes ONTAP für die Nutzung mit Amazon Web Services konfigurieren. Weitere Informationen finden Sie im Cloud Volumes ONTAP "Setup-Dokumentation".
-
Sie sollten beim Erstellen des Service-Principal die JSON-Datei haben, die die Ausgabe aus der Azure CLI enthält. "Erfahren Sie, wie Sie einen Service-Principal einrichten".
Außerdem benötigen Sie Ihre Azure Abonnement-ID, wenn Sie sie nicht zur JSON-Datei hinzugefügt haben.
-
Informationen zu privaten AKS-Clustern finden Sie unter "Managen Sie private Cluster über den Astra Control Service".
-
Wenn Sie NetApp Cloud Volumes ONTAP als Storage-Backend verwenden möchten, müssen Sie Cloud Volumes ONTAP für die Zusammenarbeit mit Microsoft Azure konfigurieren. Weitere Informationen finden Sie im Cloud Volumes ONTAP "Setup-Dokumentation".
-
Sie sollten die Servicekontoschlüsseldatei für ein Servicekonto haben, das über die erforderlichen Berechtigungen verfügt. "Erfahren Sie, wie Sie ein Service-Konto einrichten".
-
Wenn Sie NetApp Cloud Volumes ONTAP als Storage-Backend verwenden möchten, müssen Sie Cloud Volumes ONTAP für die Zusammenarbeit mit Google Cloud konfigurieren. Weitere Informationen finden Sie im Cloud Volumes ONTAP "Setup-Dokumentation".
Was Sie’ll benötigen für selbstverwaltete Cluster
Ein selbstverwalteter Cluster ist ein Cluster, den Sie direkt bereitstellen und managen können. Astra Control Service unterstützt selbst gemanagte Cluster, die in einer Public-Cloud-Umgebung ausgeführt werden. Selbstverwaltete Cluster können über Astra Trident eine Schnittstelle zu NetApp Storage-Services aufbauen oder über CSI-Treiber (Container Storage Interface) eine Schnittstelle zu Amazon Elastic Block Store (EBS), Azure Managed Disks und Google Persistent Disk aufbauen.
Astra Control Service unterstützt selbst gemanagte Cluster, die die folgenden Kubernetes-Distributionen verwenden:
-
Red hat OpenShift Container Platform
-
Rancher Kubernetes Engine
-
Vorgelagerte Kubernetes-Systeme
Ihr Self-Managed-Cluster muss folgende Anforderungen erfüllen:
-
Der Cluster muss über das Internet zugänglich sein.
-
Der Cluster kann nicht in Ihrem On-Premises-Netzwerk gehostet werden, sondern muss in einer Public-Cloud-Umgebung gehostet werden.
-
Wenn Sie Speicher mit CSI-Treibern verwenden oder planen, diese zu verwenden, müssen auf dem Cluster die entsprechenden CSI-Treiber installiert sein. Weitere Informationen zur Verwendung von CSI-Treibern zur Integration von Speicher finden Sie in der Dokumentation Ihres Speicherservices.
-
Wenn Sie NetApp Storage nutzen oder nutzen möchten, stellen Sie sicher, dass Sie die neueste Version von Astra Trident installiert haben:
Das können Sie "Implementieren Sie Astra Trident" Mit dem Trident-Operator (manuell oder mit Hilfe des Helm-Diagramms) oder tridentctl
. Vor der Installation oder dem Upgrade von Astra Trident sollten Sie sich die "Unterstützte Frontends, Back-Ends und Host-Konfigurationen".-
Trident Storage Back-End konfiguriert: Mindestens ein Astra Trident Storage-Back-End muss sein "Konfiguriert" Auf dem Cluster.
-
Trident Storage-Klassen konfiguriert: Mindestens ein Astra Trident Storage-Klasse muss sein "Konfiguriert" Auf dem Cluster. Wenn eine Standard-Storage-Klasse konfiguriert ist, stellen Sie sicher, dass nur eine Storage-Klasse diese Annotation aufweist.
-
Astra Trident Volume Snapshot Controller und Volume Snapshot Klasse installiert und konfiguriert: Der Volume Snapshot Controller muss sein "Installiert" Damit Snapshots in Astra Control erstellt werden können. Mindestens ein Astra Trident
VolumeSnapshotClass
Gewesen "Einrichtung" Durch einen Administrator.
-
-
Kubeconfig: Sie haben Zugang zum Cluster kubeconfig Das umfasst nur ein Kontextseil.
-
Rancher only: Ändern Sie beim Verwalten von Anwendungsclustern in einer Rancher-Umgebung den Standardkontext des Anwendungsclusters in der von Rancher bereitgestellten kubeconfig-Datei, um einen Steuerebenen-Kontext anstelle des Rancher API-Serverkontexts zu verwenden. So wird die Last auf dem Rancher API Server reduziert und die Performance verbessert.
Wenn Ihr Cluster Astra Trident für Storage-Services verwendet, stellen Sie sicher, dass die aktuellste installierte Version von Astra Trident ist.
-
Testen Sie die Version von Astra Trident.
kubectl get tridentversions -n trident
Wenn Astra Trident installiert ist, wird die Ausgabe wie folgt ausgegeben:
NAME VERSION trident 22.10.0
Wenn Astra Trident nicht installiert ist, wird die Ausgabe wie folgt angezeigt:
error: the server doesn't have a resource type "tridentversions"
Wenn Astra Trident nicht oder nicht aktuell installiert ist und der Cluster Astra Trident für Storage-Services verwenden soll, müssen Sie vor dem Fortfahren die neueste Version von Astra Trident installieren. Siehe "Astra Trident-Dokumentation" Weitere Anweisungen. -
Stellen Sie sicher, dass die Pods ausgeführt werden:
kubectl get pods -n trident
-
Prüfen Sie, ob die Storage-Klassen die unterstützten Astra Trident Treiber verwenden. Der bereitstellungsname sollte lauten
csi.trident.netapp.io
. Im folgenden Beispiel finden Sie weitere Informationen:kubectl get sc
Beispielantwort:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE ontap-gold (default) csi.trident.netapp.io Delete Immediate true 5d23h
Stellen Sie sicher, dass Sie die folgenden Schritte auf Ihrem Gerät ausführen:
-
Kubectl v1.19 oder höher installiert
-
Ein aktiver kubeconfig mit Clusteradministratorrechten für den aktiven Kontext
-
Erstellen Sie ein Service-Konto wie folgt:
-
Erstellen Sie eine Dienstkontendatei mit dem Namen
astracontrol-service-account.yaml
.Passen Sie Namen und Namespace nach Bedarf an. Wenn hier Änderungen vorgenommen werden, sollten Sie die gleichen Änderungen in den folgenden Schritten anwenden.
astracontrol-service-account.yaml
+
apiVersion: v1 kind: ServiceAccount metadata: name: astracontrol-service-account namespace: default
-
Wenden Sie das Servicekonto an:
kubectl apply -f astracontrol-service-account.yaml
-
-
Gewähren Sie Cluster-Admin-Berechtigungen wie folgt:
-
Erstellen Sie ein
ClusterRoleBinding
Datei aufgerufenastracontrol-clusterrolebinding.yaml
.Passen Sie bei Bedarf alle beim Erstellen des Dienstkontos geänderten Namen und Namespaces an.
astracontrol-clusterrolebinding.yaml
+
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: astracontrol-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: astracontrol-service-account namespace: default
-
Wenden Sie die Bindung der Cluster-Rolle an:
kubectl apply -f astracontrol-clusterrolebinding.yaml
-
-
Listen Sie die Geheimnisse des Dienstkontos auf, ersetzen Sie
<context>
Mit dem richtigen Kontext für Ihre Installation:kubectl get serviceaccount astracontrol-service-account --context <context> --namespace default -o json
Das Ende der Ausgabe sollte wie folgt aussehen:
"secrets": [ { "name": "astracontrol-service-account-dockercfg-vhz87"}, { "name": "astracontrol-service-account-token-r59kr"} ]
Die Indizes für jedes Element im
secrets
Array beginnt mit 0. Im obigen Beispiel der Index fürastracontrol-service-account-dockercfg-vhz87
Wäre 0 und der Index fürastracontrol-service-account-token-r59kr
Sind es 1. Notieren Sie in Ihrer Ausgabe den Index für den Namen des Dienstkontos, der das Wort „Token“ darin enthält. -
Erzeugen Sie den kubeconfig wie folgt:
-
Erstellen Sie ein
create-kubeconfig.sh
Datei: AustauschTOKEN_INDEX
Am Anfang des folgenden Skripts mit dem korrekten Wert.create-kubeconfig.sh
# Update these to match your environment. # Replace TOKEN_INDEX with the correct value # from the output in the previous step. If you # didn't change anything else above, don't change # anything else here. SERVICE_ACCOUNT_NAME=astracontrol-service-account NAMESPACE=default NEW_CONTEXT=astracontrol KUBECONFIG_FILE='kubeconfig-sa' CONTEXT=$(kubectl config current-context) SECRET_NAME=$(kubectl get serviceaccount ${SERVICE_ACCOUNT_NAME} \ --context ${CONTEXT} \ --namespace ${NAMESPACE} \ -o jsonpath='{.secrets[TOKEN_INDEX].name}') TOKEN_DATA=$(kubectl get secret ${SECRET_NAME} \ --context ${CONTEXT} \ --namespace ${NAMESPACE} \ -o jsonpath='{.data.token}') TOKEN=$(echo ${TOKEN_DATA} | base64 -d) # Create dedicated kubeconfig # Create a full copy kubectl config view --raw > ${KUBECONFIG_FILE}.full.tmp # Switch working context to correct context kubectl --kubeconfig ${KUBECONFIG_FILE}.full.tmp config use-context ${CONTEXT} # Minify kubectl --kubeconfig ${KUBECONFIG_FILE}.full.tmp \ config view --flatten --minify > ${KUBECONFIG_FILE}.tmp # Rename context kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \ rename-context ${CONTEXT} ${NEW_CONTEXT} # Create token user kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \ set-credentials ${CONTEXT}-${NAMESPACE}-token-user \ --token ${TOKEN} # Set context to use token user kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \ set-context ${NEW_CONTEXT} --user ${CONTEXT}-${NAMESPACE}-token-user # Set context to correct namespace kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \ set-context ${NEW_CONTEXT} --namespace ${NAMESPACE} # Flatten/minify kubeconfig kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \ view --flatten --minify > ${KUBECONFIG_FILE} # Remove tmp rm ${KUBECONFIG_FILE}.full.tmp rm ${KUBECONFIG_FILE}.tmp
-
Geben Sie die Befehle an, um sie auf Ihren Kubernetes-Cluster anzuwenden.
source create-kubeconfig.sh
-
-
(Optional) Umbenennen Sie die kubeconfig auf einen aussagekräftigen Namen für Ihr Cluster. Schützen Sie die Cluster-Anmeldedaten.
chmod 700 create-kubeconfig.sh mv kubeconfig-sa YOUR_CLUSTER_NAME_kubeconfig
-
Wählen Sie im Dashboard Kubernetes Cluster managen aus.
Befolgen Sie die Aufforderungen zum Hinzufügen des Clusters.
-
Provider: Wählen Sie Ihren Cloud-Provider aus und geben Sie dann entweder die erforderlichen Anmeldedaten für die Erstellung einer neuen Cloud-Instanz an, oder wählen Sie eine vorhandene Cloud-Instanz aus.
-
Amazon Web Services: Geben Sie Details über Ihr Amazon Web Services IAM-Benutzerkonto an, indem Sie eine JSON-Datei hochladen oder den Inhalt dieser JSON-Datei aus Ihrer Zwischenablage einfügen.
Die JSON-Datei sollte die Anmeldeinformationen des IAM-Benutzers enthalten, der das Cluster erstellt hat.
-
Microsoft Azure: Geben Sie Details zu Ihrem Azure Service Principal an, indem Sie eine JSON-Datei hochladen oder den Inhalt dieser JSON-Datei aus Ihrer Zwischenablage einfügen.
Die JSON-Datei sollte beim Erstellen des Service-Principal die Ausgabe aus der Azure CLI enthalten. Sie können auch Ihre Abonnement-ID angeben, damit sie automatisch in den Astra aufgenommen wird. Andernfalls müssen Sie die ID manuell eingeben, nachdem Sie den JSON bereitgestellt haben.
-
Google Cloud Platform: Stellen Sie die Service-Konto-Schlüsseldatei entweder durch das Hochladen der Datei oder durch Einfügen der Inhalte aus Ihrer Zwischenablage bereit.
Astra Control Service nutzt das Service-Konto, um Cluster zu erkennen, die in der Google Kubernetes Engine ausgeführt werden.
-
Other: Geben Sie Details über Ihren selbstverwalteten Cluster durch das Hochladen eines
kubeconfig.yaml
Datei oder durch Einfügen des Inhalts deskubeconfig.yaml
Datei aus der Zwischenablage.Wenn Sie Ihre eigenen erstellen kubeconfig
Datei, Sie sollten nur ein ein-Kontext-Element darin definieren. Siehe "Kubernetes-Dokumentation" Weitere Informationen zum Erstellenkubeconfig
Dateien:-
Cloud-Instanzname (für vom Provider verwaltete Cluster): Geben Sie einen Namen für die neue Cloud-Instanz an, die beim Hinzufügen dieses Clusters erstellt wird. Weitere Informationen zu "Cloud-Instanzen".
Wenn Sie aus der Cluster-Liste auswählen, achten Sie auf die entsprechende Registerkarte. Wenn eine Warnung angezeigt wird, fahren Sie mit der Warnmeldung über die Warnmeldung, um festzustellen, ob es ein Problem mit dem Cluster gibt. Beispielsweise kann sie erkennen, dass für das Cluster kein Worker Node vorhanden ist.
-
|
Wenn Sie einen Cluster auswählen, der mit einem „Private“-Symbol gekennzeichnet ist, verwendet er private IP-Adressen, und der Astra Connector ist erforderlich, damit Astra Control den Cluster verwalten kann. Wenn Sie eine Meldung sehen, dass Sie den Astra Connector installieren müssen, "Beachten Sie diese Anweisungen" Um den Astra Connector zu installieren und die Verwaltung des Clusters zu ermöglichen. Nach der Installation des Astra Connectors sollte der Cluster geeignet sein und Sie können das Hinzufügen des Clusters fortsetzen. |
-
Credential Name (für selbstverwaltete Cluster): Geben Sie einen Namen für die selbst verwalteten Cluster-Anmeldeinformationen an, die Sie auf Astra Control hochladen. Standardmäßig wird der Name der Anmeldeinformationen automatisch als Name des Clusters ausgefüllt.
-
(Optional) Storage: Wählen Sie die Storage-Klasse aus, die Kubernetes-Anwendungen in diesem Cluster standardmäßig verwenden sollen.
Jeder Storage-Service eines Cloud-Providers enthält die folgenden Informationen zu Preis, Performance und Ausfallsicherheit:
-
Cloud Volumes Service für Google Cloud: Informationen zu Preis, Performance und Ausfallsicherheit
-
Google Persistent Disk: Keine Informationen über Preis, Performance oder Ausfallsicherheit verfügbar
-
Azure NetApp Files: Informationen zu Performance und Ausfallsicherheit
-
Azure Managed Disks: Es sind weder Preis-, Performance- oder Resilience-Informationen verfügbar
-
Amazon Elastic Block Store: Keine Informationen zu Preis, Performance oder Ausfallsicherheit verfügbar
-
Amazon FSX für NetApp ONTAP: Keine Informationen zu Preis, Performance und Ausfallsicherheit verfügbar
-
NetApp Cloud Volumes ONTAP: Keine Informationen zu Preis, Performance oder Ausfallsicherheit verfügbar
Jede Storage-Klasse kann einen der folgenden Services nutzen:
-
Weitere Informationen zu "Storage-Klassen für Amazon Web Services Cluster". Weitere Informationen zu "Speicherklassen für AKS-Cluster". Weitere Informationen zu "Speicherklassen für GKE-Cluster".
-
Überprüfen & Genehmigen: Prüfen Sie die Konfigurationsdetails und wählen Sie Cluster hinzufügen.
-
-
Für Provider-verwaltete Cluster: Wenn dies der erste Cluster ist, den Sie für diesen Cloud-Provider hinzugefügt haben, erstellt Astra Control Service einen Objektspeicher für den Cloud-Provider für Backups von Anwendungen, die auf geeigneten Clustern ausgeführt werden. (Wenn Sie nachfolgende Cluster für diesen Cloud-Provider hinzufügen, werden keine weiteren Objektspeicher erstellt.) Wenn Sie eine Standard-Storage-Klasse angegeben haben, setzt Astra Control Service die von Ihnen angegebene Standard-Storage-Klasse ein. Für Cluster, die in Amazon Web Services oder Google Cloud Platform gemanagt werden, erstellt Astra Control Service auch ein Administratorkonto auf dem Cluster. Diese Vorgänge können mehrere Minuten dauern.
Ändern der Standard-Storage-Klasse
Sie können die Standard-Storage-Klasse für ein Cluster ändern.
Ändern Sie die Standard-Storage-Klasse mit Astra Control
Sie können die Standard-Storage-Klasse für ein Cluster aus Astra Control ändern. Wenn Ihr Cluster einen zuvor installierten Speicher-Backend-Service verwendet, können Sie diese Methode möglicherweise nicht verwenden, um die Standard-Speicherklasse zu ändern (die Aktion default ist nicht wählbar). In diesem Fall können Sie Ändern Sie die Standard-Storage-Klasse über die Befehlszeile.
-
Wählen Sie in der Astra Control Service-UI Cluster aus.
-
Wählen Sie auf der Seite Cluster den Cluster aus, den Sie ändern möchten.
-
Wählen Sie die Registerkarte Storage aus.
-
Wählen Sie die Kategorie Speicherklassen aus.
-
Wählen Sie das Menü Aktionen für die Speicherklasse aus, die Sie als Standard festlegen möchten.
-
Wählen Sie als Standard.
Ändern Sie die Standard-Storage-Klasse über die Befehlszeile
Sie können die Standard-Storage-Klasse für ein Cluster mit Kubernetes-Befehlen ändern. Diese Methode funktioniert unabhängig von der Konfiguration Ihres Clusters.
-
Melden Sie sich bei Ihrem Kubernetes Cluster an.
-
Listen Sie die Storage-Klassen in Ihrem Cluster auf:
kubectl get storageclass
-
Entfernen Sie die Standardbezeichnung aus der Standardspeicherklasse. Ersetzen Sie <SC_NAME> durch den Namen der Speicherklasse:
kubectl patch storageclass <SC_NAME> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
-
Markieren Sie standardmäßig eine andere Storage-Klasse. Ersetzen Sie <SC_NAME> durch den Namen der Speicherklasse:
kubectl patch storageclass <SC_NAME> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
-
Bestätigen Sie die neue Standard-Speicherklasse:
kubectl get storageclass