Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 autentizujete na uzlech 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. Místo toho, abyste se připojovali k uzlům clusteru přímo, musíte použít buď kubectl debug, nebo IP adresu hostitele 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 Kubernetes jsou ve výchozím nastavení servery připojené prostřednictvím systému 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ů, která je vyhrazená pro ukládání prostředků clusteru. V rámci této skupiny se vytvoří zdroj clusteru připojeného prostřednictvím Arc.
Pokud chcete získat přístup ke clusteru, musíte nastavit připojení ke clusteru kubeconfig. Po přihlášení k Azure CLI s příslušnou entitou Microsoft Entra můžete získat kubeconfig potřebné pro komunikaci s clusterem odkudkoli, i mimo firewall, který ho obklopuje.
Nastavte
CLUSTER_NAME,RESOURCE_GROUPaSUBSCRIPTION_IDproměnné.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>Dotažte se na spravovanou skupinu prostředků pomocí
aza uložte ji doMANAGED_RESOURCE_GROUPaz 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ží
kubectlk odesílání požadavků do clusteru:kubectl get pods -ATeď 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 serveruNelze se připojit k MSI", možná budete muset provést az login k opětovnému 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.9Spusť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 /hostna příkazovém řádku.Až budete hotovi s podem ladění, zadejte příkaz
exitk ukončení interaktivní relace. Po ukončení prostředí shellu nezapomeňte odstranit pod:kubectl delete pod node-debugger-mynexusk8scluster-0b32128d-agentpool1-md-7h9t4-694gg
Vytvoření interaktivního shellového připojení k uzlu pomocí IP adresy
Připojení k 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 se můžete přes SSH připojit k uzlům clusteru a také spouštět kubectl příkazy proti clusteru pomocí souboru kubeconfig.
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, který odpovídá názvu clusteru, klikněte na něj, abyste přešli na domovskou stránku Kubernetes Clusteru.
- Jakmile najdete správný prostředek a jeho název odpovídá názvu clusteru, přejděte v levé nabídce do sekce 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.
Načtení alternativního názvu subjektu (SAN) pro cluster
Spuštěním následujících příkazů načtěte seznam alternativních názvů subjektů (SAN) přijatých certifikátem serveru rozhraní API Kubernetes. Nejprve přejděte k uzlu řídicí roviny buď pomocí Azure Arc pro servery , nebo pomocí interaktivního prostředí s POUŽITÍM IP adresy. Tím získáte přístup k certifikátu používanému serverem rozhraní API. Obsah certifikátu můžete zkontrolovat pomocí následujícího příkazu s oprávněními sudo:
sudo openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text -noout
Každá z sítí SAN je identifikována předponou DNS:. Zvolte pouze sítě SAN, které dodržují zadanou konvenci pojmenování clusterName-resourceGroup<><>, protože je to jedinečné ve srovnání s jinými sítěmi SAN, jako je kubernetes.default.svc.cluster.local.
Další kroky
V následujících článcích se dozvíte více o clusteru Kubernetes operátora Azure Nexus.