Zveřejnění služby AKS přes PROTOKOL HTTP nebo HTTPS pomocí služby Application Gateway
Tento článek ukazuje využití prostředků příchozího přenosu dat Kubernetes k zveřejnění ukázkové služby Azure Kubernetes Service (AKS) prostřednictvím brány Aplikace Azure lication přes PROTOKOL HTTP nebo HTTPS.
Tip
Zvažte službu Application Gateway pro kontejnery pro vaše řešení příchozího přenosu dat Kubernetes.
Požadavky
- Nainstalovaný
ingress-azure
chart Helm:- Nasazení Greenfieldu: Pokud začínáte úplně od začátku, projděte si tyto pokyny k instalaci, které popisují postup nasazení clusteru AKS se službou Application Gateway a instalaci kontroleru příchozího přenosu dat služby Application Gateway (AGIC) do clusteru AKS.
- Nasazení Brownfieldu: Pokud máte existující cluster AKS a nasazení služby Application Gateway, přečtěte si tyto pokyny k instalaci AGIC v clusteru AKS.
- Pokud chcete pro tuto aplikaci použít HTTPS, certifikát x509 a jeho privátní klíč.
Nasazení aplikace guestbooku
Aplikace guestbook
je kanonická aplikace Kubernetes, která se skládá z front-endu webového uživatelského rozhraní, back-endu a databáze Redis.
Ve výchozím nastavení guestbook
zpřístupňuje aplikaci prostřednictvím služby s názvem frontend
na portu 80
. Bez prostředku příchozího přenosu dat Kubernetes není služba přístupná mimo cluster AKS. Použijete aplikaci a nastavíte prostředky příchozího přenosu dat pro přístup k aplikaci prostřednictvím protokolu HTTP a HTTPS.
guestbook
Nasazení aplikace:
Stáhněte si
guestbook-all-in-one.yaml
z této stránky GitHubu.Nasazení
guestbook-all-in-one.yaml
do clusteru AKS spuštěním tohoto příkazu:kubectl apply -f guestbook-all-in-one.yaml
Zveřejnění služeb přes PROTOKOL HTTP
Pokud chcete aplikaci zveřejnit guestbook
, použijte následující prostředek příchozího přenosu dat:
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
Tento příchozí přenos dat zveřejňuje frontend
službu guestbook-all-in-one
nasazení jako výchozí back-end nasazení služby Application Gateway.
Uložte předchozí prostředek příchozího přenosu dat jako ing-guestbook.yaml
:
Nasazení
ing-guestbook.yaml
spuštěním tohoto příkazu:kubectl apply -f ing-guestbook.yaml
Zkontrolujte stav nasazení v protokolu kontroleru příchozího přenosu dat.
guestbook
Aplikace by teď měla být dostupná. Dostupnost můžete zkontrolovat tak, že navštívíte veřejnou adresu nasazení služby Application Gateway.
Zveřejnění služeb přes HTTPS
Bez zadaného názvu hostitele
Pokud nezadáte název hostitele, guestbook
bude služba dostupná ve všech názvech hostitelů, které odkazují na nasazení služby Application Gateway.
Před nasazením prostředku příchozího přenosu dat vytvořte tajný klíč Kubernetes pro hostování certifikátu a privátního klíče:
kubectl create secret tls <guestbook-secret-name> --key <path-to-key> --cert <path-to-cert>
Definujte následující prostředek příchozího přenosu dat.
secretName
V části nahraďte<guestbook-secret-name>
názvem tajného kódu.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
Uložte prostředek příchozího přenosu dat do souboru s názvem
ing-guestbook-tls.yaml
.Nasazení
ing-guestbook-tls.yaml
spuštěním tohoto příkazu:kubectl apply -f ing-guestbook-tls.yaml
Zkontrolujte stav nasazení v protokolu kontroleru příchozího přenosu dat.
guestbook
Aplikace je teď dostupná na HTTP i HTTPS.
Se zadaným názvem hostitele
Můžete také zadat název hostitele pro prostředek příchozího přenosu dat do vícenásobných konfigurací a služeb TLS. Když zadáte název hostitele, guestbook
bude služba dostupná pouze na zadaném hostiteli.
Definujte následující prostředek příchozího přenosu dat.
secretName
V části nahraďte<guestbook-secret-name>
názvem tajného kódu. V částechhosts
ahost
částech nahraďte<guestbook.contoso.com>
názvem hostitele.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
Nasazení
ing-guestbook-tls-sni.yaml
spuštěním tohoto příkazu:kubectl apply -f ing-guestbook-tls-sni.yaml
Zkontrolujte stav nasazení v protokolu kontroleru příchozího přenosu dat.
guestbook
Aplikace je teď dostupná na http i HTTPS, pouze na zadaném hostiteli.
Integrace s ostatními službami
Pomocí následujícího prostředku příchozího přenosu dat přidejte cesty a tyto cesty přesměrujte na jiné služby:
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