Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit is een handleiding om u op weg te helpen met de AKS-service (Azure Kubernetes Service) in Azure Stack Hub. In dit artikel wordt beschreven hoe u enkele test-apps implementeert in uw cluster, zodat u vertrouwd kunt raken met AKS in Azure Stack Hub. De functionaliteit die beschikbaar is in Azure Stack Hub is een subset van wat beschikbaar is in globale Azure.
Voordat u aan de slag gaat, moet u ervoor zorgen dat u een AKS-cluster op uw Azure Stack Hub-exemplaar kunt maken. Zie Azure Kubernetes Service gebruiken in Azure Stack Hub met de CLI voor instructies over het instellen en maken van uw eerste cluster.
Test-apps implementeren
Als uw stempel is verbonden, kunt u deze instructies volgen om Prometheus en Grafana in het cluster te implementeren.
Helm 3 downloaden en installeren:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh
Opmerking
Voor Windows-gebruikers, gebruik Chocolatey om Helm te installeren.
choco install kubernetes-helm
Zorg ervoor dat u de meest recente stabiele Helm-opslagplaats hebt:
helm repo add stable https://charts.helm.sh/stable helm repo update
Installeer Prometheus.
helm install my-prometheus stable/prometheus --set server.service.type=LoadBalancer --set rbac.create=false
Geef clusterbeheerderstoegang tot het Prometheus-account. Lagere machtigingen zijn om veiligheidsredenen beter.
kubectl create clusterrolebinding my-prometheus-server --clusterrole=cluster-admin --serviceaccount=default:my-prometheus-server
Installeer Grafana.
helm install my-grafana stable/grafana --set service.type=LoadBalancer --set rbac.create=false
Haal geheim op voor Grafana-portal.
kubectl get secret --namespace default my-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
Opmerking
Gebruik in Windows de volgende PowerShell-cmdlets om het geheim op te halen:
\$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}")))
Apps implementeren in AKS met behulp van ACR
Op dit moment is uw clientcomputer verbonden met het cluster en kunt u doorgaan met het gebruik van kubectl om het cluster te configureren en uw toepassingen te implementeren. Als u ook de ACR-service (Azure Container Registry) test, kunt u de onderstaande instructies volgen.
Docker-registergeheim voor toegang tot lokale ACR
Als u toepassingsinstallatiekopieën implementeert vanuit een lokale ACR, moet u een geheim opslaan om het Kubernetes-cluster toegang te geven tot het ophalen van de installatiekopieën uit het register. Hiervoor moet u een service-principal-id (SPN) en geheim opgeven, de SPN als inzender toevoegen aan het bronregister en het Kubernetes-geheim maken. U moet ook uw YAML-bestand bijwerken om te verwijzen naar het geheim.
De SPN toevoegen aan de ACR
Voeg de SPN toe als inzender aan de ACR.
Opmerking
Dit script is gewijzigd van de Azure Container Registry-site ( bash-voorbeeld) omdat Azure Stack Hub nog niet over de ACRPULL-rol beschikt. Dit voorbeeld is een PowerShell-script, equivalent kan worden geschreven in bash. Zorg ervoor dat u de waarden voor uw systeem toevoegt.
# 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
Het geheim maken in Kubernetes
Gebruik de volgende opdracht om het geheim toe te voegen aan het Kubernetes-cluster. Zorg ervoor dat u de waarden voor uw systeem toevoegt in de codefragmenten.
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>
Voorbeeld van het verwijzen naar het geheim in uw 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
Volgende stappen
Azure Kubernetes Service gebruiken in Azure Stack Hub met de CLI