Nasazení kontroleru příchozího přenosu dat
Platí pro: AKS v Azure Stack HCI 22H2, AKS na Windows Serveru
Kontroler příchozího přenosu dat je prostředek Kubernetes, který umožňuje externí přístup ke službám v clusteru Kubernetes. Příchozí přenos dat umožňuje operátorovi zpřístupnit službu externím síťovým požadavkům, obvykle HTTP nebo HTTPS. Přístup nakonfigurujete vytvořením sady pravidel, která definují příchozí připojení, která se dostanou ke konkrétním službám.
Kontroler příchozího přenosu dat je software, který poskytuje konfigurovatelné směrování provozu pro služby Kubernetes. Prostředky příchozího přenosu dat Kubernetes se používají ke konfiguraci pravidel a tras pro příchozí data u jednotlivých služeb Kubernetes. Pomocí kontroleru příchozího přenosu dat a pravidel příchozího přenosu dat můžete pomocí jedné IP adresy směrovat provoz do více služeb v clusteru Kubernetes.
Po nasazení kontroleru ve vašem prostředí můžete pak vytvořit a nasadit manifest příchozího přenosu dat. V současné době používáte příchozí přenos dat v AKS Arc pomocí kontroleru příchozího přenosu dat NGINX. Informace o instalaci, konfiguraci a použití kontroleru příchozího přenosu dat NGINX najdete v tématu Instalace s manifesty.
Příchozí přenos dat se liší od NodePortu a LoadBalanceru jedinečným způsobem a zlepšuje směrování provozu do clusteru méně nákladným způsobem. Definování služeb NodePort vytváří mnoho náhodných portů a definování služeb LoadBalancer zvyšuje náklady na cloudové prostředky více, než byste mohli chtít. Když definujete kontroler příchozího přenosu dat, konsolidujete pravidla směrování provozu do jednoho prostředku, který běží jako součást clusteru. NodePort a LoadBalancer umožňují zveřejnit službu zadáním této hodnoty v typu služby, zatímco příchozí přenos dat je nezávislý prostředek pro službu. Příchozí přenos dat je definován, vytvořen a zničen odděleně od služby.
Příchozí přenos dat můžete nasadit různými způsoby v závislosti na případu použití. Prostředky příchozího přenosu dat slouží k aktualizaci konfigurace v kontroleru příchozího přenosu dat, aby bylo možné určit, jak funguje.
Použití příchozího přenosu dat k zveřejnění služeb prostřednictvím externě dostupných adres URL
Příklad použití příchozího přenosu dat je uvedený v následujícím manifestu YAML. Zobrazí ingress.class
se v metadatech (v tomto příkladu) a toto nastavení umožní kontroleru příchozího přenosu dat NGINX zjistit, ingress-nginx
co potřebuje k monitorování a aktualizaci:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: hello-world
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: test.example.com
http:
paths:
- path: /hello-world
pathType: Prefix
backend:
service:
name: hello-world
port:
number: 8080
Tato spec
část obsahuje informace o tom, co je nakonfigurované. V tomto příkladu je definováno pravidlo (nebo sada pravidel) a obsahuje následující položky:
- Hostitel, na kterého se pravidla použijí.
- Bez ohledu na to, jestli je provoz HTTP nebo HTTPS.
- Monitorovaná cesta.
- Interní služba a port, kam se provoz odesílá.
Použití příchozího přenosu dat k vyrovnávání zatížení provozu
V následujícím příkladu je do manifestu přidána další cesta, která umožňuje vyrovnávání zatížení mezi různými back-endy aplikace. V tomto příkladu může operátor rozdělit provoz a odeslat ho do různých koncových bodů služby a nasazení na základě popsané cesty. Za každou cestou je nasazení a služba, která je užitečná pro koncové body, které přijímají více provozu:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: hello-world-and-earth
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: test.example.com
http:
paths:
- path: /hello-world
pathType: Prefix
backend:
service:
name: hello-world
port:
number: 8080
- path: /hello-earth
pathType: Prefix
backend:
service:
name: hello-earth
port:
number: 8080
Směrování provozu HTTP na více názvů hostitelů na stejné IP adrese pomocí příchozího přenosu dat
Pro každého hostitele můžete použít jiný prostředek příchozího přenosu dat, který vám umožní řídit provoz s více názvy hostitelů. Pokud chcete použít jiný prostředek příchozího přenosu dat, nasměrujte několik názvů hostitelů na stejnou veřejnou IP adresu, která se používá pro službu LoadBalancer. V následujícím souboru manifestu byla přidána produkční verze hello-world
. Použije se název prod.example.com
hostitele a provoz odkazuje na novou službu hello-world-prod
. Provoz přichází přes IP adresu nástroje pro vyrovnávání zatížení a směruje se na základě názvu hostitele a cesty, kterou zadáte:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: hello-world-prod
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: test.example.com
http:
paths:
- path: /hello-world
pathType: Prefix
backend:
service:
name: hello-world-test
port:
number: 8080
- host: prod.example.com
http:
paths:
- path: /hello-world
pathType: Prefix
backend:
service:
name: hello-world-prod
port:
number: 8080
Další kroky
Další informace najdete na následujících odkazech: