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.
Uzly AKS nevyžadují pro komunikaci vlastní veřejné IP adresy. Scénáře ale můžou vyžadovat, aby uzly ve fondu uzlů přijímaly vlastní vyhrazené veřejné IP adresy. Běžným scénářem jsou herní úlohy, kdy konzola potřebuje navázat přímé připojení ke cloudovému virtuálnímu počítači, aby se minimalizoval počet síťových skoků. Tento scénář lze v AKS dosáhnout pomocí veřejné IP adresy uzlu.
Nejprve vytvořte novou skupinu prostředků.
az group create --name <resourceGroup> --location <region>
Vytvořte nový cluster AKS a připojte veřejnou IP adresu pro uzly. Každý z uzlů ve fondu uzlů obdrží jedinečnou veřejnou IP adresu. Můžete to ověřit tak, že se podíváte na instance škálovací sady virtuálních počítačů.
az aks create \
--resource-group <resourceGroup> \
--name <aksClusterName> \
--location <region> \
--enable-node-public-ip \
--generate-ssh-keys
U existujících clusterů AKS můžete také přidat nový fond uzlů a připojit veřejnou IP adresu pro uzly.
az aks nodepool add --resource-group <resourceGroup> --cluster-name <aksClusterName> --name <newNodePool> --enable-node-public-ip
Použijte prefix veřejné IP adresy
Použití předpony veřejné IP adresy má řadu výhod. AKS podporuje použití adres ze stávající předpony veřejných IP adres pro vaše uzly zadáním ID prostředku pomocí přepínače --node-public-ip-prefix-id při vytváření nového clusteru nebo při přidávání fondu uzlů.
Nejprve vytvořte předponu veřejné IP adresy pomocí příkazu az network public-ip prefix create:
az network public-ip prefix create --length 28 --location <region> --name <publicIPPrefixName> --resource-group <resourceGroup>
Prohlédněte si výstup a poznamenejte si předponu id :
{
...
"id": "/subscriptions/<subscription-id>/resourceGroups/<resourceGroup>/providers/Microsoft.Network/publicIPPrefixes/<publicIPPrefixName>",
...
}
Nakonec při vytváření nového clusteru nebo při přidávání nového fondu uzlů použijte příznak --node-public-ip-prefix-id a zadejte ID prostředku prefixu:
az aks create \
--resource-group <resourceGroup> \
--name <aksClusterName> \
--location <region> \
--enable-node-public-ip \
--node-public-ip-prefix-id /subscriptions/<subscription-id>/resourceGroups/<resourceGroup>/providers/Microsoft.Network/publicIPPrefixes/<publicIPPrefixName> \
--generate-ssh-keys
Použití předpony veřejné IP adresy se dvěma zásobníky (Preview)
Veřejné IP adresy IPv4 i IPv6 můžete přiřadit ke každému uzlu ve fondu uzlů pomocí předpony veřejné IP adresy se dvěma zásobníky. Tento přístup umožňuje používat vlastní předpony veřejných IP adres a zajistit, aby každý uzel obdržel jednu adresu IPv4 a jednu adresu IPv6.
Tato funkce je užitečná pro úlohy, které vyžadují přímé příchozí nebo odchozí připojení přes protokol IPv4 i IPv6 nebo aplikace provozující v prostředích, která vyžadují dodržování předpisů IPv6.
Důležité
Funkce AKS ve verzi Preview jsou k dispozici v samoobslužném režimu na základě aktivního přihlášení. Preview verze jsou poskytovány „ve stavu, v jakém jsou“ a „podle dostupnosti“ a nevztahují se na ně smlouvy o úrovni poskytovaných služeb ani omezená záruka. Verze Preview služby AKS podléhají částečné zákaznické podpoře v režimu best-effort. Proto tyto funkce nejsou určené pro produkční použití. Další informace najdete v následujících článcích podpory:
Požadavky
Pokud chcete používat předpony veřejných IP adres duálního zásobníku s veřejnými IP adresami uzlu, ujistěte se, že jsou splněny následující předpoklady:
- Váš cluster je nakonfigurován jako dual-stack cluster s rodinami IP adres IPv4 i IPv6.
- Váš cluster používá Azure CNI s překryvnými sítěmi.
- Máte jednu předponu veřejné IP adresy IPv4 a jednu předponu veřejné IP adresy IPv6 vytvořenou ve stejné oblasti jako váš cluster AKS.
- Obě předpony veřejných IP adres používají SKU Standard.
- Identita clusteru AKS má oprávnění ke správě předpon veřejných IP adres. Pokud jsou předpony v jiné skupině prostředků, přiřaďte identitě clusteru v této skupině prostředků roli Network Contributor.
Registrace funkcí preview
Podpora předpon veřejných IP adres s duálním zásobníkem (IPv4 a IPv6) pro veřejné IP adresy uzlů je v současnosti dostupná ve verzi Preview. Než budete moct tuto funkci použít, musíte nainstalovat nebo aktualizovat rozšíření Azure CLI a zaregistrovat NodePublicIPv6PrefixPreview příznaky funkcí ve vašem předplatném.
Nainstalujte nebo aktualizujte rozšíření aks-preview:
az extension add --name aks-preview --upgrade
Registrace požadovaných funkcí ve verzi Preview:
az feature register --namespace Microsoft.ContainerService --name NodePublicIPv6PrefixPreview
Dokončení registrace funkcí může trvat několik minut. Pokud chcete zkontrolovat stav registrace, spusťte:
az feature show --namespace Microsoft.ContainerService --name NodePublicIPv6PrefixPreview --query "properties.state"
Než budete pokračovat, počkejte, dokud obě funkce nenahlásí stav Registrováno.
Po zaregistrování příznaků funkcí aktualizujte poskytovatele prostředků, aby se zajistilo, že se změny použijí:
az provider register --namespace Microsoft.ContainerService
Po dokončení registrace můžete vytvořit nebo aktualizovat cluster tak, aby pro veřejné IP adresy uzlu používal předpony veřejné IP adresy se dvěma zásobníky.
Vytvoření předpon veřejných IP adres
Vytvořte předponu veřejné IP adresy pro protokolY IPv4 a IPv6 pomocí Azure CLI.
Pro protokol IPv4:
az network public-ip prefix create \
--resource-group <resourceGroup> \
--name <ipv4PrefixName> \
--location <region> \
--length 28 \
--sku Standard \
--version IPv4
Pro protokol IPv6:
az network public-ip prefix create \
--resource-group <resourceGroup> \
--name <ipv6PrefixName> \
--location <region> \
--length 124 \
--sku Standard \
--version IPv6
Po vytvoření předpon si poznamenejte ID prostředků obou předpon.
Vytvořte nový cluster s předponami veřejných IP adres uzlů s duálním zásobníkem
Při vytváření nového clusteru AKS pomocí parametru --node-public-ip-prefix-ids zadejte předpony veřejných IP adres IPv4 i IPv6.
az aks create \
--resource-group <resourceGroup> \
--name <aksClusterName> \
--location <region> \
--enable-node-public-ip \
--ip-families IPv4,IPv6 \
--network-plugin azure \
--network-plugin-mode overlay \
--node-public-ip-prefix-ids "<ipv4PrefixResourceId>,<ipv6PrefixResourceId>" \
--generate-ssh-keys
Parametr --node-public-ip-prefix-ids přijímá čárkami oddělený seznam ID prostředků předpony veřejné IP adresy. Seznam musí obsahovat jednu předponu IPv4 a jednu předponu IPv6.
Přidat skupinu uzlů s předponami veřejných IP adres uzlů pro dual-stack
Můžete také přidat fond uzlů s předponami veřejných IP adres uzlů duálního zásobníku do existujícího clusteru duálního zásobníku.
az aks nodepool add \
--resource-group <resourceGroup> \
--cluster-name <aksClusterName> \
--name <nodePoolName> \
--enable-node-public-ip \
--node-public-ip-prefix-ids "<ipv4PrefixResourceId>,<ipv6PrefixResourceId>"
Omezení
Následující omezení platí pro předponu veřejné IP adresy se dvěma zásobníky:
- Musíte zadat předponu IPv4 i IPv6. Konfigurace jenom IPv6 se nepodporují.
- Konfigurace veřejné IP adresy uzlu je neměnná. Chcete-li změnit předpony veřejných IP adres, musíte vytvořit nový fond uzlů a přesunout úlohy.
- Každému uzlu je přiřazena jedna veřejná IP adresa IPv6.
- Tato funkce není podporována v AKS Automatic ani při automatickém zřizování uzlů.
- Fondy uzlů s více síťovými adaptéry se nepodporují.
- Automatické škálování clusteru je podporované, ale ujistěte se, že nakonfigurovaný maximální počet uzlů nepřekračuje počet dostupných IP adres v předponě veřejné IP adresy, protože každý uzel vyžaduje jednu IP adresu z předpony.
Vyhledání veřejných IP adres pro uzly
Veřejné IP adresy uzlů můžete najít různými způsoby:
- Použijte příkaz
az vmss list-instance-public-ipsAzure CLI . - Použijte příkazy PowerShellu nebo Bash.
- Veřejné IP adresy můžete zobrazit také na webu Azure Portal zobrazením instancí ve škálovací sadě virtuálních počítačů.
Důležité
Skupina prostředků uzlu obsahuje uzly a jejich veřejné IP adresy. Skupinu prostředků uzlu použijte při provádění příkazů k vyhledání veřejných IP adres pro vaše uzly.
az vmss list-instance-public-ips --resource-group <MC_region_aksClusterName_region> --name <virtualMachineScaleSetName>
Použití značek veřejných IP adres na veřejných IP adresách uzlu
Značky veřejných IP adres je možné využít na veřejných IP adresách uzlu k využití funkce Předvolba směrování Azure , která je k dispozici v zadaných oblastech.
Požadavky
- Vyžaduje se AKS verze 1.29 nebo vyšší.
Vytvořte nový cluster pomocí předvolby směrování internet
az aks create \
--name <aksClusterName> \
--location <region> \
--resource-group <resourceGroup> \
--enable-node-public-ip \
--node-public-ip-tags RoutingPreference=Internet \
--generate-ssh-keys
Přidejte skupinu uzlů s předvolbou směrování Internet
az aks nodepool add --cluster-name <aksClusterName> \
--name <nodePoolName> \
--location <region> \
--resource-group <resourceGroup> \
--enable-node-public-ip \
--node-public-ip-tags RoutingPreference=Internet
Povolit připojení k portům hostitele a přidat fondy uzlů do skupin zabezpečení aplikací
Uzly AKS, které používají veřejné IP adresy uzlů a hostují služby na své hostitelské adrese, musí mít přidané pravidlo NSG pro povolení tohoto provozu. Přidáním požadovaných portů do konfigurace fondu uzlů se vytvoří příslušná pravidla povolení ve skupině zabezpečení sítě clusteru.
Pokud je v podsíti s clusterem, který používá vlastní virtuální síť, nakonfigurovaná skupina zabezpečení sítě, musíte do této skupiny zabezpečení sítě přidat pravidlo pro povolení. To lze omezit na uzly v dané skupině uzlů přidáním této skupiny uzlů do skupiny zabezpečení aplikací (ASG). Ve spravované skupině prostředků se ve výchozím nastavení vytvoří spravovaná skupina zabezpečení aplikací (ASG), pokud jsou zadány povolené porty hostitele. Uzly lze také přidat do jedné nebo více vlastních skupin zabezpečení aplikací (ASG) zadáním ID prostředku jedné nebo více skupin zabezpečení sítě (NSG) v parametrech fondu uzlů.
Formát specifikace portu hostitele
Při zadávání seznamu povolených portů použijte čárkami oddělený seznam s položkami ve formátu port/protocol nebo startPort-endPort/protocol.
Příklady:
- 80/tcp
- 80/tcp,443/tcp
- 53/udp,80/tcp
- 50000-60000/tcp
Požadavky
- Vyžaduje se AKS verze 1.29 nebo vyšší.
Vytvoření nového clusteru s povolenými porty a skupinami zabezpečení aplikací
az aks create \
--resource-group <resourceGroup> \
--name <aksClusterName> \
--nodepool-name <nodePoolName> \
--nodepool-allowed-host-ports 80/tcp,443/tcp,53/udp,40000-60000/tcp,40000-50000/udp\
--nodepool-asg-ids "<asgId>,<asgId>" \
--generate-ssh-keys
Přidání nového fondu uzlů s povolenými porty a skupinami zabezpečení aplikací
az aks nodepool add \
--resource-group <resourceGroup> \
--cluster-name <aksClusterName> \
--name <nodePoolName> \
--allowed-host-ports 80/tcp,443/tcp,53/udp,40000-60000/tcp,40000-50000/udp \
--asg-ids "<asgId>,<asgId>"
Aktualizace povolených portů a skupin zabezpečení aplikací pro fond uzlů
az aks nodepool update \
--resource-group <resourceGroup> \
--cluster-name <aksClusterName> \
--name <nodePoolName> \
--allowed-host-ports 80/tcp,443/tcp,53/udp,40000-60000/tcp,40000-50000/udp \
--asg-ids "<asgId>,<asgId>"
Automatické přiřazování hostitelských portů pro úlohy podů (PREVIEW)
Pokud jsou veřejné IP adresy nakonfigurované na uzlech, je možné využít porty hostitele, aby pody mohly přímo přijímat provoz, aniž by bylo nutné konfigurovat službu nástroje pro vyrovnávání zatížení. To je obzvlášť užitečné v situacích, jako jsou hry, kde proměnlivost IP adresy a portu uzlu nepředstavuje problém, protože párovací služba na známém názvu hostitele může v okamžiku připojení poskytnout správného hostitele a port. Vzhledem k tomu, že na stejném portu může naslouchat jenom jeden proces, může používání aplikací s hostitelskými porty vést k problémům s plánováním. Aby se tomuto problému zabránilo, AKS umožňuje systému dynamicky přiřadit dostupný port v době plánování, což brání konfliktům.
Upozornění
Provoz na hostitelských portech podů bude blokován výchozími pravidly NSG nastavenými v clusteru. Tato funkce by měla být kombinována s povolením hostitelských portů ve fondu uzlů, aby umožňovala tok provozu.
Důležité
Funkce AKS ve verzi Preview jsou k dispozici v samoobslužném režimu na základě dobrovolného přihlášení. Verze Preview jsou poskytovány „tak, jak jsou“ a „podle dostupnosti“, a nevztahují se na ně smlouvy o úrovni služeb ani omezená záruka. Verze Preview služby AKS mají částečnou zákaznickou podporu v režimu best effort. Proto tyto funkce nejsou určené pro produkční použití. Další informace najdete v následujících článcích podpory:
Požadavky
- Vyžaduje se AKS verze 1.29 nebo vyšší.
Zaregistrujte příznak funkce 'PodHostPortAutoAssignPreview'
PodHostPortAutoAssignPreview Příznak funkce zaregistrujte pomocí příkazu az feature register, jak je znázorněno v následujícím příkladu:
az feature register --namespace "Microsoft.ContainerService" --name "PodHostPortAutoAssignPreview"
Zobrazení stavu Zaregistrované trvá několik minut. Stav registrace ověřte pomocí příkazu az feature show:
az feature show --namespace "Microsoft.ContainerService" --name "PodHostPortAutoAssignPreview"
Pokud se stav projeví jako zaregistrovaný, aktualizujte registraci poskytovatele prostředků Microsoft.ContainerService pomocí příkazu az provider register :
az provider register --namespace Microsoft.ContainerService
Automatické přiřazení portu hostitele k podu
Aktivace automatického přiřazení portu hostitele se provádí nasazením úlohy bez portů hostitele a použitím kubernetes.azure.com/assign-hostports-for-containerports poznámky se seznamem portů, které potřebují přiřazení portů hostitele. Hodnota poznámky by měla být zadána jako čárkami oddělený seznam položek, jako port/protocolje , kde port je individuální číslo portu, které je definováno ve specifikaci podu a protokol je tcp nebo udp.
Porty se přiřadí z rozsahu 40000-59999 a budou v clusteru jedinečné. Přiřazené porty se také přidají do proměnných prostředí uvnitř podu, aby aplikace dokázala určit, jaké porty byly přiřazeny. Název proměnné prostředí bude v následujícím formátu (příklad níže): <deployment name>_PORT_<port number>_<protocol>_HOSTPORT, takže příklad by byl mydeployment_PORT_8080_TCP_HOSTPORT: 41932.
Tady je příklad echoserver nasazení znázorňující mapování portů hostitele pro porty 8080 a 8443:
apiVersion: apps/v1
kind: Deployment
metadata:
name: echoserver-hostport
labels:
app: echoserver-hostport
spec:
replicas: 3
selector:
matchLabels:
app: echoserver-hostport
template:
metadata:
annotations:
kubernetes.azure.com/assign-hostports-for-containerports: 8080/tcp,8443/tcp
labels:
app: echoserver-hostport
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- name: echoserver-hostport
image: k8s.gcr.io/echoserver:1.10
ports:
- name: http
containerPort: 8080
protocol: TCP
- name: https
containerPort: 8443
protocol: TCP
Když se nasazení aplikuje, položky hostPort budou v souboru YAML jednotlivých podů:
$ kubectl describe pod echoserver-hostport-75dc8d8855-4gjfc
<cut for brevity>
Containers:
echoserver-hostport:
Container ID: containerd://d0b75198afe0612091f412ee7cf7473f26c80660143a96b459b3e699ebaee54c
Image: k8s.gcr.io/echoserver:1.10
Image ID: k8s.gcr.io/echoserver@sha256:cb5c1bddd1b5665e1867a7fa1b5fa843a47ee433bbb75d4293888b71def53229 Ports: 8080/TCP, 8443/TCP
Host Ports: 46645/TCP, 49482/TCP
State: Running
Started: Thu, 12 Jan 2023 18:02:50 +0000
Ready: True
Restart Count: 0
Environment:
echoserver-hostport_PORT_8443_TCP_HOSTPORT: 49482
echoserver-hostport_PORT_8080_TCP_HOSTPORT: 46645
Další kroky
Přečtěte si o použití více fondů uzlů v AKS.
Informace o používání standardních nástrojů pro vyrovnávání zatížení v AKS