Tworzenie kontenerów systemu Windows Server
Dotyczy: Azure Stack HCI, wersja 23H2
W tym artykule użyjesz interfejsu wiersza polecenia platformy Azure do wdrożenia puli węzłów w istniejącym klastrze usługi AKS, który uruchamia kontenery systemu Windows Server. Przykładową aplikację ASP.NET wdrożysz również w kontenerze systemu Windows Server w klastrze.
Wymagania wstępne
Utwórz klaster usługi AKS zgodnie z instrukcjami w temacie How to create AKS clusters (Jak utworzyć klastry usługi AKS).
Dodawanie puli węzłów
Domyślnie klaster Kubernetes jest tworzony za pomocą puli węzłów, która może uruchamiać kontenery systemu Linux. Należy dodać kolejną pulę węzłów, która może uruchamiać kontenery systemu Windows Server obok puli węzłów systemu Linux.
Dodaj pulę węzłów z hostami kontenerów systemu Windows przy użyciu az aksarc nodepool add
polecenia z parametrem --os-type Windows
. Jeśli jednostka SKU systemu operacyjnego nie jest określona, pula węzłów jest ustawiona na domyślny system operacyjny oparty na wersji kubernetes klastra. Windows Server 2022 to domyślny system operacyjny dla platformy Kubernetes w wersji 1.25.0 lub nowszej. Windows Server 2019 to domyślny system operacyjny dla wcześniejszych wersji.
- Aby użyć systemu Windows Server 2019, określ następujące parametry:
os-type
ustaw wartośćWindows
.os-sku
ustaw wartośćWindows2019
.
- Aby użyć systemu Windows Server 2022, określ następujące parametry:
os-type
ustaw wartośćWindows
.os-sku
ustaw wartośćWindows2022
(opcjonalnie).
Następujące polecenie tworzy nową pulę węzłów o nazwie $mynodepool
i dodaje ją do $myAKSCluster
jednego węzła systemu Windows 2019.
az aksarc nodepool add --resource-group $myResourceGroup --cluster-name $myAKSCluster --name $mynodepool --node-count 1 --os-type Windows --os-sku Windows2019
Nawiązywanie połączenia z klastrem usługi AKS
Teraz możesz nawiązać połączenie z klastrem Kubernetes, uruchamiając az connectedk8s proxy
polecenie z komputera lokalnego. Przed uruchomieniem tego polecenia upewnij się, że logujesz się do platformy Azure. Jeśli masz wiele subskrypcji platformy Azure, wybierz odpowiedni identyfikator subskrypcji przy użyciu polecenia az account set .
To polecenie pobiera narzędzie kubeconfig klastra Kubernetes na maszynę lokalną i otwiera kanał połączenia serwera proxy z lokalnym klastrem Kubernetes. Kanał jest otwarty tak długo, jak to polecenie jest uruchamiane. Niech to polecenie będzie uruchamiane tak długo, jak chcesz uzyskać dostęp do klastra. Jeśli polecenie zostanie upłynął limit czasu, zamknij okno interfejsu wiersza polecenia, otwórz nowe, a następnie uruchom ponownie polecenie.
Aby pomyślnie uruchomić następujące polecenie, musisz mieć uprawnienia Współautor w grupie zasobów, która hostuje klaster usługi AKS:
az connectedk8s proxy --name $aksclustername --resource-group $resource_group --file .\aks-arc-kube-config
Oczekiwane dane wyjściowe:
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.
Zachowaj działanie tej sesji i połącz się z klastrem Kubernetes z innego terminalu/wiersza polecenia. Sprawdź, czy możesz nawiązać połączenie z klastrem Kubernetes, uruchamiając polecenie kubectl get. To polecenie zwraca listę węzłów klastra:
kubectl get node -A --kubeconfig .\aks-arc-kube-config
Poniższy przykład danych wyjściowych przedstawia węzeł utworzony w poprzednich krokach. Upewnij się, że stan węzła to Gotowe:
NAME STATUS ROLES AGE VERSION
moc-lesdc78871d Ready control-plane 6d8h v1.26.3
moc-lupeeyd0f8c Ready <none> 6d8h v1.26.3
moc-ww2c8d5ranw Ready <none> 7m18s v1.26.3
Wdrażanie aplikacji
Plik manifestu kubernetes definiuje żądany stan klastra, taki jak obrazy kontenerów do uruchomienia.
Za pomocą manifestu YAML można utworzyć wszystkie obiekty potrzebne do uruchomienia przykładowej aplikacji ASP.NET w kontenerze systemu Windows Server. Ten manifest obejmuje wdrożenie platformy Kubernetes dla przykładowej aplikacji ASP.NET oraz usługę Kubernetes w celu uzyskania dostępu do aplikacji z Internetu.
Przykładowa aplikacja ASP.NET jest udostępniana w ramach przykładów .NET Framework i działa w kontenerze systemu Windows Server. Usługa AKS wymaga, aby kontenery systemu Windows Server bazły na obrazach systemu Windows Server 2019 lub nowszych. Plik manifestu kubernetes musi również zdefiniować selektor węzła , aby upewnić się, że zasobniki przykładowej aplikacji ASP.NET są zaplanowane w węźle, który może uruchamiać kontenery systemu Windows Server.
Utwórz plik o nazwie sample.yaml i skopiuj go w następującej definicji YAML:
apiVersion: apps/v1 kind: Deployment metadata: name: sample labels: app: sample spec: replicas: 1 template: metadata: name: sample labels: app: sample spec: nodeSelector: "kubernetes.io/os": windows containers: - name: sample image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp resources: limits: cpu: 1 memory: 800M ports: - containerPort: 80 selector: matchLabels: app: sample --- apiVersion: v1 kind: Service metadata: name: sample spec: type: LoadBalancer ports: - protocol: TCP port: 80 selector: app: sample
Aby uzyskać podział plików manifestu YAML, zobacz Wdrożenia i manifesty YAML.
Wdróż aplikację przy użyciu polecenia kubectl apply i podaj nazwę manifestu YAML:
kubectl apply -f sample.yaml --kubeconfig .\\aks-arc-kube-config
W poniższych przykładowych danych wyjściowych przedstawiono pomyślne utworzenie wdrożenia i usługi:
deployment.apps/sample created
service/sample created
Testowanie aplikacji
Podczas uruchamiania aplikacji usługa Kubernetes uwidacznia fronton aplikacji w Internecie. Ten proces może potrwać kilka minut. Czasami aprowizacja usługi może potrwać dłużej niż kilka minut. Poczekaj do 10 minut na aprowizację.
Monitorowanie postępu przy użyciu polecenia kubectl get service za pomocą argumentu
--watch
.kubectl get service sample --watch --kubeconfig .\aks-arc-kube-config
Początkowo dane wyjściowe pokazują adres EXTERNAL-IP dla przykładowej usługi jako oczekujące:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE sample LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
Gdy adres EXTERNAL-IP zmieni się z oczekujące na adres IP, użyj klawiszy CTRL-C, aby zatrzymać proces kubectl watch. Następujące przykładowe dane wyjściowe przedstawiają prawidłowy publiczny adres IP przypisany do usługi:
sample LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Zobacz przykładową aplikację w akcji, otwierając przeglądarkę internetową na zewnętrzny adres IP i port przykładowej usługi.
Jeśli podczas próby załadowania strony zostanie wyświetlony limit czasu połączenia, sprawdź, czy przykładowa aplikacja jest gotowa przy użyciu
kubectl get pods --watch
polecenia . Czasami kontener systemu Windows nie jest uruchamiany przez czas udostępnienia zewnętrznego adresu IP.
Usuwanie puli węzłów
Usuń pulę az akshybrid nodepool delete
węzłów przy użyciu polecenia .
az aksarc nodepool delete -g $myResourceGroup --cluster-name $myAKSCluster --name $mynodepool --no-wait
Następne kroki
W tym artykule wdrożono pulę węzłów systemu Windows w istniejącym klastrze usługi AKS i wdrożono w nim przykładową aplikację ASP.NET w kontenerze systemu Windows Server.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla