Sdílet prostřednictvím


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-nginxco 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: