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 v poolu uzlů pomocí předpon veřejných IP adres v clusteru s podporou IPv4 i 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 pro aplikace, které pracují v prostředích vyžadujících soulad s IPv6.
Existují dvě podporované konfigurace:
- Použijte vlastní předpony IPv4 a IPv6. Každý uzel obdrží jednu adresu IPv4 z vaší předpony IPv4 a jednu adresu IPv6 z vaší předpony IPv6. Tuto konfiguraci použijte, když obě adresy musí pocházet z rozsahů adres, které spravujete, například když brána firewall nebo partnerská služba povolí provoz jenom z vašich předpon.
- Pouze vlastní předpona IPv6. Každý uzel obdrží jednu adresu IPv6 z vaší předpony IPv6 a Azure automaticky přiřadí adresu IPv4. Tuto konfiguraci použijte, pokud musí pouze adresa IPv6 pocházet z rozsahu, který spravujete. Vzhledem k tomu, že fond uzlů nepoužívá adresy z předpony IPv4, velikost předpony IPv4 neomezuje počet uzlů, na které se fond uzlů může škálovat.
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. Pro obě konfigurace se vyžaduje dual-stack cluster, včetně konfigurace předpony jenom IPv6.
- Váš cluster používá Azure CNI s překryvnými sítěmi.
- Vytvořili jste předpony veřejných IP adres, které plánujete použít ve stejném předplatném a oblasti jako cluster AKS. V závislosti na zvolené konfiguraci potřebujete buď jednu předponu IPv4 a jednu předponu IPv6, nebo jednu předponu IPv6.
- Každá předpona veřejné IP adresy používá SKU Standard a není připojená k Load Balanceru.
- 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 se u funkce nezobrazí 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. Pokud plánujete použít konfiguraci předpony jen pro protokol IPv6, vytvořte pouze předponu IPv6.
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ředku každé předpony.
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 může obsahovat maximálně jednu předponu IPv4 a jednu předponu IPv6. Na pořadí nezáleží, protože AKS určuje verzi PROTOKOLU IP z každé odkazované předpony.
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>"
Použít předponu veřejné IP adresy pouze s protokolem IPv6
Pokud potřebujete jenom adresu IPv6, která pochází z předpony, kterou řídíte, zadejte jednu předponu IPv6. Každý uzel obdrží adresu IPv6 z vaší předpony a Azure automaticky přiřadí adresu IPv4. Skupina uzlů stále vyžaduje cluster s duálním stackem.
Tuto konfiguraci použijte v případě, že velikost předpony IPv4 by jinak omezovala, jak daleko může fond uzlů škálovat. Vzhledem k tomu, že fond uzlů nečerpá adresy IPv4 z předpony, omezuje počet uzlů pouze kapacita předpony IPv6.
Vytvořte nový cluster s předponou veřejné IP adresy uzlu jen pro 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 "<ipv6PrefixResourceId>" \
--generate-ssh-keys
Přidejte fond uzlů s předponou veřejné IP adresy jen pro IPv6 do existujícího clusteru se dvěma zásobníky:
az aks nodepool add \
--resource-group <resourceGroup> \
--cluster-name <aksClusterName> \
--name <nodePoolName> \
--enable-node-public-ip \
--node-public-ip-prefix-ids "<ipv6PrefixResourceId>"
Vzhledem k tomu, že Azure automaticky přiřadí adresu IPv4, není adresa IPv4 každého uzlu předvídatelná a nemůžete ji přidat do seznamu povolených položek předem. V důsledku toho nemůžete v clusteru, který používá autorizované rozsahy IP adres serveru API, použít předponu veřejné IP adresy pouze s protokolem IPv6. Místo toho použijte API Server VNet Integration nebo privátní cluster nebo do seznamu přidejte předponu IPv4.
Ověřte konfiguraci předpony veřejné IP adresy uzlu
Pomocí příkazu az aks nodepool show ověřte, které předpony fond uzlů používá:
az aks nodepool show \
--resource-group <resourceGroup> \
--cluster-name <aksClusterName> \
--name <nodePoolName> \
--query "networkProfile.nodePublicIPPrefixIDs"
Zobrazte seznam veřejných IP adres, které uzly získaly pomocí příkazu az vmss list-instance-public-ips. Použijte skupinu prostředků uzlu:
az vmss list-instance-public-ips \
--resource-group <MC_resourceGroup_aksClusterName_region> \
--name <virtualMachineScaleSetName> \
--query "[].{name:name, ipAddress:ipAddress, version:publicIPAddressVersion}" \
--output table
Pro předponu jen pro protokol IPv6 má každý uzel jednu adresu IPv6 z vaší předpony a jednu adresu IPv4 z fondu adres spravovaných Azure.
Omezení
Následující omezení platí pro předpony veřejných IP adres uzlů.
Seznam předpon:
- Seznam předpon může obsahovat maximálně jednu předponu IPv4 a jednu předponu IPv6. Dvě předpony stejné verze IP jsou odmítnuty.
- Pokud zadáte předpony, musíte ve fondu uzlů povolit veřejné IP adresy uzlů.
- Nemůžete použít parametry
--node-public-ip-prefix-idsa--node-public-ip-prefix-idve stejném příkazu. - 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.
Zdroje předpony:
- Každá předpona musí používat standardní SKU. Předpony Basic a Standard V2 se nepodporují.
- Každá předpona musí být ve stejném předplatném a stejné oblasti jako cluster AKS.
- Nemůžete použít předponu, která už je připojená k nástroji pro vyrovnávání zátěže.
- Pokud fond uzlů používá zóny dostupnosti, musí zóny každé předpony pokrývat zóny fondu uzlů. Zónově redundantní předpona, která nemá přiřazené žádné zóny, funguje s libovolným fondem uzlů.
Kapacita a škálování:
- Každá předpona musí mít dostatek adres pro počet uzlů v uzlovém fondu, protože každý uzel využívá jednu adresu z každé zadané předpony.
- Automatické škálování clusteru je podporované, ale ujistěte se, že nakonfigurovaný maximální počet uzlů nepřekročí počet dostupných IP adres v každé předponě, kterou zadáte. Pokud použijete předponu jenom IPv6, omezí počet uzlů jenom předpona IPv6, protože Azure automaticky přiřazuje adresy IPv4.
Kompatibilita funkcí:
- V clusteru, který používá autorizované rozsahy IP adres serveru API, nemůžete použít předponu veřejné IP adresy pouze IPv6, protože Azure automaticky přiřadí adresu IPv4 uzlu a nemůžete ji předem přidat do seznamu povolených adres. Místo toho použijte integraci virtuální sítě s rozhraním API Server nebo soukromý cluster nebo do seznamu přidejte předponu IPv4.
- 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í.
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ě 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
- 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