Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku se dozvíte, jak nakonfigurovat kontroler příchozího přenosu dat NGINX tak, aby fungoval s interním nástrojem pro vyrovnávání zatížení Azure. Vysvětluje také, jak nakonfigurovat privátní zónu Azure DNS, aby umožnila rozlišení DNS pro privátní koncové body pro konkrétní domény.
Než začnete
Pokud chcete připojit privátní zónu DNS Azure, potřebujete ve svém předplatném Azure roli vlastníka, správce účtu Azure nebo roli spolusprávce Azure .
Připojení ke clusteru AKS
Pokud se chcete připojit ke clusteru Kubernetes z místního počítače, použijte kubectl
klienta příkazového řádku Kubernetes. Můžete ho nainstalovat místně pomocí příkazu az aks install-cli . Pokud používáte Azure Cloud Shell, kubectl
je už nainstalovaný.
Následující příklad nakonfiguruje připojení ke clusteru s názvem aks-cluster v test-rg pomocí az aks get-credentials
příkazu.
az aks get-credentials \
--resource-group test-rg \
--name aks-cluster
Vytvoření virtuální sítě
Pokud chcete do virtuální sítě publikovat privátní zónu DNS, zadejte seznam virtuálních sítí, které mohou překládat záznamy v rámci zóny pomocí propojení virtuální sítě.
Následující příklad vytvoří virtuální síť s názvem vnet-1 ve skupině prostředků test-rg a jednu podsíť s názvem subnet-1 , která se vytvoří v rámci virtuální sítě s konkrétní předponou adresy.
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--location eastus \
--address-prefix 10.2.0.0/16 \
--subnet-name subnet-1 \
--subnet-prefixes 10.2.0.0/24
Vytvoření privátní zóny DNS Azure
Poznámka:
Doplněk pro směrování aplikací můžete nakonfigurovat tak, aby automaticky vytvářel záznamy v jedné nebo více globálních a privátních zónách DNS Azure pro hostitele definované v prostředcích příchozího přenosu dat. Všechny globální zóny Azure DNS a všechny privátní zóny Azure DNS musí být ve stejné skupině prostředků.
Pomocí příkazu az network private-dns zone create vytvořte zónu DNS, zadejte název zóny a skupinu prostředků, ve které ji chcete vytvořit. Následující příklad vytvoří zónu DNS s názvem private.contoso.com ve skupině prostředků test-rg .
az network private-dns zone create \
--resource-group test-rg \
--name private.contoso.com
Pomocí příkazu az network private-dns link vnet create vytvoříte propojení virtuální sítě s zónou DNS vytvořenou dříve. Následující příklad vytvoří odkaz s názvem dns-link na zónu private.contoso.com pro virtuální síť vnet-1. Zahrňte parametr --registration-enabled
pro určení, že odkaz nemá povolenou registraci.
az network private-dns link vnet create \
--resource-group test-rg \
--name dns-link \
--zone-name private.contoso.com \
--virtual-network vnet-1 \
--registration-enabled false
Funkce automatické registrace privátní zóny Azure DNS spravuje záznamy DNS pro virtuální počítače nasazené ve virtuální síti. Když propojíte virtuální síť s privátní zónou DNS s povoleným nastavením, vytvoří se záznam DNS pro každý virtuální počítač Azure pro váš uzel AKS nasazený ve virtuální síti.
Připojení privátní zóny DNS Azure k doplňku pro směrování aplikací
Poznámka:
Tento az aks approuting zone add
příkaz používá oprávnění uživatele, který jej spouští, k vytvoření přiřazení role zóny Azure DNS. Role přispěvatele zóny Privátní DNS je předdefinovaná role pro správu privátních prostředků DNS a je přiřazená spravované identitě doplňku. Další informace o spravovaných identitách AKS najdete v souhrnu spravovaných identit.
Načtěte ID prostředku zóny DNS pomocí
az network dns zone show
příkazu a nastavte výstup na proměnnou s názvemZONEID
. Následující příklad dotazuje zónu private.contoso.com ve skupině prostředků test-rg.ZONEID=$(az network private-dns zone show \ --resource-group test-rg \ --name private.contoso.com \ --query "id" \ --output tsv)
Aktualizujte doplněk tak, aby povolte integraci s Azure DNS pomocí
az aks approuting zone
příkazu. Můžete předat čárkami oddělený seznam ID prostředků zóny DNS. Následující příklad aktualizuje cluster AKS aks-cluster ve skupině prostředků test-rg.az aks approuting zone add \ --resource-group test-rg \ --name aks-cluster \ --ids=${ZONEID} \ --attach-zones
Vytvoření kontroleru příchozího přenosu dat NGINX s privátní IP adresou a interním nástrojem pro vyrovnávání zatížení
Doplněk směrování aplikace je používán pro konfiguraci ingresních kontrolerů NGINX prostřednictvím definice vlastního prostředku Kubernetes (CRD).NginxIngressController
Můžete vytvořit další kontrolery příchozího přenosu dat nebo upravit existující konfiguraci.
NginxIngressController
CRD má loadBalancerAnnotations
pole pro řízení služby kontroleru příchozího přístupu NGINX nastavením poznámek vyrovnávače zatížení. Další informace o anotacích nástroje pro vyrovnávání zatížení najdete v tématu Přizpůsobení prostřednictvím anotací Kubernetes.
Provedením následujících kroků vytvořte kontroler příchozího přenosu dat NGINX s interní službou Azure Load Balancer s privátní IP adresou.
Zkopírujte následující manifest YAML do nového souboru s názvem nginx-internal-controller.yaml a uložte soubor do místního počítače.
apiVersion: approuting.kubernetes.azure.com/v1alpha1 kind: NginxIngressController metadata: name: nginx-internal spec: ingressClassName: nginx-internal controllerNamePrefix: nginx-internal loadBalancerAnnotations: service.beta.kubernetes.io/azure-load-balancer-internal: "true"
Pomocí příkazu vytvořte prostředky kontroleru příchozího přenosu dat
kubectl apply
NGINX.kubectl apply -f nginx-internal-controller.yaml
Následující příklad výstupu ukazuje vytvořený prostředek:
nginxingresscontroller.approuting.kubernetes.azure.com/nginx-internal created
Ověření vytvoření kontroleru příchozího přenosu dat
Pomocí příkazu můžete ověřit stav kontroleru
kubectl get nginxingresscontroller
příchozího přenosu dat NGINX.kubectl get nginxingresscontroller
Následující příklad výstupu ukazuje vytvořený prostředek. Dostupnost kontroleru může trvat několik minut:
NAME INGRESSCLASS CONTROLLERNAMEPREFIX AVAILABLE default webapprouting.kubernetes.azure.com nginx True nginx-internal nginx-internal nginx-internal True
Nasazení aplikace
Doplněk pro směrování aplikace používá anotace na objektech Kubernetes Ingress k vytvoření příslušných prostředků.
Vytvořte obor názvů aplikace s názvem
aks-store
pro spuštění ukázkových podů pomocí příkazukubectl create namespace
.kubectl create namespace aks-store
Nasaďte aplikaci úložiště AKS pomocí následujícího souboru manifestu YAML:
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/sample-manifests/docs/app-routing/aks-store-deployments-and-services.yaml -n aks-store
Tento manifest vytvoří potřebná nasazení a služby pro aplikaci obchodu AKS.
Vytvořte prostředek Ingress, který používá název hostitele v Azure Private DNS zóně a privátní IP adresu.
Aktualizujte host
název hostitele DNS, například store-front.private.contoso.com. Ověřte, že pro ingressClassName zadáváte nginx-internal.
Zkopírujte následující manifest YAML do nového souboru s názvem ingress.yaml a uložte ho do místního počítače.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: store-front namespace: aks-store spec: ingressClassName: nginx-internal rules: - host: store-front.private.contoso.com http: paths: - backend: service: name: store-front port: number: 80 path: / pathType: Prefix
Vytvořte prostředek ingress pomocí příkazu
kubectl apply
.kubectl apply -f ingress.yaml -n aks-store
Následující příklad výstupu ukazuje vytvořený prostředek:
ingress.networking.k8s.io/store-front created
Ověřte, zda byl vytvořen spravovaný Ingress
Můžete ověřit, že spravovaný Ingress byl vytvořen, pomocí příkazu kubectl get ingress
.
kubectl get ingress -n aks-store
Následující příklad výstupu ukazuje vytvořený spravovaný Ingress:
NAME CLASS HOSTS ADDRESS PORTS AGE
store-front nginx-internal store-front.private.contoso.com 80 10s
Ověřte, že se aktualizovala privátní zóna DNS Azure.
Za několik minut spusťte příkaz az network private-dns record-set a list k zobrazení záznamů A pro vaši privátní zónu DNS Azure. Zadejte název skupiny prostředků a název zóny DNS. V tomto příkladu je skupina prostředků test-rg a zóna DNS je private.contoso.com.
az network private-dns record-set a list \
--resource-group test-rg \
--zone-name private.contoso.com
Následující příklad výstupu ukazuje vytvořený záznam:
[
{
"aRecords": [
{
"ipv4Address": "10.224.0.7"
}
],
"etag": "ecc303c5-4577-4ca2-b545-d34e160d1c2d",
"fqdn": "store-front.private.contoso.com.",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/test-rg/providers/Microsoft.Network/privateDnsZones/private.contoso.com/A/store-front",
"isAutoRegistered": false,
"name": "store-front",
"resourceGroup": "test-rg",
"ttl": 300,
"type": "Microsoft.Network/privateDnsZones/A"
}
]
Další kroky
Pro další informace o konfiguraci související s šifrováním SSL, pokročilými kontrolery NGINX pro příchozí spojení a konfigurací prostředků pro příchozí spojení, přezkoumejte konfiguraci DNS a SSL a konfiguraci doplňku pro směrování aplikací.
Azure Kubernetes Service