Uwidacznianie usługi AKS za pośrednictwem protokołu HTTP lub HTTPS przy użyciu usługi Application Gateway
Te samouczki pomagają zilustrować użycie zasobów ruchu przychodzącego kubernetes w celu uwidocznienia przykładowej usługi Kubernetes za pośrednictwem bramy aplikacja systemu Azure za pośrednictwem protokołu HTTP lub HTTPS.
Napiwek
Zobacz również Co to jest usługa Application Gateway dla kontenerów.
Wymagania wstępne
ingress-azure
Zainstalowany pakiet helm.- Wdrożenie greenfield: jeśli zaczynasz od podstaw, zapoznaj się z tymi instrukcjami instalacji, które przedstawiają kroki wdrażania klastra usługi AKS za pomocą usługi Application Gateway i instalowania kontrolera ruchu przychodzącego bramy aplikacji w klastrze usługi AKS.
- Wdrożenie rozwiązania Brownfield: jeśli masz istniejący klaster usługi AKS i usługę Application Gateway, zapoznaj się z tymi instrukcjami, aby zainstalować kontroler ruchu przychodzącego bramy aplikacji w klastrze usługi AKS.
- Jeśli chcesz używać protokołu HTTPS w tej aplikacji, potrzebujesz certyfikatu x509 i jego klucza prywatnego.
Wdrażanie guestbook
aplikacji
Aplikacja guestbook to kanoniczna aplikacja Kubernetes, która składa się z frontonu internetowego interfejsu użytkownika, zaplecza i bazy danych Redis. Domyślnie guestbook
aplikacja jest uwidaczniana za pośrednictwem usługi o nazwie frontend
na porcie 80
. Bez zasobu ruchu przychodzącego Kubernetes usługa nie jest dostępna spoza klastra usługi AKS. Używamy aplikacji i konfigurujemy zasoby ruchu przychodzącego w celu uzyskania dostępu do aplikacji za pośrednictwem protokołów HTTP i HTTPS.
Aby wdrożyć aplikację guestbook, wykonaj poniższe instrukcje.
- Pobierz
guestbook-all-in-one.yaml
z tego miejsca - Wdróż
guestbook-all-in-one.yaml
w klastrze usługi AKS, uruchamiając polecenie
kubectl apply -f guestbook-all-in-one.yaml
guestbook
Teraz aplikacja została wdrożona.
Uwidacznianie usług za pośrednictwem protokołu HTTP
Aby uwidocznić aplikację book gościa, użyj następującego zasobu ruchu przychodzącego:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: guestbook
annotations:
kubernetes.io/ingress.class: azure/application-gateway
spec:
rules:
- http:
paths:
- backend:
serviceName: frontend
servicePort: 80
Ten ruch przychodzący uwidacznia frontend
usługę guestbook-all-in-one
wdrożenia jako domyślne zaplecze usługi Application Gateway.
Zapisz powyższy zasób ruchu przychodzącego jako ing-guestbook.yaml
.
Wdróż
ing-guestbook.yaml
, uruchamiając polecenie:kubectl apply -f ing-guestbook.yaml
Sprawdź dziennik kontrolera ruchu przychodzącego pod kątem stanu wdrożenia.
guestbook
Teraz aplikacja powinna być dostępna. Dostępność można sprawdzić, odwiedzając publiczny adres usługi Application Gateway.
Uwidacznianie usług za pośrednictwem protokołu HTTPS
Bez określonej nazwy hosta
Bez określania nazwy hosta usługa elementu guestbook jest dostępna we wszystkich nazwach hostów wskazujących bramę aplikacji.
Przed wdrożeniem ruchu przychodzącego należy utworzyć wpis tajny kubernetes do hostowania certyfikatu i klucza prywatnego. Wpis tajny kubernetes można utworzyć, uruchamiając polecenie
kubectl create secret tls <guestbook-secret-name> --key <path-to-key> --cert <path-to-cert>
Zdefiniuj następujący ruch przychodzący. W ruchu przychodzącym określ nazwę wpisu tajnego
secretName
w sekcji .apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: guestbook annotations: kubernetes.io/ingress.class: azure/application-gateway spec: tls: - secretName: <guestbook-secret-name> rules: - http: paths: - backend: serviceName: frontend servicePort: 80
Uwaga
Zastąp element
<guestbook-secret-name>
w powyższym zasobie ruchu przychodzącego nazwą wpisu tajnego. Zapisz powyższy zasób ruchu przychodzącego w nazwieing-guestbook-tls.yaml
pliku .Wdróż element ing-guestbook-tls.yaml, uruchamiając polecenie
kubectl apply -f ing-guestbook-tls.yaml
Sprawdź dziennik kontrolera ruchu przychodzącego pod kątem stanu wdrożenia.
guestbook
Teraz aplikacja jest dostępna zarówno w protokole HTTP, jak i HTTPS.
Z określoną nazwą hosta
Można również określić nazwę hosta na ruchu przychodzącym w celu multipleksowania konfiguracji i usług TLS. Określając nazwę hosta, usługa elementu guestbook jest dostępna tylko na określonym hoście.
Zdefiniuj następujący ruch przychodzący. W ruchu przychodzącym określ nazwę wpisu tajnego w
secretName
sekcji i zastąp odpowiednio nazwę hosta whosts
sekcji.apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: guestbook annotations: kubernetes.io/ingress.class: azure/application-gateway spec: tls: - hosts: - <guestbook.contoso.com> secretName: <guestbook-secret-name> rules: - host: <guestbook.contoso.com> http: paths: - backend: serviceName: frontend servicePort: 80
Wdróż
ing-guestbook-tls-sni.yaml
, uruchamiając poleceniekubectl apply -f ing-guestbook-tls-sni.yaml
Sprawdź dziennik kontrolera ruchu przychodzącego pod kątem stanu wdrożenia.
guestbook
Teraz aplikacja jest dostępna zarówno na protokole HTTP, jak i HTTPS tylko na określonym hoście (<guestbook.contoso.com>
w tym przykładzie).
Integracja z innymi usługami
Następujący ruch przychodzący umożliwia dodanie innych ścieżek do tego ruchu przychodzącego i przekierowanie tych ścieżek do innych usług:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: guestbook
annotations:
kubernetes.io/ingress.class: azure/application-gateway
spec:
rules:
- http:
paths:
- path: </other/*>
backend:
serviceName: <other-service>
servicePort: 80
- backend:
serviceName: frontend
servicePort: 80