Aracılığıyla paylaş


Azure Stack Hub'da özel bir sanal ağa Kubernetes kümesi dağıtma

Özel bir sanal ağda Azure Kubernetes Service (AKS) altyapısını kullanarak kubernetes kümesi dağıtabilirsiniz. Bu makalede, sanal ağınızda ihtiyacınız olan bilgileri bulma konusuna bakabilirsiniz. Kümeniz tarafından kullanılan IP adreslerini hesaplama, API Modeli'nde valeleri ayarlama ve yol tablosu ile ağ güvenlik grubunu ayarlama adımlarını bulabilirsiniz.

AKS altyapısını kullanan Azure Stack Hub'daki Kubernetes kümesi kubenet ağ eklentisini kullanır. Azure Stack Hub'da AKS altyapısı, Azure CNI ağ eklentisini de destekler.

Özel sanal ağ oluştururken kısıtlamalar

  • Özel sanal ağ, Kubernetes kümesinin diğer tüm bileşenleriyle aynı abonelikte olmalıdır.
  • Denetim düzlemi düğümleri havuzu ve aracı düğümleri havuzu aynı sanal ağda olmalıdır. Düğümlerinizi aynı sanal ağ içindeki farklı alt ağlara dağıtabilirsiniz.
  • Kubernetes kümesi alt ağı, özel sanal ağ IP aralığının alanı içinde bir IP aralığı kullanmalıdır, bkz. IP adresi bloğunu alma.
  • Düğüm alt ağlarının önerilen boyutunun kullanılan ağ eklentisinin türüne bağlı olduğunu düşünün. Genel bir yönerge olarak Azure CNI, aracı düğümü havuzlarını destekleyen alt ağ için kubenet'e göre daha fazla SAYıDA IP adresi gerektirir. Aşağıdaki kubenet ve Azure CNI örneklerine bakın.
  • 169.254.0.0/16 Adres alanı Kubernetes kümeleri için özel VNET'ler için kullanılamayabilir.

Özel sanal ağ oluşturma

Azure Stack Hub örneğinizde özel bir sanal ağınız olmalıdır. Daha fazla bilgi için bkz. Hızlı Başlangıç: Azure portal kullanarak sanal ağ oluşturma.

Sanal ağınızda yeni bir alt ağ oluşturun. Alt ağ Kaynak Kimliği ve IP adresi aralığını almanız gerekir. Kümenizi dağıtırken API modelinizde Kaynak Kimliği ve aralığını kullanacaksınız.

  1. Azure Stack Hub örneğinizde Azure Stack Hub kullanıcı portalını açın.

  2. Tüm kaynaklar’ı seçin.

  3. Arama kutusuna sanal ağınızın adını girin.

  4. Alt ağlar>+ Alt Ağlar'ı seçerek bir alt ağ ekleyin.

  5. CIDR gösterimini kullanarak Ad veAdres aralığı ekleyin. Tamam’ı seçin.

  6. Sanal ağlar dikey penceresinde Özellikler'i seçin. Kaynak Kimliğini kopyalayın ve ekleyin/subnets/<nameofyoursubnect>. Bu değeri, kümenizin API modelindeki anahtar için değeriniz vnetSubnetId olarak kullanacaksınız. Alt ağın Kaynak Kimliği aşağıdaki biçimi kullanır:
    /subscriptions/SUB_ID/resourceGroups/RG_NAME/providers/Microsoft.Network/virtualNetworks/VNET_NAME/subnets/SUBNET_NAME

    sanal ağ Kaynak Kimliği

  7. Sanal ağlar dikey penceresinde Alt ağlar'ı seçin. Alt ağ adını seçin, örneğin control-plane-sn.

    Alt ağı bir ağ güvenlik grubuyla (NSG) ilişkilendirmayın.

    sanal ağ CIDR bloğu

  8. Alt ağ dikey penceresinde her alt ağın adres aralığını (CIDR Bloğu) not edin.

Adres alanı seçmeyle ilgili dikkat edilmesi gerekenler

Özel bir sanal ağ oluşturduğunuzda, ağınızın IP adresi alanını ve her alt ağ için bir IP adresi aralığı belirtirsiniz. Kubernetes kümenizde kullanılacak adres alanlarını ve aralıkları seçerken aşağıdaki faktörleri göz önünde bulundurun:

  • Çakışan adres alanları IP adresi çakışmalarına veya iletişim hatalarına neden olabilir. ÇAKıŞAN IP adresleri riskini azaltmak için yeni sanal ağınız için benzersiz bir adres alanı seçin.
  • , 172.16/12ve 192.168/16 aralıklarındaki 10/8adres alanları genellikle özel ağlar için kullanılır ve bunlar mevcut veri merkezi altyapınız tarafından kullanılabilir. Kubernetes uygulamalarınız veri merkezinizdeki kaynakları kullanıyorsa, özel sanal ağınız için veri merkezinizin adres alanından farklı bir adres alanı seçerek çakışma riskini azaltın.
  • Kubernetes kümeniz için ayrılmış bir alt ağ kullanmanızı öneririz.
  • Birden çok mevcut sanal ağ kullanıyorsanız, sanal ağ eşlemesi kullanmayı planlıyorsanız her ağda farklı adres alanları kullanmayı göz önünde bulundurun. Çakışan adres alanları eşlemeyi etkinleştirme yeteneğinizi bozabilir.

IP adresi bloklarını alma

AKS altyapısı, mevcut bir sanal ağda dağıtımı destekler. Mevcut bir sanal ağa dağıtıldığında, kümeniz aracı düğümleri, denetim düzlemi düğümleri, küme hizmetleri ve kapsayıcılar (podlar) için ardışık adres blokları kullanır. Her adres bloğu, sanal ağ içindeki bir alt ağa çevrilebilir. Küme dağıtımındaki tüm adres blokları genel sanal ağ adres alanının bir parçası olmalıdır. Sanal ağ adres alanının dışındaki adres bloklarının seçilmesi bağlantı sorunlarına neden olabilir.

Kubernetes kümesi ayarlanırken en az üç adres bloğu gerekir:

  • Düğüm adres bloğu: Bu, küme düğümlerine adres atamak için kullanılan adres bloğudur. Bu, tüm küme düğümleri için tek bir adres bloğu veya denetim düzlemi ve aracı havuzları için ayrı bloklar (alt ağlar) olabilir. Bu bloğun adres aralığını seçerken kümenizdeki düğüm sayısını dikkate alın. Azure CNI düğümleri ve kapsayıcıları için adreslerini aynı adres bloğundan alır, bu nedenle Azure CNI kullanırken adres aralığını seçerken kümenize dağıtmak istediğiniz kapsayıcı sayısını dikkate alır.
  • Hizmetler adres bloğu: Bu, Kubernetes kümesine dağıtılan hizmetlerin küme adreslerini alacakları adres bloğudur. Bu bloğun adres aralığını seçerken kümenizde çalıştırmayı planladığınız hizmet sayısı üst sınırını dikkate alın.
  • Küme adres bloğu: Bu, podların küme adreslerini alacakları adres bloğudur. Bu bloğun adres aralığını seçerken kümenizde çalıştırmayı planladığınız pod sayısı üst sınırını dikkate alın. Daha önce belirtildiği gibi Azure CNI için küme ve düğüm adres blokları aynıdır.

Adres bloklarına ek olarak, denetim düzlemi düğümleri için iki değer daha ayarlamanız gerekir. Kümeniz için ayırmanız gereken IP adresi sayısını ve alt ağ IP alanı içinde ardışık ilk statik IP'yi bilmeniz gerekir. AKS altyapısı, birden çok denetim düzlemi düğümü kullandığınızda en fazla 16 kullanılmayan IP adresi aralığı gerektirir. Küme, her denetim düzlemi için en fazla beş denetim düzlemi düğümü için bir IP adresi kullanır. AKS altyapısı, oda ip adresi rezervasyonu için son kontrol düzlemi düğümünden sonraki 10 IP adresini de gerektirir. Son olarak, yük dengeleyici tarafından kontrol düzlemi düğümleri ve oda başı rezervasyonundan sonra toplam 16 ip adresi kullanılacaktır. IP adresleri bloğunuzu yerleştirirken alt ağ, mevcut IP adreslerinin aşağıdaki ayırmalarını gerektirir:

  • İlk dört IP adresi ve son IP adresi ayrılmıştır ve hiçbir Azure alt asında kullanılamaz.
  • 16 IP adresi içeren bir arabellek açık bırakılmalıdır.
  • IP çakışmalarını önlemek için kümenizin ilk IP adresinin değeri adres alanının sonuna doğru olmalıdır. Mümkünse, özelliğini alt ağdaki kullanılabilir IP adresi alanının sonuna yakın bir IP adresine atayınfirstConsecutiveStaticIP.

Örneğin, üç denetim düzlemi düğümüne sahip bir küme için. 256 adresli bir alt ağ kullanıyorsanız (örneğin, 10.100.0.0/24) 239'un öncesinde ilk ardışık statik IP adresinizi ayarlamanız gerekir. Aşağıdaki tabloda adresler ve dikkat edilmesi gerekenler gösterilmektedir:

/24 alt ağı için aralık Sayı Not
172.100.0.0 - 172.100.0.3 4 Azure alt asında ayrılmıştır.
172.100.0.224-172.100.0.238 14 AKS altyapısı tanımlı küme için IP adresi sayısı.

3 kontrol düzlemi düğümü için 3 IP adresi
Kafa odası için 10 IP adresi
Yük dengeleyici için 1 IP adresi
172.100.0.238 - 172.100.0.254 16 16 IP adresi arabelleği.
172.100.0.255 1 Azure alt asında ayrılmıştır.

Bu örnekte özelliği firstConsecutiveStaticIP olacaktır 172.100.0.224.

Örneğin 60 binden fazla adresi olan /16 gibi daha büyük alt ağlar için statik IP atamalarınızı ağ alanının sonuna ayarlamayı pratik bulamayabilirsiniz. Küme statik IP adresi aralığınızı IP alanınızdaki ilk 24 adresten uzağa ayarlayarak, adresleri talep ederken kümenin dayanıklı olmasını sağlayın.

Kubenet adres blokları örneği

Aşağıdaki örnekte, denetim düzlemi düğümü için ayrılmış alt ağlara ve havuz başına üç düğüme sahip aracı düğümü havuzlarına sahip kubenet ağ eklentisini kullanarak bu önemli noktaların bir küme için sanal ağdaki adres alanını nasıl doldurduğunu görebilirsiniz.

Sanal ağ adres alanı: 10.100.0.0/16.

Adres bloğu (alt ağ) CIDR IP aralığı IP Sayısı (kullanılabilir)
Denetim düzlemi düğümleri bloğu 10.100.0.0/24 10.100.0.0 - 10.100.0.255 255 - 4 ayrılmış = 251
Aracı düğümleri bloğu 10.100.1.0/24 10.100.1.0 - 10.100.1.255 255 - 4 ayrılmış = 251
Hizmetler bloğu 10.100.16.0/20 10.100.16.0 - 10.100.31.255 4.096 - 5 ayrılmış = 4.091
Küme bloğu 10.100.128.0/17 10.100.128.0 - 10.100.255.255 32.768 - 5 ayrılmış = 32.763

Bu örnekte firstConsecutiveStaticIP özelliği olacaktır 10.100.0.239.

Azure CNI adres blokları örneği

Aşağıdaki örnekte, denetim düzlemi için ayrılmış alt ağlara ve havuz başına üç düğüme sahip aracı düğümü havuzlarına sahip Azure CNI ağ eklentisini kullanarak bu önemli noktaların bir kümenin sanal ağındaki adres alanını nasıl doldurduğunu görebilirsiniz.

Sanal ağ adres alanı: 172.24.0.0/16.

Not

Ortamınızda genel IP aralığı CIDR10.0.0.0/8 içindeyse ağ eklentisi olarak kubenet kullanın.

Adres bloğu (alt ağ) CIDR IP aralığı IP Sayısı (kullanılabilir)
Denetim düzlemi düğümleri bloğu 172.24.0.0/24 172.24.0.0 - 172.24.0.255 255 - 4 ayrılmış = 251
Aracı düğümleri & küme bloğu 172.24.128.0/17 172.24.128.0 - 172.24.255.255 32.768 - 5 ayrılmış = 32.763
Hizmetler bloğu 172.24.16.0/20 172.24.16.0 - 172.24.31.255 4.096 - 5 ayrılmış = 4.091

Bu örnekte firstConsecutiveStaticIP özelliği olacaktır 172.24.0.239.

API modelini güncelleştirme

Kümeyi AKS altyapısından özel sanal ağınıza dağıtmak için kullanılan API modelini güncelleştirin.

masterProfile içinde aşağıdaki değerleri ayarlayın:

Alan Örnek Description
vnetSubnetId /subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn Alt ağın Azure Resource Manager yol kimliğini belirtin. Bu değer, yukarıdaki denetim düzlemi düğümleri adres bloğuyla eşler.
firstConsecutiveStaticIP 10.100.0.239 yapılandırma özelliğine firstConsecutiveStaticIP , istenen alt ağdaki kullanılabilir IP adresi alanının sonuna yakın bir IP adresi atayın. firstConsecutiveStaticIP yalnızca denetim düzlemi düğüm havuzu için geçerlidir.

agentPoolProfiles içinde aşağıdaki değerleri ayarlayın:

Alan Örnek Description
vnetSubnetId /subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/agents-sn Alt ağın Azure Resource Manager yol kimliğini belirtin. Bu değer yukarıdaki aracı düğümleri adres bloğuyla eşler.

orchestratorProfile içinde kubernetesConfig öğesini bulun ve aşağıdaki değeri ayarlayın:

Alan Örnek Description
clusterSubnet 10.100.128.0/17 Pod ağ arabirimleri için IP adreslerini ayırmada kullanılan IP alt ağı. Bu değer yukarıdaki küme adres bloğuyla eşler. Alt ağ sanal ağ adres alanında olmalıdır. Azure CNI etkinleştirildiğinde varsayılan değer 10.240.0.0/12'dir. Azure CNI olmadan varsayılan değer 10.244.0.0/16'dır. /24 alt ağı yerine /16 kullanın. /24 kullanıyorsanız, bu alt ağ yalnızca bir düğüme atanır. DIĞER düğüme POD ağı atanmayacak, ip alanınız tükeneceğinden kümede hazır olmayacaklar.
serviceCidr 10.100.16.0/20 Kümede dağıtılan hizmetlerin IP adreslerini ayırmada kullanılan IP alt ağı. Bu değer yukarıdaki küme hizmetleri bloğuyla eşler.
dnsServiceIP 10.100.16.10 Küme DNS hizmetine atanacak IP adresi. Adres serviceCidr alt ağından gelmelidir. ServiceCidr belirtilirken bu değerin ayarlanması gerekir. Varsayılan değer, serviceCidr alt 10 adresidir.

Örneğin, kubenet kullanılıyorsa:
Alt ağın 10.100.0.0/16control-plane-sn10.100.0.0/24 ve agents-sn olduğu yerin ağ adresi alanıyla 10.100.1.0/24

"masterProfile": {
  ...
  "vnetSubnetId": "/subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn",
  "firstConsecutiveStaticIP": "10.100.0.239",
  ...
},
...
"agentPoolProfiles": [
  {
    ...
    "vnetSubnetId": "/subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/agents-sn",
    ...
  },
    ...
"kubernetesConfig": [
  {
    ...
    "clusterSubnet": "10.100.128.0/17",
    "serviceCidr": "10.100.16.0/20",
    "dnsServiceIP" : "10.100.16.10",

    ...
  },

Örneğin, Azure CNI kullanılıyorsa:
Alt ağın 172.24.0.0/16control-plane-sn172.24.0.0/24 ve k8s-sn olduğu yerin ağ adresi alanıyla 172.24.128.0/17

"masterProfile": {
  ...
  "vnetSubnetId": "/subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn",
  "firstConsecutiveStaticIP": "172.24.0.239",
  ...
},
...
"agentPoolProfiles": [
  {
    ...
    "vnetSubnetId": "/subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/k8s-sn",
    ...
  },
    ...
"kubernetesConfig": [
  {
    ...
    "clusterSubnet": "172.24.128.0/17",
    "serviceCidr": "172.24.16.0/20",
    "dnsServiceIP" : "172.24.16.10",
    ...
  },

Kümenizi dağıtma

DEĞERLERI API modelinize ekledikten sonra AKS altyapısındaki komutunu kullanarak deploy istemci makinenizden kümenizi dağıtabilirsiniz. Yönergeler için bkz. Kubernetes kümesi dağıtma.

Yol tablosunu ayarlama

Kubenet kullanıyorsanız, örneğin, networkPluginAPI modeli yapılandırma nesnesinde kubernetesConfig : kubenet . Kümenizi dağıttığınızda Azure Stack kullanıcı portalında sanal ağınıza dönün. Alt ağ dikey penceresinde hem yol tablosunu hem de ağ güvenlik grubunu (NSG) ayarlayın. Bir kümeyi özel sanal ağınıza başarıyla dağıttıktan sonra, kümenizin kaynak grubundaki dikey penceresinden Yönlendirme Tablosu kaynağının kimliğini alın.

  1. Azure Stack Hub örneğinizde Azure Stack Hub kullanıcı portalını açın.

  2. Tüm kaynaklar’ı seçin.

  3. Arama kutusuna sanal ağınızın adını girin.

  4. Alt ağlar'ı ve ardından kümenizi içeren alt ağın adını seçin.

    yol tablosu ve ağ güvenlik grubu

  5. Yönlendirme tablosu'nu ve ardından kümeniz için yönlendirme tablosunu seçin.

  6. Bunun, alt ağ da dahil olmak üzere API modelinde belirtilen her alt ağ için yapıldığından masterProfile emin olun.

Not

Kubernetes Windows kümesi için özel sanal ağda bilinen bir sorun vardır.

Sonraki adımlar