Vytváření clusterů Kubernetes pomocí Azure CLI
Platí pro: Azure Local, verze 23H2
Tento článek popisuje, jak vytvářet clustery Kubernetes v Azure Local pomocí Azure CLI. Pracovní postup je následující:
- Vytvořte cluster Kubernetes v Místním Azure verze 23H2 pomocí Azure CLI. Cluster je ve výchozím nastavení připojený ke službě Azure Arc.
- Při vytváření clusteru zadáte skupinu Microsoft Entra, která obsahuje seznam uživatelů Microsoft Entra s přístupem správce clusteru Kubernetes.
- Získejte přístup ke clusteru pomocí kubectl a id Microsoft Entra.
- Spusťte ukázkovou vícekontenerovou aplikaci s webovým front-endem a instancí Redis v clusteru.
Než začnete
- Než začnete, ujistěte se, že máte následující podrobnosti od místního správce infrastruktury:
- ID předplatného Azure – ID předplatného Azure, ve kterém se k nasazení a registraci používá místní Azure.
- ID vlastního umístění – ID Azure Resource Manageru vlastního umístění Vlastní umístění se konfiguruje během nasazení místního clusteru Azure. Správce infrastruktury by vám měl poskytnout ID Resource Manageru vlastního umístění. Tento parametr se vyžaduje k vytváření clusterů Kubernetes. ID Resource Manageru můžete získat také pomocí
az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv
, pokud správce infrastruktury poskytne název vlastního umístění a název skupiny prostředků. - ID sítě – ID Azure Resource Manageru místní logické sítě Azure vytvořené podle těchto kroků. Správce by vám měl dát ID logické sítě. Tento parametr se vyžaduje k vytváření clusterů Kubernetes. ID Azure Resource Manageru můžete získat také v
az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv
případě, že znáte skupinu prostředků, ve které byla logická síť vytvořena.
- Kroky v tomto článku můžete spustit v místním vývojovém počítači a vytvořit cluster Kubernetes ve vzdáleném místním nasazení Azure. Ujistěte se, že máte na vývojovém počítači nejnovější verzi Az CLI . Můžete se také rozhodnout upgradovat verzi Az CLI pomocí
az upgrade
. - Pokud se chcete připojit ke clusteru Kubernetes odkudkoli, vytvořte skupinu Microsoft Entra a přidejte do ní členy. Všichni členové skupiny Microsoft Entra mají ke clusteru přístup správce clusteru. Nezapomeňte se přidat jako člena do skupiny Microsoft Entra. Pokud se nepřidáte sami, nemůžete získat přístup ke clusteru Kubernetes pomocí kubectl. Další informace o vytváření skupin Microsoft Entra a přidávání uživatelů naleznete v tématu Správa skupin Microsoft Entra a členství ve skupinách.
- Stáhněte a nainstalujte kubectl na vývojovém počítači. Nástroj příkazového řádku Kubernetes kubectl umožňuje spouštět příkazy pro clustery Kubernetes. Pomocí kubectl můžete nasazovat aplikace, kontrolovat a spravovat prostředky clusteru a zobrazovat protokoly.
Instalace rozšíření Azure CLI
Spuštěním následujícího příkazu nainstalujte potřebná rozšíření Azure CLI:
az extension add -n aksarc --upgrade
az extension add -n customlocation --upgrade
az extension add -n stack-hci-vm --upgrade
az extension add -n connectedk8s --upgrade
Vytvoření clusteru Kubernetes
az aksarc create
Pomocí příkazu vytvořte cluster Kubernetes v AKS Arc. Před spuštěním tohoto příkazu se ujistěte, že se k Azure přihlašujete. Pokud máte více předplatných Azure, pomocí příkazu az account set vyberte příslušné ID předplatného.
az aksarc create -n $aksclustername -g $resource_group --custom-location $customlocationID --vnet-ids $logicnetId --aad-admin-group-object-ids $aadgroupID --generate-ssh-keys
Po několika minutách se příkaz dokončí a vrátí informace o clusteru ve formátu JSON.
Poznámka:
- Hodnota klíče SSH je veřejný klíč pro přístup k uzlům ve zřízeném clusteru. Ve výchozím nastavení se tento klíč nachází na
~/.ssh/id_rsa.pub
adrese . Při vytváření clusteru můžete zadat jiné umístění pomocí parametru--ssh-key-value
. - Parametr
--generate-ssh-keys
se vyžaduje, pokud na místním počítači neexistuje žádný předem existující klíč SSH. Pokud tento parametr nezadáte během vytváření clusteru a neexistuje žádný klíč SSH, zobrazí se chybová zpráva. - Pokud už na místním počítači máte klíč SSH, cluster AKS tento klíč znovu použije. V tomto případě
--generate-ssh-keys
zadání parametru nebo vynechání tohoto parametru nemá žádný vliv.
Důležité
Pokud chcete použít Azure RBAC nebo identitu úlohy pro cluster AKS, musíte během vytváření clusteru předat požadované parametry pomocí Azure CLI. Aktualizace existujícího clusteru AKS za účelem povolení identity úloh nebo Azure RBAC se v současné době nepodporuje. Další informace najdete v tématu Použití Azure RBAC pro autorizaci Kubernetes nebo nasazení a konfigurace identity úloh pro váš cluster.
Připojení ke clusteru Kubernetes
Teď se můžete připojit ke svému clusteru Kubernetes spuštěním az connectedk8s proxy
příkazu z vývojového počítače. Před spuštěním tohoto příkazu se ujistěte, že se k Azure přihlašujete. Pokud máte více předplatných Azure, pomocí příkazu az account set vyberte příslušné ID předplatného.
Tento příkaz stáhne kubeconfig clusteru Kubernetes do vývojového počítače a otevře kanál připojení proxy serveru k místnímu clusteru Kubernetes. Kanál je otevřen tak dlouho, dokud se příkaz spustí. Nechte tento příkaz běžet tak dlouho, dokud chcete získat přístup ke clusteru. Pokud vyprší časový limit, zavřete okno rozhraní příkazového řádku, otevřete nový a spusťte příkaz znovu.
Abyste mohli úspěšně spustit následující příkaz, musíte mít oprávnění Přispěvatel ve skupině prostředků, která je hostitelem clusteru Kubernetes:
az connectedk8s proxy --name $aksclustername --resource-group $resource_group --file .\aks-arc-kube-config
Očekávaný výstup:
Proxy is listening on port 47011
Merged "aks-workload" as current context in .\\aks-arc-kube-config
Start sending kubectl requests on 'aks-workload' context using
kubeconfig at .\\aks-arc-kube-config
Press Ctrl+C to close proxy.
Nechte tuto relaci spuštěnou a připojte se ke clusteru Kubernetes z jiného terminálu nebo příkazového řádku. Spuštěním příkazu kubectl get ověřte, že se můžete připojit ke clusteru Kubernetes. Tento příkaz vrátí seznam uzlů clusteru:
kubectl get node -A --kubeconfig .\aks-arc-kube-config
Následující příklad výstupu ukazuje uzel vytvořený v předchozích krocích. Ujistěte se, že je stav uzlu připravený:
NAME STATUS ROLES AGE VERSION
moc-l0ttdmaioew Ready control-plane,master 34m v1.24.11
moc-ls38tngowsl Ready <none> 32m v1.24.11
Nasazení aplikace
Soubor manifestu Kubernetes definuje požadovaný stav clusteru, například které image kontejneru se mají spustit.
Manifest můžete použít k vytvoření všech objektů potřebných ke spuštění aplikace Azure Vote. Tento manifest zahrnuje dvě nasazení Kubernetes:
- Ukázkové aplikace Azure Vote Python.
- Instance Redis.
Vytvoří se také dvě služby Kubernetes:
- Interní služba instance Redis.
- Externí služba pro přístup k aplikaci Azure Vote z internetu.
Vytvořte soubor s názvem azure-vote.yaml a zkopírujte ho v následujícím manifestu:
apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-back
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-back
template:
metadata:
labels:
app: azure-vote-back
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: azure-vote-back
image: <path to image>/oss/bitnami/redis:6.0.8
env:
- name: ALLOW_EMPTY_PASSWORD
value: "yes"
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 6379
name: redis
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-back
spec:
ports:
- port: 6379
selector:
app: azure-vote-back
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-front
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-front
template:
metadata:
labels:
app: azure-vote-front
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: azure-vote-front
image: <path to image>/azure-vote-front:v1
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 80
env:
- name: REDIS
value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-front
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: azure-vote-front
Nasaďte aplikaci pomocí příkazu kubectl apply a zadejte název YAML:
kubectl apply -f azure-vote.yaml --kubeconfig .\\aks-arc-kube-config
Následující příklad výstupu ukazuje úspěšně vytvořená nasazení a služby:
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
Testování aplikace
Když se aplikace spustí, služba Kubernetes zveřejní front-end aplikace na internetu. Dokončení tohoto procesu může trvat několik minut.
Sledujte průběh pomocí příkazu kubectl get service s argumentem --watch
.
kubectl get service azure-vote-front --watch --kubeconfig .\aks-arc-kube-config
Výstup EXTERNAL-IP pro službu azure-vote-front se zpočátku zobrazuje jako čekající.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
Jakmile se externí IP adresa změní z čekání na skutečnou veřejnou IP adresu, pomocí kombinace kláves CTRL-C zastavte proces sledování kubectl. Následující příklad výstupu ukazuje platnou veřejnou IP adresu přiřazenou službě:
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Pokud chcete vidět aplikaci Azure Vote v akci, otevřete webový prohlížeč na externí IP adresu vaší služby.
Odstranění clusteru
Spuštěním az aksarc delete
příkazu vyčistíte cluster, který jste vytvořili:
az aksarc delete --resource-group $aksclustername --name $resource_group