Připojení ke clusteru Kubernetes operátora Azure Nexus
V průběhu životního cyklu clusteru Azure Operator Nexus Kubernetes budete nakonec potřebovat přímý přístup k uzlu clusteru. Tento přístup může být určený pro operace údržby, shromažďování protokolů nebo řešení potíží. K uzlu přistupujete prostřednictvím ověřování, které metody se liší v závislosti na vaší metodě připojení. Bezpečně se ověřujete vůči uzlům clusteru prostřednictvím dvou možností probíraných v tomto článku. Z bezpečnostních důvodů nejsou uzly clusteru přístupné z internetu. Pokud se chcete připojit přímo k uzlům clusteru, musíte použít IP kubectl debug
adresu hostitele nebo z jumpboxu.
Požadavky
- Cluster Kubernetes operátora Azure, který je nasazený ve skupině prostředků ve vašem předplatném Azure.
- Privátní klíč SSH pro uzly clusteru
- Pokud chcete SSH použít IP adresu uzlu, musíte nasadit virtuální počítač jumpbox ve stejné síti CNI (Container Network Interface) jako uzly clusteru.
Přístup k uzlům clusteru přes Azure Arc pro servery
Příkaz az ssh arc
umožňuje uživatelům vzdáleně přistupovat k virtuálnímu počítači clusteru, který je připojený ke službě Azure Arc. Tato metoda představuje bezpečný způsob, jak se přes SSH připojit k uzlu clusteru přímo z příkazového řádku, což z něj dělá rychlou a efektivní metodu pro vzdálenou správu.
Poznámka:
Uzly clusteru Nexus Nexus Kubernetes jsou ve výchozím nastavení připojené servery Arc.
Nastavte požadované proměnné. Zástupné symboly nahraďte skutečnými hodnotami relevantními pro vaše prostředí Azure a cluster Nexus Kubernetes.
RESOURCE_GROUP="myResourceGroup" # Resource group where the Nexus Kubernetes cluster is deployed CLUSTER_NAME="myNexusK8sCluster" # Name of the Nexus Kubernetes cluster SUBSCRIPTION_ID="<Subscription ID>" # Azure subscription ID ADMIN_USERNAME="azureuser" # Username for the cluster administrator (--admin-username parameter value used during cluster creation) SSH_PRIVATE_KEY_FILE="<vm_ssh_id_rsa>" # Path to the SSH private key file MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --output tsv --query managedResourceGroupConfiguration.name)
Získejte dostupné názvy uzlů clusteru.
az networkcloud kubernetescluster show --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID -o json | jq '.nodes[].name'
Ukázkový výstup:
"mynexusk8scluster-0b32128d-agentpool1-md-7h9t4" "mynexusk8scluster-0b32128d-agentpool1-md-c6xbs" "mynexusk8scluster-0b32128d-control-plane-qq5jm"
Nastavte název uzlu clusteru na proměnnou VM_NAME.
VM_NAME="mynexusk8scluster-0b32128d-agentpool1-md-7h9t4"
Spuštěním následujícího příkazu připojte SSH k uzlu clusteru.
az ssh arc --subscription $SUBSCRIPTION_ID \ --resource-group $MANAGED_RESOURCE_GROUP \ --name $VM_NAME \ --local-user $ADMIN_USERNAME \ --private-key-file $SSH_PRIVATE_KEY_FILE
Přístup k uzlům pomocí rozhraní Kubernetes API
Tato metoda vyžaduje použití kubectl debug
příkazu. Tato metoda je omezená na kontejnery a může vynechat širší systémové problémy, na rozdíl od SSH (pomocí příkazu az ssh arc nebo přímé IP adresy), která nabízí úplný přístup a řízení uzlů.
Přístup k rozhraní Kubernetes API přes Azure Arc pro Kubernetes
Poznámka:
Při vytváření clusteru Nexus Kubernetes vytvoří Nexus automaticky spravovanou skupinu prostředků vyhrazenou k ukládání prostředků clusteru v rámci této skupiny, vytvoří se prostředek clusteru připojeného ke službě Arc.
Pokud chcete získat přístup ke clusteru, musíte nastavit připojení kubeconfig
clusteru . Po přihlášení k Azure CLI s příslušnou entitou Microsoft Entra můžete získat kubeconfig
potřebnou komunikaci s clusterem odkudkoli, i mimo bránu firewall, která ji obklopuje.
RESOURCE_GROUP
NastavteCLUSTER_NAME
aSUBSCRIPTION_ID
proměnné.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>
Dotazování spravované skupiny prostředků pomocí
az
a uložení doMANAGED_RESOURCE_GROUP
az account set -s $SUBSCRIPTION_ID MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)
Následující příkaz spustí proxy server connectedk8s, který umožňuje připojit se k serveru rozhraní API Kubernetes pro zadaný cluster Nexus Kubernetes.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &
Slouží
kubectl
k odesílání požadavků do clusteru:kubectl get pods -A
Teď by se měla zobrazit odpověď z clusteru obsahujícího seznam všech uzlů.
Poznámka:
Pokud se zobrazí chybová zpráva "Nepodařilo se odeslat přístupový token do klientského proxy serveru se nepovedlo připojit k MSI", možná budete muset provést az login
opětovné ověření v Azure.
Přístup k uzlům clusteru přes Azure Arc pro Kubernetes
Po připojení ke clusteru přes Arc for Kubernetes se můžete připojit k jednotlivým uzlům Kubernetes pomocí kubectl debug
příkazu ke spuštění privilegovaného kontejneru na vašem uzlu.
Vypište uzly v clusteru Nexus Kubernetes:
$> kubectl get nodes NAME STATUS ROLES AGE VERSION mynexusk8scluster-0b32128d-agentpool1-md-7h9t4 Ready <none> 125m v1.24.9 mynexusk8scluster-0b32128d-agentpool1-md-c6xbs Ready <none> 125m v1.24.9 mynexusk8scluster-0b32128d-control-plane-qq5jm Ready <none> 124m v1.24.9
Spusťte v uzlu privilegovaný kontejner a připojte se k němu:
$> kubectl debug node/mynexusk8scluster-0b32128d-agentpool1-md-7h9t4 -it --image=mcr.microsoft.com/cbl-mariner/base/core:2.0 Creating debugging pod node-debugger-mynexusk8scluster-0b32128d-agentpool1-md-7h9t4-694gg with container debugger on node mynexusk8scluster-0b32128d-agentpool1-md-7h9t4. If you don't see a command prompt, try pressing enter. root [ / ]#
Tento privilegovaný kontejner poskytuje přístup k uzlu. Spusťte příkazy na uzlu clusteru spuštěním
chroot /host
na příkazovém řádku.Až budete hotovi s podem ladění, zadejte
exit
příkaz, kterým ukončíte interaktivní relaci prostředí. Po ukončení prostředí nezapomeňte pod odstranit:kubectl delete pod node-debugger-mynexusk8scluster-0b32128d-agentpool1-md-7h9t4-694gg
Vytvoření interaktivního připojení prostředí k uzlu pomocí IP adresy
Připojení do uzlu clusteru z Azure jumpboxu
Další možností bezpečného připojení k uzlu clusteru Azure Operator Nexus Kubernetes je nastavení přímého přístupu k síti CNI clusteru z virtuálního počítače Azure jumpbox. Pomocí tohoto přístupu můžete SSH do uzlů clusteru spouštět kubectl
příkazy také v clusteru kubeconfig
pomocí souboru.
Obraťte se na správce sítě a nastavte přímé připojení z virtuálního počítače Azure jumpbox k síti CNI clusteru.
Připojení k uzlu clusteru z místního jumpboxu
Nastavte přímý přístup k CNI clusteru (Container Network Interface) z místního jumpboxu. Tento přímý přístup umožňuje SSH do uzlů clusteru a umožňuje spouštět kubectl
příkazy pomocí kubeconfig
souboru.
Obraťte se na správce sítě a nastavte toto přímé připojení k síti CNI clusteru.
IP adresa uzlů clusteru
Než se budete moct připojit k uzlům clusteru, musíte najít IP adresu uzlů. IP adresu uzlů najdete pomocí webu Azure Portal nebo Azure CLI.
Použití Azure CLI
Nastavte proměnné RESOURCE_GROUP, CLUSTER_NAME a SUBSCRIPTION_ID tak, aby odpovídaly vašemu prostředí.
RESOURCE_GROUP="myResourceGroup" CLUSTER_NAME="myNexusK8sCluster" SUBSCRIPTION_ID="<Subscription ID>"
Spuštěním následujícího příkazu získejte IP adresu uzlů.
az networkcloud kubernetescluster show --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID -o json | jq '.nodes[] | select(any(.networkAttachments[]; .networkAttachmentName == "defaultcni")) | {name: .name, ipv4Address: (.networkAttachments[] | select(.networkAttachmentName == "defaultcni").ipv4Address)}'
Tady je ukázkový výstup příkazu.
{ "name": "mynexusk8scluster-0b32128d-agentpool1-md-7h9t4", "ipv4Address": "10.5.54.47" } { "name": "mynexusk8scluster-0b32128d-agentpool1-md-c6xbs", "ipv4Address": "10.5.54.48" } { "name": "mynexusk8scluster-0b32128d-control-plane-qq5jm", "ipv4Address": "10.5.54.46" }
Použití portálu Azure Portal
Pokud chcete najít IP adresu virtuálního počítače pro SSH, postupujte takto:
- Přejděte na azure Portal a přihlaste se pomocí svého uživatelského jména a hesla.
- Do vyhledávacího pole zadejte Kubernetes Cluster (Operátor Nexus) a ze seznamu výsledků vyberte službu Cluster Kubernetes.
- Vyhledejte konkrétní prostředek clusteru Kubernetes Nexus, který potřebujete použít k vyhledávání.
- Jakmile najdete správný prostředek tak, že se shodí s názvem clusteru, vyberte prostředek, který přejde na domovskou stránku Cluster Kubernetes.
- Jakmile najdete správný prostředek tak, že se jeho název shoduje s názvem clusteru, přejděte v levé nabídce do části Uzly clusteru Kubernetes.
- Vyberte název uzlu Kubernetes, který vás zajímá, a zobrazte jeho podrobnosti.
- Na kartě Připojené sítě vyhledejte IP adresu sítě uzlu Vrstva 3, která se používá jako síť CNI.
Další kroky
V následujících článcích se dozvíte více o clusteru Kubernetes operátora Azure Nexus.