Události
Vytváření aplikací a agentů AI
17. 3. 21 - 21. 3. 10
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
ZaregistrovatTento prohlížeč se už nepodporuje.
Upgradujte na Microsoft Edge, abyste mohli využívat nejnovější funkce, aktualizace zabezpečení a technickou podporu.
Příchozí přenos dat je objekt rozhraní API, který definuje pravidla, která umožňují externí přístup ke službám v clusteru Azure Kubernetes Service (AKS). Když vytvoříte objekt příchozího přenosu dat, který používá doplňky nginx ingress směrování aplikace, doplněk vytvoří, nakonfiguruje a spravuje jeden nebo více kontrolerů příchozího přenosu dat v clusteru AKS.
V tomto článku se dozvíte, jak nastavit pokročilou konfiguraci příchozího přenosu dat pro šifrování provozu pomocí certifikátů SSL/TLS uložených ve službě Azure Key Vault a použití Azure DNS ke správě zón DNS.
Doplněk pro směrování aplikací s nginx poskytuje následující:
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ý.
Pomocí příkazu nakonfigurujte kubectl pro připojení ke clusteru az aks get-credentials
Kubernetes.
az aks get-credentials --resource-group <ResourceGroupName> --name <ClusterName>
Pokud chcete povolit podporu provozu HTTPS, projděte si následující požadavky:
Poznámka
Pokud už službu Azure Key Vault máte, můžete tento krok přeskočit.
Pomocí příkazu vytvořte službu Azure Key Vault az keyvault create
.
az keyvault create --resource-group <ResourceGroupName> --location <Location> --name <KeyVaultName> --enable-rbac-authorization true
K testování můžete místo certifikátu podepsaného certifikační autoritou (CA) použít veřejný certifikát podepsaný svým držitelem. Pokud už certifikát máte, můžete tento krok přeskočit.
Upozornění
Certifikáty podepsané svým držitelem jsou digitální certifikáty, které nejsou podepsané důvěryhodnou certifikační autoritou třetí strany. Certifikáty podepsané svým držitelem jsou vytvořeny, vystaveny a podepsány společností nebo vývojářem, kteří jsou zodpovědní za podepsání webu nebo softwaru. Proto jsou certifikáty podepsané svým držitelem považovány za nebezpečné pro veřejně přístupné weby a aplikace. Azure Key Vault má důvěryhodné partnerství s některými certifikačními autoritami.
Vytvořte certifikát SSL podepsaný svým držitelem, který se použije s příchozím přenosem dat pomocí openssl req
příkazu. Nezapomeňte nahradit <Hostname>
názvem DNS, který používáte.
openssl req -new -x509 -nodes -out aks-ingress-tls.crt -keyout aks-ingress-tls.key -subj "/CN=<Hostname>" -addext "subjectAltName=DNS:<Hostname>"
Pomocí příkazu vyexportujte certifikát SSL a přeskočte výzvu k openssl pkcs12 -export
zadání hesla.
openssl pkcs12 -export -in aks-ingress-tls.crt -inkey aks-ingress-tls.key -out aks-ingress-tls.pfx
Importujte certifikát SSL do služby Azure Key Vault pomocí az keyvault certificate import
příkazu. Pokud je certifikát chráněný heslem, můžete ho předat příznakem --password
.
az keyvault certificate import --vault-name <KeyVaultName> --name <KeyVaultCertificateName> --file aks-ingress-tls.pfx [--password <certificate password if specified>]
Důležité
Pokud chcete doplněk povolit opětovné načtení certifikátů ze služby Azure Key Vault při jejich změně, měli byste povolit funkci automatického zápisu tajných kódů ovladače CSI úložiště tajných kódů s argumentem --enable-secret-rotation
. Když je povolená automatická operace, ovladač aktualizuje připojení podu a tajný kód Kubernetes pravidelným dotazováním změn na základě vámi definovaného intervalu dotazování na obměny. Výchozí interval hlasování o obměně je dva minuty.
V clusteru s povoleným doplňkem směrování aplikace použijte az aks approuting update
příkaz a --enable-kv
--attach-kv
argumenty, abyste povolili zprostředkovatele služby Azure Key Vault pro ovladač CSI úložiště tajných kódů a použili požadovaná přiřazení rolí.
Azure Key Vault nabízí dva systémy autorizace: řízení přístupu na základě role v Azure (Azure RBAC), které funguje v rovině správy, a model zásad přístupu, který funguje v rovině správy i v rovině dat. Operace --attach-kv
zvolí vhodný přístupový model, který se má použít.
Poznámka
Tento az aks approuting update --attach-kv
příkaz používá oprávnění uživatele, který příkaz spouští, k vytvoření přiřazení role služby Azure Key Vault. Tato role se přiřadí ke spravované identitě doplňku. Další informace o spravovaných identitách AKS najdete v souhrnu spravovaných identit.
Načtěte ID prostředku služby Azure Key Vault.
KEYVAULTID=$(az keyvault show --name <KeyVaultName> --query "id" --output tsv)
Potom aktualizujte doplněk pro směrování aplikace, aby se povolil ovladač CSI úložiště tajných kódů služby Azure Key Vault a použil přiřazení role.
az aks approuting update --resource-group <ResourceGroupName> --name <ClusterName> --enable-kv --attach-kv ${KEYVAULTID}
Pokud chcete povolit podporu zón DNS, projděte si následující požadavky:
Poznámka
Pokud už máte zónu Azure DNS, můžete tento krok přeskočit.
Pomocí příkazu vytvořte zónu az network dns zone create
Azure DNS.
az network dns zone create --resource-group <ResourceGroupName> --name <ZoneName>
Poznámka
Tento az aks approuting zone add
příkaz používá oprávnění uživatele, který příkaz spouští, k vytvoření přiřazení role zóny Azure DNS. Tato role se přiřadí ke spravované identitě doplňku. Další informace o spravovaných identitách AKS najdete v souhrnu spravovaných identit.
Pomocí příkazu načtěte ID prostředku zóny az network dns zone show
DNS a nastavte výstup na proměnnou s názvem ZONEID.
ZONEID=$(az network dns zone show --resource-group <ResourceGroupName> --name <ZoneName> --query "id" --output tsv)
Aktualizujte doplněk, abyste pomocí příkazu povolili integraci s Azure DNS az aks approuting zone
. Můžete předat čárkami oddělený seznam ID prostředků zóny DNS.
az aks approuting zone add --resource-group <ResourceGroupName> --name <ClusterName> --ids=${ZONEID} --attach-zones
Doplněk směrování aplikace vytvoří třídu příchozího přenosu dat v clusteru s názvem webapprouting.kubernetes.azure.com. Když vytvoříte objekt Ingress s touto třídou, aktivuje doplněk.
Pomocí příkazu získejte identifikátor URI certifikátu, který se použije v příchozím přenosu dat ze služby Azure Key Vault az keyvault certificate show
.
az keyvault certificate show --vault-name <KeyVaultName> --name <KeyVaultCertificateName> --query "id" --output tsv
Následující příklad výstupu ukazuje identifikátor URI certifikátu vrácený příkazem:
https://KeyVaultName.vault.azure.net/certificates/KeyVaultCertificateName/ea62e42260f04f17a9309d6b87aceb44
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.
Aktualizujte <Hostname>
název hostitele DNS a <KeyVaultCertificateUri>
pomocí identifikátoru URI vráceného příkazem za účelem dotazování služby Azure Key Vault v kroku 1 výše. Hodnota řetězce by *<KeyVaultCertificateUri>*
měla obsahovat https://yourkeyvault.vault.azure.net/certificates/certname
pouze . Verze certifikátu na konci řetězce identifikátoru URI by měla být vynechána, aby se získala aktuální verze.
Klíč secretName
v tls
části definuje název tajného klíče, který obsahuje certifikát pro tento prostředek příchozího přenosu dat. Tento certifikát se zobrazí v prohlížeči, když klient přejde na adresu URL zadanou v klíči <Hostname>
. Ujistěte se, že hodnota secretName
je rovna keyvault-
hodnotě, za kterou následuje název prostředku příchozího přenosu dat (z metadata.name
). V příkladu YAML secretName
musí být rovno keyvault-<your Ingress name>
.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubernetes.azure.com/tls-cert-keyvault-uri: <KeyVaultCertificateUri>
name: aks-helloworld
namespace: hello-web-app-routing
spec:
ingressClassName: webapprouting.kubernetes.azure.com
rules:
- host: <Hostname>
http:
paths:
- backend:
service:
name: aks-helloworld
port:
number: 80
path: /
pathType: Prefix
tls:
- hosts:
- <Hostname>
secretName: keyvault-<your ingress name>
Pomocí příkazu vytvořte prostředky clusteru kubectl apply
.
kubectl apply -f ingress.yaml -n hello-web-app-routing
Následující příklad výstupu ukazuje vytvořený prostředek:
Ingress.networking.k8s.io/aks-helloworld created
Spravovaný příchozí přenos dat můžete ověřit pomocí kubectl get ingress
příkazu.
kubectl get ingress -n hello-web-app-routing
Následující příklad výstupu ukazuje vytvořený spravovaný příchozí přenos dat:
NAME CLASS HOSTS ADDRESS PORTS AGE
aks-helloworld webapprouting.kubernetes.azure.com myapp.contoso.com 20.51.92.19 80, 443 4m
Seznamte se s monitorováním metrik kontroleru Ingress-nginx, které jsou součástí doplňku směrování aplikací pomocí nástroje Prometheus v Grafana , a to v rámci analýzy výkonu a využití vaší aplikace.
Zpětná vazba k produktu Azure Kubernetes Service
Azure Kubernetes Service je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby:
Události
Vytváření aplikací a agentů AI
17. 3. 21 - 21. 3. 10
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
ZaregistrovatŠkolení
Modul
Konfigurace clusteru Azure Kubernetes Service - Training
Azure Policy můžete použít k vynucení zásad a ochrany clusterů Kubernetes ve velkém měřítku. Azure Policy zajišťuje, aby byl váš cluster zabezpečený, vyhovující a konzistentní v celé organizaci.
Certifikace
Microsoft Certified: Certifikovaný Asistent Síťového Inženýra pro Azure - Certifications
Předvedení návrhu, implementace a údržby síťové infrastruktury Azure, vyrovnávání zatížení provozu, směrování sítě a další.
Dokumentace
Zjistěte, jak nakonfigurovat kontroler příchozího přenosu dat s privátní IP adresou a zónou Azure Private DNS pomocí doplňku pro směrování aplikací pro službu Azure Kubernetes Service.
Pomocí doplňku pro směrování aplikací můžete bezpečně přistupovat k aplikacím nasazeným ve službě Azure Kubernetes Service (AKS).
Seznamte se s rozšířenými možnostmi konfigurace, které jsou podporovány doplňkem směrování aplikací pomocí kontroleru příchozího přenosu dat NGINX pro Službu Azure Kubernetes Service (AKS).