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.
Dies ist ein Leitfaden für die ersten Schritte mit dem Azure Kubernetes Service (AKS)-Dienst auf Azure Stack Hub. In diesem Artikel wird beschrieben, wie Sie einige Test-Apps auf Ihrem Cluster bereitstellen, damit Sie sich mit AKS auf Azure Stack Hub vertraut machen können. Die in Azure Stack Hub verfügbare Funktionalität ist eine Teilmenge der in globalen Azure verfügbaren Funktionen.
Bevor Sie beginnen, stellen Sie sicher, dass sie einen AKS-Cluster in Ihrer Azure Stack Hub-Instanz erstellen können. Anweisungen zum Einrichten und Erstellen Ihres ersten Clusters finden Sie unter Verwenden des Azure Kubernetes-Diensts auf Azure Stack Hub mit der CLI.
Bereitstellen von Test-Apps
Wenn Ihr Stempel verbunden ist, können Sie diese Anweisungen befolgen, um Prometheus und Grafana im Cluster bereitzustellen.
Helm 3 herunterladen und installieren:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.shHinweis
Für Windows-Benutzer verwenden Sie Chocolatey , um Helm zu installieren:
choco install kubernetes-helmStellen Sie sicher, dass Sie über das neueste stabile Helm-Repository verfügen:
helm repo add stable https://charts.helm.sh/stable helm repo updateInstallieren Sie Prometheus.
helm install my-prometheus stable/prometheus --set server.service.type=LoadBalancer --set rbac.create=falseGewähren Sie Clusteradministratoren Zugriff auf das Prometheus-Konto. Niedrigere Berechtigungen sind aus Sicherheitsgründen besser.
kubectl create clusterrolebinding my-prometheus-server --clusterrole=cluster-admin --serviceaccount=default:my-prometheus-serverInstallieren Sie Grafana.
helm install my-grafana stable/grafana --set service.type=LoadBalancer --set rbac.create=falseGet secret for Grafana portal.
kubectl get secret --namespace default my-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
Hinweis
Verwenden Sie unter Windows die folgenden PowerShell-Cmdlets, um den geheimen Schlüssel abzurufen:
\$env:Path = \$env:Path + ";\$env:USERPROFILE\\.azure-kubectl"
[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String(\$(kubectl get secret --namespace default my-grafana -o jsonpath="{.data.admin-password}")))
Bereitstellen von Apps auf AKS mithilfe von ACR
An diesem Punkt ist Ihr Clientcomputer mit dem Cluster verbunden, und Sie können kubectl verwenden, um den Cluster zu konfigurieren und Ihre Anwendungen bereitzustellen. Wenn Sie auch den Azure Container Registry (ACR)-Dienst testen, können Sie die folgenden Anweisungen befolgen.
Docker-Registrierungsschlüssel für den Zugriff auf lokale ACR
Wenn Sie Anwendungsimages von einem lokalen ACR bereitstellen, müssen Sie einen geheimen Schlüssel speichern, damit der Kubernetes-Cluster Zugriff auf das Abrufen der Images aus der Registrierung hat. Dazu müssen Sie eine Dienstprinzipal-ID (SPN) und einen geheimen Schlüssel bereitstellen, den SPN als Mitwirkender zur Quellregistrierung hinzufügen und den geheimen Kubernetes-Schlüssel erstellen. Außerdem müssen Sie Ihre YAML-Datei aktualisieren, um auf den geheimen Schlüssel zu verweisen.
Hinzufügen des SPN zum ACR
Fügen Sie den SPN als Mitwirkender zum ACR hinzu.
Hinweis
Dieses Skript wurde von der Azure-Containerregistrierungswebsite ( Bash-Beispiel) geändert, da Azure Stack Hub noch nicht über die ACRPULL-Rolle verfügt. Dieses Beispiel ist ein PowerShell-Skript, das in Bash geschrieben werden kann. Achten Sie darauf, die Werte für Ihr System hinzuzufügen.
# Modify for your environment. The ACR_NAME is the name of your Azure Container
# Registry, and the SERVICE_PRINCIPAL_ID is the SPN's 'appId' or
# one of its 'servicePrincipalNames' values.
ACR_NAME=mycontainerregistry
SERVICE_PRINCIPAL_ID=<service-principal-ID>
# Populate value required for subsequent command args
ACR_REGISTRY_ID=$(az acr show --name $ACR_NAME --query id --output tsv)
# Assign the desired role to the SPN.
az role assignment create --assignee $SERVICE_PRINCIPAL_ID --scope $ACR_REGISTRY_ID --role contributor
Erstellen des Geheimen Schlüssels in Kubernetes
Verwenden Sie den folgenden Befehl, um den geheimen Schlüssel zum Kubernetes-Cluster hinzuzufügen. Achten Sie darauf, die Werte für Ihr System in den Codeausschnitten hinzuzufügen.
kubectl create secret docker-registry <secret name> \
kubectl create secret docker-registry <secret name> \
--docker-server=<ACR container registry URL> \
--docker-username=<service principal ID> \
--docker-password=<service principal secret>
Beispiel für den Verweis auf den geheimen Schlüssel in Ihrer App YAML
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: democr2.azsacr.redmond.ext-n31r1208.masd.stbtest.microsoft.com/library/nginx:1.17.3
imagePullPolicy: Always
ports:
- containerPort: 80
imagePullSecrets:
- name: democr2
---
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
selector:
app: nginx
ports:
- protocol: "TCP"
port: 80
targetPort: 80
type: LoadBalancer
Nächste Schritte
Verwenden des Azure Kubernetes-Diensts im Azure Stack Hub mit der CLI