Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jest to przewodnik umożliwiający rozpoczęcie korzystania z usługi Azure Kubernetes Service (AKS) w usłudze Azure Stack Hub. W tym artykule opisano sposób wdrażania niektórych aplikacji testowych w klastrze, aby zapoznać się z usługą AKS w usłudze Azure Stack Hub. Funkcjonalność dostępna w Azure Stack Hub to podzbiór tego, co jest dostępne w globalnej platformie Azure.
Przed rozpoczęciem upewnij się, że można utworzyć klaster usługi AKS w wystąpieniu usługi Azure Stack Hub. Aby uzyskać instrukcje dotyczące sposobu konfigurowania i tworzenia pierwszego klastra, zobacz Korzystanie z usługi Azure Kubernetes Service w usłudze Azure Stack Hub za pomocą interfejsu wiersza polecenia.
Wdrażanie aplikacji testowych
Jeśli twój znacznik jest połączony, możesz wykonać te instrukcje, aby wdrożyć Prometheus i Grafana w klastrze.
Pobierz i zainstaluj program Helm 3:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.shNotatka
W przypadku użytkownika systemu Windows do zainstalowania programu Helm należy użyć Chocolatey:
choco install kubernetes-helmUpewnij się, że masz najnowsze stabilne repozytorium helm:
helm repo add stable https://charts.helm.sh/stable helm repo updateZainstaluj rozwiązanie Prometheus.
helm install my-prometheus stable/prometheus --set server.service.type=LoadBalancer --set rbac.create=falseNadaj klastrowi dostęp administracyjny do konta Prometheus. Niższe uprawnienia są lepsze ze względów bezpieczeństwa.
kubectl create clusterrolebinding my-prometheus-server --clusterrole=cluster-admin --serviceaccount=default:my-prometheus-serverZainstaluj oprogramowanie Grafana.
helm install my-grafana stable/grafana --set service.type=LoadBalancer --set rbac.create=falseUzyskaj sekret dla portalu Grafana.
kubectl get secret --namespace default my-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
Notatka
W systemie Windows użyj następujących poleceń cmdlet programu PowerShell, aby uzyskać sekret:
\$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}")))
Wdrażanie aplikacji w usłudze AKS przy użyciu usługi ACR
Na tym etapie maszyna kliencka jest połączona z klastrem i możesz kontynuować korzystanie z kubectl w celu skonfigurowania klastra i wdrożenia aplikacji. Jeśli testujesz również usługę Azure Container Registry (ACR), możesz wykonać poniższe instrukcje.
Sekret rejestru Docker do uzyskiwania dostępu do lokalnego ACR
W przypadku wdrażania obrazów aplikacji z lokalnego rejestru ACR należy przechowywać tajny klucz, aby klaster Kubernetes miał dostęp do pobierania obrazów z rejestru. W tym celu należy podać identyfikator głównego uczestnika usługi (SPN) i tajny klucz, dodać SPN jako kontrybutora do rejestru źródłowego i utworzyć tajny klucz Kubernetes. Należy również zaktualizować plik YAML, aby odwoływać się do tajnego klucza.
Dodaj SPN do ACR
Dodaj nazwę SPN jako współautora do usługi ACR.
Notatka
Ten skrypt został zmodyfikowany z witryny usługi Azure Container Registry (przykład skryptu bash ), ponieważ usługa Azure Stack Hub nie ma jeszcze roli ACRPULL. Ten fragment jest skryptem w PowerShell, który można też napisać w bash. Pamiętaj, aby dodać wartości dla systemu.
# 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
Utwórz sekret w Kubernetes
Użyj następującego polecenia, aby dodać sekret do klastra Kubernetes. Pamiętaj, aby dodać wartości dla twojego systemu w fragmentach kodu.
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>
Przykład odwoływania się do wpisu tajnego w aplikacji 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
Następne kroki
Używanie usługi Azure Kubernetes Service w usłudze Azure Stack Hub z interfejsem wiersza polecenia