Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können einen Kubernetes-Cluster auf Azure Stack Hub von einer Client-VM bereitstellen, auf der das AKS-Modul ausgeführt wird. In diesem Artikel wird beschrieben, wie Sie eine Clusterspezifikation schreiben, einen Cluster mit der apimodel.json-Datei bereitstellen und Ihren Cluster überprüfen, indem Sie MySQL mit Helm bereitstellen.
Definieren einer Clusterspezifikation
Sie können eine Clusterspezifikation in einer Dokumentdatei mithilfe des JSON-Formats namens API-Modell angeben. Das AKS-Modul verwendet eine Clusterspezifikation im API-Modell, um Ihren Cluster zu erstellen.
Beispiele für das API-Modell für Ihre Betriebssystem- und AKS-Engine-Versionsnummer für aktuelle Releases finden Sie unter AKS-Engine und entsprechende Imagezuordnung.
- Suchen Sie in der Tabelle nach der Versionsnummer der AKS-Engine (z. B.
v.0.63.0). - Wählen Sie in der Tabelle API-Modellbeispiele den Link für Ihr Betriebssystem aus, und öffnen Sie diesen.
- Klicken Sie auf Raw (Roh). Sie können die URL in den folgenden Anweisungen verwenden.
Eine URL zum API-Modell könnte wie folgt aussehen:
https://raw.githubusercontent.com/Azure/aks-engine-azurestack/master/examples/azure-stack/kubernetes-azurestack.json
Ersetzen Sie <URL for the API Model> für jedes der folgenden Beispiele durch die URL.
Aktualisieren des API-Modells
In diesem Abschnitt wird beschrieben, wie Sie ein API-Modell für Ihren Cluster erstellen.
Verwenden Sie zunächst eine API-Modelldatei für Azure Stack Hub für Linux oder Windows. Führen Sie auf dem Computer, auf dem Sie die AKS-Engine installiert haben, Folgendes aus:
curl -o kubernetes-azurestack.json <URL for the API Model>Hinweis
Wenn Sie die Verbindungen getrennt haben, können Sie die Datei herunterladen und manuell auf den getrennten Computer kopieren, auf dem Sie sie bearbeiten möchten. Sie können die Datei mithilfe von Tools wie PuTTY oder WinSCP auf Ihren Linux-Computer kopieren.
Wenn Sie das API-Modell in einem Editor öffnen möchten, können Sie nano verwenden:
nano ./kubernetes-azurestack.jsonHinweis
Wenn nano nicht installiert ist, können Sie nano auf Ubuntu installieren:
sudo apt-get install nano.Suchen Sie in der datei kubernetes-azurestack.json orchestratorRelease und orchestratorVersion. Wählen Sie eine der unterstützten Kubernetes-Versionen aus. Die Versionstabelle finden Sie in den Versionshinweisen. Geben Sie
orchestratorReleaseals x.xx und „orchestratorVersion“ als x.xx.x an. Eine Liste der aktuellen Versionen finden Sie unter Unterstützte AKS-Engine-Versionen.Suchen Sie nach
customCloudProfile, und geben Sie die URL für das Mandantenportal an. Beispiel:https://portal.local.azurestack.external.Fügen Sie bei Verwendung von AD FS
"identitySystem":"adfs"hinzu. Beispiel:"customCloudProfile": { "portalURL": "https://portal.local.azurestack.external", "identitySystem": "adfs" },Hinweis
Wenn Sie Microsoft Entra-ID für Ihr Identitätssystem verwenden, müssen Sie das IdentitySystem-Feld nicht hinzufügen.
Legen Sie in
masterProfiledie folgenden Felder fest:Feld Beschreibung dnsPräfix Geben Sie eine eindeutige Zeichenfolge ein, die zur Identifizierung des Hostnamens von virtuellen Computern dienen soll. Beispielsweise einen Namen, der auf dem Namen der Ressourcengruppe basiert. zählen Geben Sie die Anzahl der Masters ein, die für die Bereitstellung vorgesehen sind. Der minimale Wert für eine Hochverfügbarkeitsbereitstellung beträgt 3, aber 1 ist für Bereitstellungen ohne Hochverfügbarkeit zulässig. vmGröße Geben Sie eine Größe ein, die von Azure Stack Hub unterstützt wird, z. B. Standard_D2_v2.Distro Geben Sie aks-ubuntu-18.04oderaks-ubuntu-20.04ein.In
agentPoolProfiles, update:Feld Beschreibung zählen Geben Sie die Anzahl der Agents ein, die für die Bereitstellung vorgesehen sind. Pro Abonnement können maximal 50 Knoten verwendet werden. Wenn Sie mehr als einen Cluster pro Abonnement bereitstellen, stellen Sie sicher, dass die Gesamtanzahl der Agents 50 nicht überschreitet. Stellen Sie sicher, dass Sie die Konfigurationselemente aus der JSON-Datei für das API-Beispielmodell verwenden. vmGröße Geben Sie eine Größe ein, die von Azure Stack Hub unterstützt wird, z. B. Standard_D2_v2.Distro Geben Sie aks-ubuntu-18.04,aks-ubuntu-20.04oderWindowsein.
Verwenden SieWindowsfür Agents, die unter Windows ausgeführt werden. Beispiel: kubernetes-windows.jsonIn
linuxProfile, update:Feld Beschreibung AdministratorBenutzername Geben Sie den VM-Administratorbenutzernamen ein. SSH Geben Sie den öffentlichen Schlüssel ein, der für die SSH-Authentifizierung bei virtuellen Computern verwendet wird. Verwenden Sie ssh-rsaund dann den Schlüssel. Anweisungen zum Erstellen eines öffentlichen Schlüssels finden Sie unter Erstellen eines SSH-Schlüssels für Linux in Azure Stack Hub.Wenn Sie in einem benutzerdefinierten virtuellen Netzwerk bereitstellen, finden Sie Anweisungen zum Suchen und Hinzufügen der erforderlichen Schlüssel und Werte zu den entsprechenden Arrays im API-Modell im Bereitstellen eines Kubernetes-Clusters in einem benutzerdefinierten virtuellen Netzwerk.
Hinweis
Mit dem AKS-Modul für Azure Stack Hub können Sie keine eigenen Zertifikate für die Erstellung des Clusters bereitstellen.
Wenn Sie Windows verwenden, aktualisieren Sie in
windowsProfiledie Werte vonadminUsername:undadminPassword:"windowsProfile": { "adminUsername": "azureuser", "adminPassword": "", "sshEnabled": true }
Weitere Informationen zum API-Modell
- Eine vollständige Referenz zu allen verfügbaren Optionen im API-Modell finden Sie in den Clusterdefinitionen.
- Highlights bestimmter Optionen für Azure Stack Hub finden Sie in den Azure Stack Hub-Clusterdefinitionsspezifischen.
Bereitstellen eines Kubernetes-Clusters
Nachdem Sie alle erforderlichen Werte im API-Modell gesammelt haben, können Sie Ihren Cluster erstellen. An diesem Punkt sollten Sie Ihren Azure Stack Hub-Operator auf folgende Fragen stellen:
- Überprüfen der Integrität des Systems, schlagen Sie die Ausführung von
Test-AzureStackund des Hardwareüberwachungstools Ihres OEM-Herstellers vor. - Überprüfen der Systemkapazität einschließlich Ressourcen wie Arbeitsspeicher, Speicher und öffentlicher IP-Adressen.
- Geben Sie Details zu dem Kontingent an, das Ihrem Abonnement zugeordnet ist, damit Sie überprüfen können, ob noch genügend Kapazität für die Anzahl der zu verwendenden VMs vorhanden ist.
Fahren Sie mit der Bereitstellung eines Clusters fort:
Überprüfen Sie die verfügbaren Parameter für die AKS-Engine in Azure Stack Hub-CLI-Flags.
Parameter Beispiel Beschreibung azure-env AzureStackCloud Um der AKS-Engine mitzuteilen, dass die Zielplattform Azure Stack Hub ist, verwenden Sie AzureStackCloud.Identitätssystem adfs Wahlfrei. Geben Sie Ihre Identitätsverwaltungslösung an, wenn Sie Active Directory-Verbunddienste (AD FS) nutzen. Standort Lokal Der Regionsname für Ihre Azure Stack Hub-Instanz. Ressourcengruppe kube-rg Geben Sie den Namen einer neuen Ressourcengruppe ein, oder wählen Sie eine vorhandene Ressourcengruppe aus. Der Ressourcenname muss alphanumerisch und in Kleinbuchstaben angegeben sein. API-Modell ./kubernetes-azurestack.json Pfad zur Clusterkonfigurationsdatei oder zum API-Modell. Ausgabeverzeichnis kube-rg Geben Sie den Namen des Verzeichnisses ein, das die Ausgabedatei apimodel.json und andere generierte Dateien enthalten soll. Kunden-ID xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx Geben Sie die Dienstprinzipal-GUID ein. Die als Anwendungs-ID identifizierte Client-ID, wenn Ihr Azure Stack Hub-Administrator den Dienstprinzipal erstellt hat. Geheimer Clientschlüssel xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx Geben Sie das Dienstprinzipalgeheimnis ein. Sie richten den geheimen Clientschlüssel beim Erstellen Ihres Diensts ein. Abonnement-ID xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx Geben Sie Ihre Abonnement-ID ein. Sie müssen ein Abonnement für den Mandanten bereitstellen. Bereitstellungen für das administrative Abonnement werden nicht unterstützt. Weitere Informationen finden Sie unter Abonnieren von Angeboten. Hier ist ein Beispiel:
Hinweis
Für AKSe Version 0.75.3 und höher lautet
aks-engine-azurestack deployder Befehl zum Bereitstellen eines AKS-Modulclusters.aks-engine deploy \ --azure-env AzureStackCloud \ --location \ --resource-group kube-rg \ --api-model ./kubernetes-azurestack.json \ --output-directory kube-rg \ --client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --subscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --identity-system adfs # required if using AD FSWenn bei der Ausführung aus beliebigem Grund ein Fehler auftritt, nachdem das Ausgabeverzeichnis erstellt wurde, können Sie das Problem beheben und den Befehl erneut ausführen. Wenn Sie die Bereitstellung erneut ausführen und dasselbe Ausgabeverzeichnis verwendet haben, gibt das AKS-Modul einen Fehler zurück, der besagt, dass das Verzeichnis bereits vorhanden ist. Sie können das vorhandene Verzeichnis überschreiben, indem Sie das Flag
--force-overwriteverwenden.Speichern Sie die Clusterkonfiguration der AKS-Engine an einem sicheren, verschlüsselten Speicherort.
Suchen Sie die Datei apimodel.json. Speichern Sie sie an einem sicheren Speicherort. Diese Datei wird als Eingabe in allen anderen AKS-Modulvorgängen verwendet.
Die generierte apimodel.json Datei enthält den Dienstprinzipal, geheimen Schlüssel und den öffentlichen SSH-Schlüssel, den Sie im Eingabe-API-Modell verwenden. Die Datei verfügt auch über alle anderen Metadaten, die vom AKS-Modul benötigt werden, um alle anderen Vorgänge auszuführen. Wenn Sie die Datei verlieren, kann das AKS-Modul den Cluster nicht konfigurieren.
Die Geheimnisse sind unverschlüsselt. Bewahren Sie die Datei an einem verschlüsselten, sicheren Ort auf.
Überprüfen Ihres Clusters
Überprüfen Sie Ihren Cluster, indem Sie eine Verbindung herstellen kubectl, die Informationen abrufen und dann die Zustände Ihrer Knoten abrufen.
Rufen Sie die Datei
kubeconfigab, um eine Verbindung mit dem Steuerungsebenenknoten herzustellen.- Wenn Sie bereits installiert sind
kubectl, überprüfen Sie diekubeconfigDatei auf den neu erstellten Cluster in diesem Verzeichnispfad/kubeconfig/kubeconfig.json. Sie können das/kubeconfig.json.kubeVerzeichnis hinzufügen und in "config" umbenennen, um auf Ihren neuen Cluster zuzugreifen.
Wenn Sie nicht installiertkubectlsind, lesen Sie " Installieren von Tools zum Installieren des Kubernetes-Befehlszeilentools". Folgen Sie andernfalls diesen Anweisungen, um von einem der Steuerebenenknoten aus auf den Cluster zuzugreifen.
- Wenn Sie bereits installiert sind
Rufen Sie die öffentliche IP-Adresse eines Ihrer Steuerungsebenenknoten über das Azure Stack Hub-Portal ab.
Stellen Sie von einem Computer mit Zugriff auf Ihre Azure Stack Hub-Instanz eine Verbindung über SSH mit dem neuen Steuerebenenknoten über einen Client wie PuTTY oder MobaXterm her.
Verwenden Sie
azureuserfür den SSH-Benutzernamen die private Schlüsseldatei des Schlüsselpaars, das Sie für die Bereitstellung des Clusters bereitgestellt haben.Überprüfen Sie, ob die Clusterendpunkte ausgeführt werden:
kubectl cluster-infoDie Ausgabe sollte in etwa wie folgt aussehen:
Kubernetes master is running at https://democluster01.location.domain.com CoreDNS is running at https://democluster01.location.domain.com/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy Metrics-server is running at https://democluster01.location.domain.com/api/v1/namespaces/kube-system/services/https:metrics-server:/proxyÜberprüfen Sie dann die Knotenzustände:
kubectl get nodesDie Ausgabe sollte ähnlich der Folgenden aussehen:
k8s-linuxpool-29969128-0 Ready agent 9d v1.15.5 k8s-linuxpool-29969128-1 Ready agent 9d v1.15.5 k8s-linuxpool-29969128-2 Ready agent 9d v1.15.5 k8s-master-29969128-0 Ready master 9d v1.15.5 k8s-master-29969128-1 Ready master 9d v1.15.5 k8s-master-29969128-2 Ready master 9d v1.15.5
Problembehandlung bei der Clusterbereitstellung
Wenn beim Bereitstellen eines Kubernetes-Clusters mit dem AKS-Modul Fehler auftreten, können Sie Folgendes überprüfen:
- Verwenden Sie die korrekten Dienstprinzipal-Anmeldeinformationen (SPN)?
- Hat der SPN die Rolle „Mitwirkende“ für das Azure Stack Hub-Abonnement?
- Verfügen Sie über ein ausreichend großes Kontingent in Ihrem Azure Stack Hub-Plan?
- Wird für die Azure Stack Hub-Instanz ein Patch oder Upgrade angewendet?
Weitere Informationen finden Sie im Artikel zur Problembehandlung im GitHub-Repository "Azure/aks-engine-azurestack ".
Drehen Ihres Dienstprinzipalgeheimnisses
Nach der Bereitstellung des Kubernetes-Clusters mit der AKS-Engine wird der Dienstprinzipalname (Service Principal Name, SPN) verwendet, um Interaktionen mit dem Azure Resource Manager auf Ihrer Azure Stack Hub-Instanz zu verwalten. Zu einem bestimmten Zeitpunkt kann das Geheimnis für diesen Dienstprinzipal ablaufen. Wenn Ihr Geheimnis abgelaufen ist, können Sie die Anmeldeinformationen wie folgt aktualisieren:
- Aktualisieren Sie jeden Knoten mit dem neuen Dienstprinzipalgeheimnis.
- Alternativ können Sie die Anmeldeinformationen des API-Modells aktualisieren und das Upgrade ausführen.
Manuelles Aktualisieren jedes Knotens
- Fordern Sie ein neues Geheimnis für Ihren Dienstprinzipal von Ihrem Cloudoperator an. Anweisungen für Azure Stack Hub finden Sie unter Verwenden einer App-Identität für den Zugriff auf Azure Stack Hub-Ressourcen.
- Verwenden Sie die von Ihrem Cloudoperator bereitgestellten neuen Anmeldeinformationen, um /etc/kubernetes/azure.json auf jedem Knoten zu aktualisieren. Nachdem Sie das Update vorgenommen haben, starten Sie beide
kubeleundkube-controller-manager.
Aktualisieren des Clusters mit AKS-Engine-Update
Alternativ können Sie die Anmeldeinformationen in apimodel.json ersetzen und ein Upgrade mithilfe der aktualisierten .json Datei auf dieselbe oder neuere Kubernetes-Version ausführen. Anweisungen zum Aktualisieren des Modells finden Sie unter Upgrade eines Kubernetes-Clusters auf Azure Stack Hub