Samouczek: wdrażanie węzłów wirtualnych w usłudze Azure Container Instances w klastrze usługi Azure Kubernetes Service
W tym samouczku użyjesz witryny Azure Portal do wdrożenia klastra usługi Azure Kubernetes Service (AKS). Po wdrożeniu klastra usługi AKS użyj wykresu helm do wdrożenia węzłów wirtualnych w usłudze Azure Container Instances.
Wymagania wstępne
W tym samouczku założono, że masz zainstalowane następujące narzędzia:
- Interfejs wiersza polecenia platformy Azure
- kubectl (wersja 1.29+)
- Helm
- Usługa Git
Logowanie się do platformy Azure
Zaloguj się do witryny Azure Portal pod adresem https://portal.azure.com
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Tworzenie sieci wirtualnej dla klastra usługi AKS
Na stronie głównej witryny Azure Portal wybierz pozycję Utwórz zasób.
Wybierz pozycję Sieć wirtualna>.
Na stronie Podstawy wybierz subskrypcję i wprowadź następujące wartości:
- Grupa zasobów: Utwórz nową>
virtualnodesresourcegroup
- Nazwa sieci wirtualnej:
myvirtualnetwork
- Region:
East US
Na stronie Adresy IP skonfiguruj następujące przestrzenie adresowe i podsieci:
- 10.0.0.0/16:
default
podsieć o rozmiarze /24 - 10.1.0.0/16:
aks
podsieć o rozmiarze /16 - 10.2.0.0/16:
cg
podsieć o rozmiarze /16- Podsieć
cg
musi mieć delegowanie podsieci do .Microsoft.ContainerInstance/containerGroups
- Jeśli zasobniki uruchomione w węzłach wirtualnych wymagają sieci wychodzącej, należy skonfigurować bramę translatora adresów sieciowych i skonfigurować podsieć do jej używania
cg
. Aby uzyskać instrukcje dotyczące tej konfiguracji, zobacz Konfigurowanie bramy translatora adresów sieciowych dla statycznego adresu IP dla ruchu wychodzącego z grupy kontenerów.
- Podsieć
Pozostaw wartości domyślne wszystkich innych ustawień, a następnie wybierz pozycję Przejrzyj i utwórz.
Po zakończeniu walidacji zostanie wyświetlone podsumowanie ustawień sieci wirtualnej. Wybierz pozycję Utwórz , aby przesłać żądanie wdrożenia sieci wirtualnej.
Po rozpoczęciu wdrażania zostanie wyświetlone powiadomienie wskazujące, że wdrożenie jest w toku. Po wdrożeniu sieci wirtualnej zostanie wyświetlone inne powiadomienie.
Tworzenie klastra usługi AKS
Na stronie głównej witryny Azure Portal wybierz pozycję Utwórz zasób.
Wybierz pozycję Kontenery>usługi Azure Kubernetes Service (AKS).
Na stronie Podstawy wybierz tę samą subskrypcję używaną do tworzenia sieci wirtualnej i wprowadź następujące wartości:
- Grupa zasobów:
virtualnodesresourcegroup
- Konfiguracja ustawień wstępnych klastra:
Dev/Test
- Nazwa klastra Kubernetes:
virtualnodescluster
- Region:
East US
- Wersja platformy Kubernetes: dowolna wersja rozpoczynająca się od
1.29.
— na przykład1.29.10
- Automatyczne uaktualnianie:
Enabled with patch
Na stronie Pule węzłów wybierz dowolną jednostkę SKU maszyny wirtualnej z co najmniej 4 procesorami wirtualnymi i 16 GB pamięci RAM dla agentpool
puli węzłów. Te węzły będą używane do hostowania infrastruktury węzłów wirtualnych. Nie wybieraj Enable virtual nodes
— dotyczy to poprzedniej oferty węzłów wirtualnych dla usługi AKS.
Na stronie Sieć wprowadź następujące wartości:
- Konfiguracja sieci:
Azure CNI Node Subnet
- Przynieś własną sieć wirtualną platformy Azure:
Enabled
- Sieć wirtualna:
myvirtualnetwork
- Podsieć klastra:
aks
- Zakres adresów usługi Kubernetes:
10.4.0.0/16
- Adres IP usługi DNS kubernetes:
10.4.0.10
- Zasady sieciowe:
Calico
Pozostaw wartości domyślne wszystkich innych ustawień, a następnie wybierz pozycję Przejrzyj i utwórz.
Po zakończeniu walidacji zostanie wyświetlone podsumowanie ustawień klastra usługi AKS. Wybierz pozycję Utwórz , aby przesłać żądanie wdrożenia klastra usługi AKS.
Po rozpoczęciu wdrażania zostanie wyświetlone powiadomienie wskazujące, że wdrożenie jest w toku. Po wdrożeniu klastra usługi AKS zostanie wyświetlone inne powiadomienie.
Przypisywanie uprawnień do tożsamości zarządzanej klastra usługi AKS
Podczas wdrażania klastra usługi AKS usługa AKS tworzy grupę zasobów węzła w tej samej subskrypcji w celu hostowania infrastruktury klastra. Domyślnie ta grupa zasobów ma nazwę taką jak MC_<resource group>_<AKS cluster>_<region>
. Na potrzeby tego samouczka grupa zasobów węzła powinna mieć nazwę MC_virtualnodesresourcegroup_virtualnodescluster_eastus
.
Jedną z zasobów utworzonych w grupie zasobów węzła jest tożsamość zarządzana o nazwie virtualnodescluster_agentpool
. Przejdź do tej tożsamości zarządzanej i wybierz pozycję Przypisania ról platformy Azure. Następnie dodaj następujące dwa przypisania ról:
- Zakres:
Resource group
- Subskrypcje:
<your subscription name>
- Grupa zasobów:
MC_virtualnodesresourcegroup_virtualnodescluster_eastus
- Rola:
Contributor
To przypisanie roli umożliwia tworzenie grup kontenerów ACI w grupie zasobów węzła.
- Zakres:
Resource group
- Subskrypcje:
<your subscription name>
- Grupa zasobów:
virtualnodesresourcegroup
- Rola:
Contributor
To przypisanie roli umożliwia wstrzyknięcie grup kontenerów usługi ACI do sieci wirtualnej utworzonej w tej grupie zasobów.
Instalowanie węzłów wirtualnych w usłudze Azure Container Instances przy użyciu pakietu Helm
Użyj interfejsu wiersza polecenia platformy Azure, aby ściągnąć konfigurację i poświadczenia utworzonego klastra usługi AKS. Spowoduje to skonfigurowanie narzędzia kubectl dla klastra usługi AKS.
az login
az account set --subscription <your subscription ID>
az aks get-credentials --name virtualnodescluster --resource-group virtualnodesresourcegroup
Ponadto zarejestrujemy dostawcę zasobów ACI w ramach subskrypcji, aby można było wdrożyć grupy kontenerów.
az provider register -n Microsoft.ContainerInstance
Sklonuj repozytorium GitHub virtualnodesOnAzureContainerInstances . Pakiet Helm do instalowania węzłów wirtualnych w usłudze Azure Container Instances znajduje się w folderze Helm/virtualnode
.
Zainstaluj pakiet Helm przy użyciu następującego polecenia:
helm install virtualnode <cloned repository location>\Helm\virtualnode
W ciągu minuty nowy węzeł wirtualny zostanie zarejestrowany i w stanie Gotowe w klastrze usługi AKS. Stan węzłów klastra usługi AKS można sprawdzić za pomocą narzędzia kubectl.
kubectl get nodes
Wdrażanie pierwszego zasobnika w węźle wirtualnym
Możesz wchodzić w interakcje z węzłami wirtualnymi, takimi jak wszystkie inne węzły kubernetes. Na przykład poniższy przykładowy kod YAML wdroży zasobnik na węźle wirtualnym w klastrze usługi AKS — zwróć uwagę na użycie selektorów węzłów i tolerancji, aby odpowiednio umieścić zasobnik. Kod YAML można wdrożyć przy użyciu narzędzia kubectl apply.
apiVersion: v1
kind: Pod
metadata:
annotations:
name: demo-pod
spec:
containers:
- command:
- /bin/bash
- -c
- 'counter=1; while true; do echo "Hello, World! Counter: $counter"; counter=$((counter+1)); sleep 1; done'
image: mcr.microsoft.com/azure-cli
name: hello-world-counter
resources:
limits:
cpu: 2250m
memory: 2256Mi
requests:
cpu: 100m
memory: 128Mi
nodeSelector:
virtualization: virtualnode2
tolerations:
- effect: NoSchedule
key: virtual-kubelet.io/provider
operator: Exists
Po wdrożeniu zasobnika możesz wchodzić z nim w interakcje dokładnie tak, jak w przypadku "normalnego" zasobnika Kubernetes.
Aby na przykład wyświetlić stan zasobnika i zdarzenia (przydatne do znajdowania błędów!):
kubectl describe pods demo-pod
Aby wyświetlić dzienniki zasobnika:
kubectl logs demo-pod
Aby uzyskać powłokę dla zasobnika:
kubectl exec demo-pod -it -- /bin/bash
Następne kroki
W tym samouczku utworzono klaster usługi AKS w witrynie Azure Portal, wdrożono węzły wirtualne w usłudze Azure Container Instances przy użyciu wykresu programu Helm i wdrożono zasobnik w węźle wirtualnym. Teraz masz podstawową znajomość sposobu uruchamiania zasobników Kubernetes w węźle wirtualnym i możesz korzystać z większości możliwości i konstrukcji platformy Kubernetes na tych zasobnikach.
Jeśli chcesz korzystać z wyspecjalizowanych funkcji lub zachowań węzłów wirtualnych dla zasobników, zobacz Dostosowywanie zasobników.
Jeśli chcesz dostosować instalację węzła wirtualnego, zobacz Dostosowywanie węzła.
Jeśli planujesz wdrożyć obciążenia o dużej skali (tysiące zasobników na minutę) w węzłach wirtualnych, mamy najlepsze rozwiązania i zalecenia.