Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk bemutatja, hogyan konfigurálhat egy NGINX bejövőforgalom-vezérlőt az Azure belső terheléselosztójával való együttműködésre, és hogyan konfigurálhat egy privát Azure DNS-zónát, hogy a privát végpontok DNS-feloldása lehetővé tegye az adott tartományok feloldását.
Mielőtt elkezdené
- Egy AKS-fürt az alkalmazás-útválasztási bővítményrel.
- Azure-beli privát DNS-zóna csatolásához tulajdonosi, Azure-fiókadminisztrátori vagy Azure-társadminisztrátori szerepkörre van szüksége az Azure-előfizetésében.
Csatlakozás az AKS-fürthöz
Ha a helyi számítógépről szeretne csatlakozni a Kubernetes-fürthöz, használja kubectl
a Kubernetes parancssori ügyfelet. Telepítheti helyileg az az aks install-cli paranccsal. Ha az Azure Cloud Shellt használja, a kubectl
már telepítve van.
Az alábbi példa a myAKSCluster nevű fürthöz való csatlakozást konfigurálja a myResourceGroupban a az aks get-credentials
parancs használatával.
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Virtuális hálózat létrehozása
Ha privát DNS-zónát szeretne közzétenni a virtuális hálózaton, meg kell adnia azoknak a virtuális hálózatoknak a listáját, amelyek a zónán belüli rekordok feloldására jogosultak. Ezeket virtuális hálózati kapcsolatoknak nevezzük.
Az alábbi példa létrehoz egy myAzureVNet nevű virtuális hálózatot a myResourceGroup erőforráscsoportban, és egy mySubnet nevű alhálózatot a virtuális hálózaton belül egy adott címelőtaggal.
az network vnet create \
--name myAzureVNet \
--resource-group myResourceGroup \
--location eastus \
--address-prefix 10.2.0.0/16 \
--subnet-name mysubnet \
--subnet-prefixes 10.2.0.0/24
Azure-beli privát DNS-zóna létrehozása
Feljegyzés
Az alkalmazás-útválasztási bővítmény konfigurálható úgy, hogy automatikusan rekordokat hozzon létre egy vagy több Azure-beli globális és privát DNS-zónában a bejövő erőforrásokon definiált gazdagépek számára. Minden globális Azure DNS-zónának és minden privát Azure DNS-zónának ugyanabban az erőforráscsoportban kell lennie.
Dns-zónát az az network private-dns zone create paranccsal hozhat létre, amelyben megadhatja a zóna nevét és az erőforráscsoportot. Az alábbi példa létrehoz egy private.contoso.com nevű DNS-zónát a myResourceGroup erőforráscsoportban.
az network private-dns zone create --resource-group myResourceGroup --name private.contoso.com
Az az network private-dns link vnet create paranccsal hozzon létre egy virtuális hálózati kapcsolatot a korábban létrehozott DNS-zónához. Az alábbi példa létrehoz egy myDNSLink nevű hivatkozást a myAzureVNet virtuális hálózat zóna private.contoso.com. Adja meg a --registration-enabled
paramétert annak megadásához, hogy a hivatkozás nincs engedélyezve a regisztrációban.
az network private-dns link vnet create --resource-group myResourceGroup \
--name myDNSLink \
--zone-name private.contoso.com \
--virtual-network myAzureVNet \
--registration-enabled false
Az Azure DNS privát zóna automatikus regisztrációs funkciója kezeli a virtuális hálózaton üzembe helyezett virtuális gépek DNS-rekordjait. Ha egy virtuális hálózatot egy privát DNS-zónával kapcsol össze ezzel a beállítással, a rendszer létrehoz egy DNS-rekordot minden Egyes Azure-beli virtuális géphez a virtuális hálózaton üzembe helyezett AKS-csomóponthoz.
Azure-beli privát DNS-zóna csatolása az alkalmazás-útválasztási bővítményhez
Feljegyzés
A az aks approuting zone add
parancs a parancsot futtató felhasználó engedélyeit használja az Azure DNS-zóna szerepkör-hozzárendelésének létrehozásához. A saját DNS zóna közreműködői szerepköre egy beépített szerepkör a privát DNS-erőforrások kezeléséhez, és a bővítmény felügyelt identitásához van rendelve. A felügyelt AKS-identitásokról további információt a felügyelt identitások összegzésében talál.
A parancs használatával
az network dns zone show
kérje le a DNS-zóna erőforrás-azonosítóját, és állítsa a kimenetet egy névvel ellátottZONEID
változóra. Az alábbi példa lekérdezi a myResourceGroup erőforráscsoportban private.contoso.com zónát.ZONEID=$(az network private-dns zone show --resource-group myResourceGroup --name private.contoso.com --query "id" --output tsv)
Frissítse a bővítményt az Azure DNS-integráció engedélyezéséhez a
az aks approuting zone
parancs használatával. A DNS-zóna erőforrásazonosítóinak vesszővel tagolt listáját is átadhatja. Az alábbi példa frissíti az AKS-fürt myAKSCluster-ét a myResourceGroup erőforráscsoportban.az aks approuting zone add --resource-group myResourceGroup --name myAKSCluster --ids=${ZONEID} --attach-zones
NGINX bejövőforgalom-vezérlő létrehozása privát IP-címmel és belső terheléselosztóval
Az alkalmazás-útválasztási bővítmény egy Kubernetes egyéni erőforrásdefiníciót (CRD) NginxIngressController
használ az NGINX bejövő vezérlők konfigurálásához. Létrehozhat további bejövő vezérlőket, vagy módosíthatja a meglévő konfigurációt.
NginxIngressController
A CRD rendelkezik egy loadBalancerAnnotations
mezővel, amely a terheléselosztó széljegyzeteinek beállításával szabályozza az NGINX bejövőforgalom-vezérlő szolgáltatásának viselkedését.
Az alábbi lépéseket követve hozzon létre egy NGINX bejövőforgalom-vezérlőt egy belső azure Load Balancerrel privát IP-címmel.
Másolja a következő YAML-jegyzékfájlt egy nginx-internal-controller.yaml nevű új fájlba, és mentse a fájlt a helyi számítógépre.
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"
Hozza létre az NGINX bejövőforgalom-vezérlő erőforrásait a
kubectl apply
paranccsal.kubectl apply -f nginx-internal-controller.yaml
A következő példakimenet a létrehozott erőforrást mutatja be:
nginxingresscontroller.approuting.kubernetes.azure.com/nginx-internal created
Ellenőrizze, hogy a bejövőforgalom-vezérlő létrejött-e
A parancs használatával
kubectl get nginxingresscontroller
ellenőrizheti az NGINX bejövőforgalom-vezérlő állapotát.kubectl get nginxingresscontroller
Az alábbi példakimenet a létrehozott erőforrást mutatja be. Eltarthat néhány percig, amíg a vezérlő elérhetővé válik:
NAME INGRESSCLASS CONTROLLERNAMEPREFIX AVAILABLE default webapprouting.kubernetes.azure.com nginx True nginx-internal nginx-internal nginx-internal True
Alkalmazás üzembe helyezése
Az alkalmazás-útválasztási bővítmény a Kubernetes Bejövő forgalom objektumainak megjegyzéseit használja a megfelelő erőforrások létrehozásához.
Hozzon létre egy alkalmazásnévteret
hello-web-app-routing
, amely a parancs használatával futtatja akubectl create namespace
példa podokat.kubectl create namespace hello-web-app-routing
Hozza létre az üzembe helyezést úgy, hogy a következő YAML-jegyzékfájlt egy új, deployment.yaml nevű fájlba másolja, és mentse a fájlt a helyi számítógépre.
apiVersion: apps/v1 kind: Deployment metadata: name: aks-helloworld namespace: hello-web-app-routing spec: replicas: 1 selector: matchLabels: app: aks-helloworld template: metadata: labels: app: aks-helloworld spec: containers: - name: aks-helloworld image: mcr.microsoft.com/azuredocs/aks-helloworld:v1 ports: - containerPort: 80 env: - name: TITLE value: "Welcome to Azure Kubernetes Service (AKS)"
A szolgáltatás létrehozásához másolja a következő YAML-jegyzékfájlt egy service.yaml nevű új fájlba, és mentse a fájlt a helyi számítógépre.
apiVersion: v1 kind: Service metadata: name: aks-helloworld namespace: hello-web-app-routing spec: type: ClusterIP ports: - port: 80 selector: app: aks-helloworld
Hozza létre a fürterőforrásokat a
kubectl apply
paranccsal.kubectl apply -f deployment.yaml -n hello-web-app-routing
A következő példakimenet a létrehozott erőforrást mutatja be:
deployment.apps/aks-helloworld created created
kubectl apply -f service.yaml -n hello-web-app-routing
A következő példakimenet a létrehozott erőforrást mutatja be:
service/aks-helloworld created created
Hozza létre azt a bejövő erőforrást, amely az Azure privát DNS-zónában lévő gazdagépnevet és egy privát IP-címet használ
Másolja a következő YAML-jegyzékfájlt egy ingress.yaml nevű új fájlba, és mentse a fájlt a helyi számítógépre.
Frissítsen
<Hostname>
például a DNS-gazdagéphelloworld.private.contoso.com
nevével. Ellenőrizze, hogy megadja-enginx-internal
aingressClassName
.apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: aks-helloworld namespace: hello-web-app-routing spec: ingressClassName: nginx-internal rules: - host: <Hostname> http: paths: - backend: service: name: aks-helloworld port: number: 80 path: / pathType: Prefix
Hozza létre a fürterőforrásokat a
kubectl apply
paranccsal.kubectl apply -f ingress.yaml -n hello-web-app-routing
A következő példakimenet a létrehozott erőforrást mutatja be:
ingress.networking.k8s.io/aks-helloworld created
A felügyelt bejövő forgalom létrehozásának ellenőrzése
A parancs használatával ellenőrizheti, hogy a felügyelt bejövő forgalom létrejött-e kubectl get ingress
.
kubectl get ingress -n hello-web-app-routing
A következő példakimenet a létrehozott felügyelt bejövő forgalmat mutatja be:
NAME CLASS HOSTS ADDRESS PORTS AGE
aks-helloworld nginx-internal helloworld.private.contoso.com 10.224.0.7 80 98s
Ellenőrizze, hogy az Azure privát DNS-zónája frissült-e
Néhány perc múlva futtassa az az network private-dns record -set list parancsot az Azure privát DNS-zóna A rekordjainak megtekintéséhez. Adja meg az erőforráscsoport nevét és a DNS-zóna nevét. Ebben a példában az erőforráscsoport a myResourceGroup , a DNS-zóna pedig private.contoso.com.
az network private-dns record-set a list --resource-group myResourceGroup --zone-name private.contoso.com
A következő példakimenet a létrehozott rekordot jeleníti meg:
[
{
"aRecords": [
{
"ipv4Address": "10.224.0.7"
}
],
"etag": "188f0ce5-90e3-49e6-a479-9e4053f21965",
"fqdn": "helloworld.private.contoso.com.",
"id": "/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx/resourceGroups/foo/providers/Microsoft.Network/privateDnsZones/private.contoso.com/A/helloworld",
"isAutoRegistered": false,
"name": "helloworld",
"resourceGroup": "foo",
"ttl": 300,
"type": "Microsoft.Network/privateDnsZones/A"
}
]
Következő lépések
Az SSL-titkosítással kapcsolatos egyéb speciális NGINX bejövőforgalom-vezérlővel és bejövő erőforrás-konfigurációval kapcsolatos egyéb konfigurációs információkért tekintse át a DNS- és SSL-konfigurációt , valamint az alkalmazás-útválasztási bővítmény konfigurációját.
Azure Kubernetes Service