Zveřejnění služby AKS přes PROTOKOL HTTP nebo HTTPS pomocí služby Application Gateway
Tyto kurzy vám pomůžou ilustrovat využití prostředků příchozího přenosu dat Kubernetes k zveřejnění ukázkové služby Kubernetes prostřednictvím brány Aplikace Azure přes PROTOKOL HTTP nebo HTTPS.
Tip
Podívejte se také na téma Co je Application Gateway pro kontejnery.
Požadavky
- Nainstalovaný
ingress-azure
chart Helm.- Nasazení Greenfieldu: Pokud začínáte úplně od začátku, přečtě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 do clusteru AKS.
- Nasazení Brownfieldu: Pokud máte existující cluster AKS a službu Application Gateway, přečtěte si tyto pokyny k instalaci kontroleru příchozího přenosu dat služby Application Gateway do clusteru AKS.
- Pokud chcete v této aplikaci používat HTTPS, potřebujete certifikát x509 a jeho privátní klíč.
Nasazení guestbook
aplikace
Aplikace guestbooku 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 svou 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. Aplikaci používáme a nastavíme prostředky příchozího přenosu dat pro přístup k aplikaci prostřednictvím protokolu HTTP a HTTPS.
Pomocí následujících pokynů nasaďte aplikaci guestbooku.
- Stáhnout
guestbook-all-in-one.yaml
odsud - Nasazení
guestbook-all-in-one.yaml
do clusteru AKS spuštěním příkazu
kubectl apply -f guestbook-all-in-one.yaml
guestbook
Teď je aplikace nasazená.
Zveřejnění služeb přes PROTOKOL HTTP
Pokud chcete zpřístupnit aplikaci guestbooku, 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 služby Application Gateway.
Uložte výše uvedený prostředek příchozího přenosu dat jako ing-guestbook.yaml
.
Nasazení
ing-guestbook.yaml
spuštěním 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 služby Application Gateway.
Zveřejnění služeb přes HTTPS
Bez zadaného názvu hostitele
Bez zadání názvu hostitele je služba guestbook k dispozici ve všech názvech hostitelů odkazujících na aplikační bránu.
Před nasazením příchozího přenosu dat je potřeba vytvořit tajný klíč Kubernetes pro hostování certifikátu a privátního klíče. Tajný kód Kubernetes můžete vytvořit spuštěním příkazu .
kubectl create secret tls <guestbook-secret-name> --key <path-to-key> --cert <path-to-cert>
Definujte následující příchozí přenos dat. V příchozím přenosu dat zadejte název tajného kódu v oddílu
secretName
.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
Poznámka:
Nahraďte
<guestbook-secret-name>
ve výše uvedeném prostředku příchozího přenosu dat názvem vašeho tajného kódu. Uložte výše uvedený prostředek příchozího přenosu dat do názvuing-guestbook-tls.yaml
souboru .Nasazení ing-guestbook-tls.yaml spuštěním 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 příchozího přenosu dat, aby bylo možné použít vícenásobné konfigurace a služby PROTOKOLU TLS. Zadáním názvu hostitele je služba hostbooku k dispozici pouze na zadaném hostiteli.
Definujte následující příchozí přenos dat. V příchozím přenosu dat zadejte název tajného kódu v oddílu
secretName
a odpovídajícím způsobem nahraďte název hostitele v oddíluhosts
.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 příkazukubectl apply -f ing-guestbook-tls-sni.yaml
Zkontrolujte stav nasazení v protokolu kontroleru příchozího přenosu dat.
guestbook
Aplikace je teď k dispozici na http i HTTPS pouze na zadaném hostiteli (<guestbook.contoso.com>
v tomto příkladu).
Integrace s ostatními službami
Následující příchozí přenos dat umožňuje přidat do tohoto příchozího přenosu dat další cesty a tyto cesty přesměrovat do jiných služeb:
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