Zarządzany ruch przychodzący NGINX z dodatkiem routingu aplikacji
Jednym ze sposobów kierowania ruchu protokołu HTTP (Hypertext Transfer Protocol) i bezpiecznego (HTTPS) do aplikacji działających w klastrze usługi Azure Kubernetes Service (AKS) jest użycie obiektu Ruchu przychodzącego Kubernetes. Podczas tworzenia obiektu ruchu przychodzącego, który używa klas ruchu przychodzącego NGINX dodatku routingu aplikacji, dodatek tworzy, konfiguruje i zarządza co najmniej jednym kontrolerem ruchu przychodzącego w klastrze usługi AKS.
W tym artykule pokazano, jak wdrożyć i skonfigurować podstawowy kontroler ruchu przychodzącego w klastrze usługi AKS.
Dodatek routingu aplikacji z funkcjami NGINX
Dodatek routingu aplikacji z serwerem NGINX zapewnia następujące elementy:
- Łatwa konfiguracja zarządzanych kontrolerów ruchu przychodzącego NGINX na podstawie kontrolera ruchu przychodzącego NGINX Platformy Kubernetes.
- Integracja z usługą Azure DNS na potrzeby zarządzania strefami publicznymi i prywatnymi
- Kończenie żądań SSL z certyfikatami przechowywanymi w usłudze Azure Key Vault.
Inne konfiguracje można znaleźć w temacie:
- Konfiguracja dns i protokołu SSL
- Konfiguracja dodatku routingu aplikacji
- Skonfiguruj wewnętrzny kontroler ruchu przychodzącego NGIX dla prywatnej strefy DNS platformy Azure.
Po wycofaniu usługi Open Service Mesh (OSM) przez Cloud Native Computing Foundation (CNCF) użycie dodatku routingu aplikacji z OSM nie jest zalecane.
Wymagania wstępne
- Subskrypcja platformy Azure. Jeśli nie masz subskrypcji Azure, możesz utworzyć bezpłatne konto Azure.
- Interfejs wiersza polecenia platformy Azure w wersji 2.54.0 lub nowszej został zainstalowany i skonfigurowany. Uruchom polecenie
az --version
, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
Ograniczenia
- Dodatek routingu aplikacji obsługuje maksymalnie pięć stref usługi Azure DNS.
- Wszystkie globalne strefy DNS platformy Azure zintegrowane z dodatkiem muszą znajdować się w tej samej grupie zasobów.
- Wszystkie prywatne strefy DNS platformy Azure zintegrowane z dodatkiem muszą znajdować się w tej samej grupie zasobów.
- Edytowanie pliku ingress-nginx
ConfigMap
wapp-routing-system
przestrzeni nazw nie jest obsługiwane. - Następujące adnotacje fragmentu kodu są blokowane i uniemożliwią skonfigurowanie ruchu przychodzącego:
load_module
,root
proxy_pass
lua_package
{
_by_lua
'
location
serviceaccount
}
.
Włączanie routingu aplikacji przy użyciu interfejsu wiersza polecenia platformy Azure
Włączanie w nowym klastrze
Aby włączyć routing aplikacji w nowym klastrze, użyj az aks create
polecenia , określając flagę --enable-app-routing
.
az aks create \
--resource-group <ResourceGroupName> \
--name <ClusterName> \
--location <Location> \
--enable-app-routing \
--generate-ssh-keys
Włączanie w istniejącym klastrze
Aby włączyć routing aplikacji w istniejącym klastrze, użyj az aks approuting enable
polecenia lub az aks enable-addons
z parametrem ustawionym --addons
na http_application_routing
.
# az aks approuting enable
az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
# az aks enable-addons
az aks enable-addons --resource-group <ResourceGroupName> --name <ClusterName> --addons http_application_routing
Nawiązywanie połączenia z klastrem usługi AKS
Aby nawiązać połączenie z klastrem Kubernetes z komputera lokalnego, należy użyć narzędzia kubectl, czyli klienta wiersza polecenia usługi Kubernetes. Możesz zainstalować ją lokalnie przy użyciu az aks install-cli
polecenia . Jeśli korzystasz z usługi Azure Cloud Shell, narzędzie kubectl
jest już zainstalowane.
Skonfiguruj, kubectl
aby nawiązać połączenie z klastrem Kubernetes przy użyciu polecenia az aks get-credentials .
az aks get-credentials --resource-group <ResourceGroupName> --name <ClusterName>
Wdrażanie aplikacji
Dodatek routingu aplikacji używa adnotacji w obiektach ruchu przychodzącego Kubernetes w celu utworzenia odpowiednich zasobów.
Utwórz przestrzeń nazw aplikacji o nazwie
hello-web-app-routing
, aby uruchomić przykładowe zasobniki przy użyciukubectl create namespace
polecenia .kubectl create namespace hello-web-app-routing
Utwórz wdrożenie, kopiując następujący manifest YAML do nowego pliku o nazwie deployment.yaml i zapisz plik na komputerze lokalnym.
apiVersion: apps/v1 kind: Deployment metadata: name: aks-helloworld namespace: hello-web-app-routing spec: replicas: 1 selector: matchLabels: app: aks-helloworld template: metadata: labels: app: aks-helloworld spec: containers: - name: aks-helloworld image: mcr.microsoft.com/azuredocs/aks-helloworld:v1 ports: - containerPort: 80 env: - name: TITLE value: "Welcome to Azure Kubernetes Service (AKS)"
Utwórz usługę, kopiując następujący manifest YAML do nowego pliku o nazwie service.yaml i zapisując plik na komputerze lokalnym.
apiVersion: v1 kind: Service metadata: name: aks-helloworld namespace: hello-web-app-routing spec: type: ClusterIP ports: - port: 80 selector: app: aks-helloworld
Tworzenie obiektu ruchu przychodzącego
Dodatek routingu aplikacji tworzy klasę ruchu przychodzącego w klastrze o nazwie webapprouting.kubernetes.azure.com. Podczas tworzenia obiektu ruchu przychodzącego za pomocą tej klasy aktywuje dodatek.
Skopiuj następujący manifest YAML do nowego pliku o nazwie ingress.yaml i zapisz plik na komputerze lokalnym.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: aks-helloworld namespace: hello-web-app-routing spec: ingressClassName: webapprouting.kubernetes.azure.com rules: - host: <Hostname> http: paths: - backend: service: name: aks-helloworld port: number: 80 path: / pathType: Prefix
Utwórz zasoby klastra przy użyciu
kubectl apply
polecenia .kubectl apply -f deployment.yaml -n hello-web-app-routing
W poniższych przykładowych danych wyjściowych przedstawiono utworzony zasób:
deployment.apps/aks-helloworld created
kubectl apply -f service.yaml -n hello-web-app-routing
W poniższych przykładowych danych wyjściowych przedstawiono utworzony zasób:
service/aks-helloworld created
kubectl apply -f ingress.yaml -n hello-web-app-routing
W poniższych przykładowych danych wyjściowych przedstawiono utworzony zasób:
ingress.networking.k8s.io/aks-helloworld created
Sprawdź, czy utworzono zarządzany ruch przychodzący
Możesz sprawdzić, czy zarządzany ruch przychodzący został utworzony przy użyciu kubectl get ingress
polecenia .
kubectl get ingress -n hello-web-app-routing
W poniższych przykładowych danych wyjściowych przedstawiono utworzony zarządzany ruch przychodzący:
NAME CLASS HOSTS ADDRESS PORTS AGE
aks-helloworld webapprouting.kubernetes.azure.com myapp.contoso.com 20.51.92.19 80, 443 4m
Usuwanie dodatku routingu aplikacji
Aby usunąć skojarzona przestrzeń nazw, użyj kubectl delete namespace
polecenia .
kubectl delete namespace hello-web-app-routing
Aby usunąć dodatek routingu aplikacji z klastra, użyj az aks approuting disable
polecenia .
az aks approuting disable --name myAKSCluster --resource-group myResourceGroup
Gdy dodatek routingu aplikacji jest wyłączony, niektóre zasoby Kubernetes mogą pozostać w klastrze. Te zasoby obejmują configMaps i wpisy tajne i są tworzone w przestrzeni nazw app-routing-system. Jeśli chcesz, możesz usunąć te zasoby.
Następne kroki
Konfigurowanie niestandardowych konfiguracji ruchu przychodzącego pokazuje, jak utworzyć zaawansowaną konfigurację ruchu przychodzącego i skonfigurować domenę niestandardową przy użyciu usługi Azure DNS do zarządzania strefami DNS i konfigurowania bezpiecznego ruchu przychodzącego.
Aby zintegrować się z wewnętrznym modułem równoważenia obciążenia platformy Azure i skonfigurować prywatną strefę usługi Azure DNS w celu włączenia rozpoznawania prywatnych punktów końcowych w celu rozpoznawania określonych domen, zobacz Konfigurowanie wewnętrznego kontrolera ruchu przychodzącego NGINX dla prywatnej strefy DNS platformy Azure.
Dowiedz się więcej na temat monitorowania metryk kontrolera ruchu przychodzącego-nginx dołączonego do dodatku routingu aplikacji za pomocą rozwiązania Prometheus w narzędziu Grafana (wersja zapoznawcza) w ramach analizowania wydajności i użycia aplikacji.
Azure Kubernetes Service
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