إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تساعدك هذه المقالة في نشر عنقود AKS خاص قائم على الروابط باستخدام Azure CLI أو Terraform. إذا كنت مهتما بإنشاء عنقود AKS بدون رابط أو نفق خاص مطلوب، راجع إنشاء عنقود خدمة Azure Kubernetes (AKS) مع تكامل API Server VNet.
نظرة عامة على التجمعات الخاصة في AKS
في مجموعة خاصة، يحتوي مستوى التحكم أو خادم API على عناوين IP داخلية تم تحديدها في مستند RFC 1918 - تخصيص العنوان للإنترنت الخاص. باستخدام نظام مجموعة خاص، يمكنك التأكد من بقاء نسبة استخدام الشبكة بين خادم API وتجمعات العقد الخاصة بك على الشبكة الخاصة فقط.
مستوى التحكم أو خادم API موجود في مجموعة موارد Azure تديرها AKS، ومجموعة العقد أو مجموعة العقد الخاصة بك ضمن مجموعة الموارد الخاصة بك. يمكن للخادم والمجموعة أو تجمع العقد التواصل مع بعضهما البعض من خلال خدمة Azure Private Link في الشبكة الافتراضية لخادم API ونقطة نهاية خاصة مكشوفة على الشبكة الفرعية لعنقود AKS الخاص بك.
عندما تنشئ عنقود AKS خاص، ينشئ AKS أسماء نطاقات خاصة وعامة مؤهلة بالكامل (FQDNs) مع مناطق DNS مقابلة بشكل افتراضي. للحصول على خيارات تكوين DNS التفصيلية، انظر تكوين منطقة DNS خاصة، أو منطقة فرعية خاصة DNS، أو نطاق فرعي مخصص.
توافر المناطق
تتوفر مجموعات خاصة في المناطق العامة، Azure Government، و Microsoft Azure تديرها مناطق 21Vianet حيث يدعم AKS.
هام
سيتم إيقاف جميع ميزات Microsoft Defender for Cloud رسميا في منطقة Azure في الصين في 18 أغسطس 2026. بسبب هذا التقاعد القادم، لم يعد بإمكان عملاء Azure في الصين ضم اشتراكات جديدة للخدمة. الاشتراك الجديد هو أي اشتراك لم يكن قد تم إدماجه بالفعل في خدمة Microsoft Defender for Cloud قبل 18 أغسطس 2025، وهو تاريخ إعلان التقاعد. لمزيد من المعلومات حول التقاعد، انظر Microsoft Defender for Cloud الإهدار في Microsoft Azure Eded by 21Vianet Announcement.
يجب على العملاء العمل مع ممثلي حساباتهم في Microsoft Azure التي تديرها 21Vianet لتقييم تأثير هذا التقاعد على عملياتهم الخاصة.
المتطلبات المسبقة لمجموعات AKS الخاصة
اشتراك نشط في Azure. إذا لم يكن لديك اشتراك Azure، أنشئ حسابا مجاني قبل أن تبدأ.
قم بتعيين سياق اشتراكك باستخدام
az account setالأمر. على سبيل المثال:az account set --subscription "00000000-0000-0000-0000-000000000000"Azure CLI version 2.28.0 أو أعلى. ابحث عن الإصدار الخاص بك باستخدام الأمر
az --version. إذا كنت بحاجة إلى تثبيت أو ترقية، راجع تثبيت Azure CLI.إذا كنت تستخدم Azure Resource Manager (ARM) أو واجهة برمجة تطبيقات REST Azure، يجب أن تكون نسخة واجهة برمجة التطبيقات AKS 2021-05-01 أو أعلى.
لاستخدام خادم DNS مخصص، أضف عنوان IP العام Azure 168.63.129.16 كخادم DNS للأعلى في خادم DNS مخصص، وتأكد من إضافة عنوان IP عام هذا كخادم DNS first. لمزيد من المعلومات حول عنوان Azure IP، راجع ما هو عنوان IP 168.63.129.16؟
- يجب أن تكون منطقة DNS في العنقود هي ما تعيد إرساله إلى 168.63.129.16. يمكنك العثور على مزيد من المعلومات حول أسماء المناطق في Azure خدمات DNS zon configuration.
يمكن أن يكون وضع العنقود الخاص ب "عروسك AKS" المفعلة مع تكامل خادم API VNet مفعلا. لمزيد من المعلومات، راجع تفعيل أو تعطيل وضع العنقود الخاص على مجموعة موجودة مع تكامل API Server VNet.
إذا كنت بحاجة إلى تفعيل Azure Container Registry على عنقود AKS خاص، قم بإعداد رابط خاص لسجل الحاويات في الشبكة الافتراضية للعنقود (VNet) أو قم بإعداد الارتباط بين VNet الخاص بسجل الحاويات وVNet الخاص بالعنقود.
تم تركيب Kubectl . يمكنك تثبيته محليا باستخدام الأمر
az aks install-cli.
- تم تثبيت Terraform محليا. للحصول على تعليمات التثبيت، راجع تثبيت Terraform.
هام
ابتداء من 30 نوفمبر 2025، لم يعد خدمة Azure Kubernetes (AKS) يدعم أو يوفر تحديثات الأمان ل Azure Linux 2.0. صورة عقدة لينكس 2.0 Azure متجمدة عند إصدار 202512.06.0. ابتداء من 31 مارس 2026، سيتم إزالة صور العقد، ولن تتمكن من توسيع مجموعات العقد الخاصة بك. انتقل إلى نسخة مدعومة Azure لينكس عن طريق ترقية مجموعات العقد إلى نسخة Kubernetes مدعومة أو الانتقال إلى osSku AzureLinux3. لمزيد من المعلومات، راجع Retirement GitHub issue وتحديث Azure إعلان التقاعد. للبقاء على اطلاع بالإعلانات والتحديثات، تابع ملاحظات الإصدار AKS.
القيود
- نطاقات IP المصرح بها تنطبق فقط على خادم واجهة برمجة التطبيقات العامة. لا يمكنك تطبيق هذه النطاقات على نقطة نهاية خادم API الخاص.
- Azure Private Link قيود الخدمة تنطبق على المجموعات الخاصة.
- لا يوجد دعم للوكلاء المستضافين Azure DevOps Microsoft مع مجموعات خاصة. ضع في اعتبارك استخدام عوامل مستضافة ذاتيا.
- حذف أو تعديل نقطة النهاية الخاصة في شبكة العميل الفرعية يؤدي إلى توقف العنقود عن العمل.
- خدمة Azure Private Link مدعومة فقط على Standard موازن تحميل Azure. لا يدعم Basic موازن تحميل Azure.
المركز وتحدثت مع DNS مخصص لمجموعات AKS الخاصة
تستخدم <بنى c0>Hub وSpokes عادة لنشر الشبكات في Azure. في العديد من هذه النشرات، يتم تكوين إعدادات DNS في VNets المنفصلة للإشارة إلى محول DNS مركزي للسماح بحل DNS على الموقع المحلي وعلى Azure.
يوضح المخطط التالي بنية محور وكلوب لمجموعة AKS خاصة مع DNS مخصص:
- عند إنشاء عنقود خاص، يتم إنشاء نقطة نهاية خاصة (1) ومنطقة DNS خاصة (2) في مجموعة الموارد المدارة بواسطة العنقود بشكل افتراضي. يستخدم نظام المجموعة سجلا
Aفي المنطقة الخاصة لحل IP لنقطة النهاية الخاصة للاتصال بخادم API. - ترتبط منطقة DNS الخاصة فقط ب VNet الذي ترتبط به عقد العنقود (3)، مما يعني أن نقطة النهاية الخاصة لا يمكن حلها إلا بواسطة المضيفين في ذلك ال VNet المرتبط. في الحالات التي لا يتم فيها تكوين DNS مخصص على VNet (الافتراضي)، يعمل بدون مشاكل حيث يشير المضيفون إلى 168.63.129.16 لنظام DNS يمكنه حل السجلات في منطقة DNS الخاصة بسبب الرابط.
- إذا احتفظت بسلوك منطقة DNS الخاصة الافتراضية، يحاول AKS ربط المنطقة مباشرة ب VNet المنطوق الذي يستضيف العنقود حتى عندما تكون المنطقة مرتبطة بالفعل ب VNet مركزي.
- في شبكات VNet ذات الكلمة التي تستخدم خوادم DNS مخصصة، يمكن أن يفشل هذا الإجراء إذا كانت هوية العنقود المدارة تفتقر إلى مساهم الشبكة على VNet المضطرب. لمنع الفشل، اختر أحد التكوينات المدعومة التالية:
-
منطقة DNS خاصة مخصصة: وفر منطقة خاصة موجودة وقم بتعيين
privateDNSZone/--private-dns-zoneمعرف الموارد الخاص بها. ربط تلك المنطقة ب VNet المناسب (مثل VNet المحوري) واضبطهpublicDNSعلىfalse/ استخدم--disable-public-fqdn. -
DNS العام فقط: قم بتعطيل إنشاء المنطقة الخاصة عن طريق تعيين
privateDNSZone/--private-dns-zoneعلىnonepublicDNSالقيمة الافتراضية (true) / لا تستخدم--disable-public-fqdn.
-
منطقة DNS خاصة مخصصة: وفر منطقة خاصة موجودة وقم بتعيين
- في شبكات VNet ذات الكلمة التي تستخدم خوادم DNS مخصصة، يمكن أن يفشل هذا الإجراء إذا كانت هوية العنقود المدارة تفتقر إلى مساهم الشبكة على VNet المضطرب. لمنع الفشل، اختر أحد التكوينات المدعومة التالية:
- إذا كنت تستخدم جدول المسار الخاص بك (BYO) مع Kubenet وBYO DNS مع المجموعات الخاصة، فإن إنشاء المجموعات يفشل في النجاح. تحتاج إلى إقران
RouteTableفي مجموعة موارد العقدة بالشبكة الفرعية بعد فشل إنشاء نظام المجموعة في جعل الإنشاء ناجحا.
قيود على عناقيد AKS الخاصة مع DNS مخصص
- الإعداد
privateDNSZone/--private-dns-zoneعلىnoneوفيpublicDNS: false/--disable-public-fqdnنفس الوقت غير مدعوم. - لا يدعم إعادة التوجيه الشرطي المجالات الفرعية.
إنشاء مجموعة موارد
إنشاء مجموعة موارد باستخدام az group create الأمر . يمكنك أيضا استخدام مجموعة موارد موجودة لمجموعة AKS الخاصة بك.
az group create \
--name <private-cluster-resource-group> \
--location <location>
أنشئ عنقود AKS خاص مع شبكة أساسية افتراضية
إنشاء نظام مجموعة خاصة مع الشبكات الأساسية الافتراضية az aks create باستخدام الأمر مع العلامة --enable-private-cluster .
المعلمات الرئيسية في هذا الأمر:
-
--enable-private-cluster: يفعل وضع العنقود الخاص.
az aks create \
--name <private-cluster-name> \
--resource-group <private-cluster-resource-group> \
--load-balancer-sku standard \
--enable-private-cluster \
--generate-ssh-keys
أنشئ ملفا باسم
main.tfوأضف الكود التالي لتعريف نسخة Terraform وتحديد مزود Azure:terraform { required_version = ">= 1.3.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~> 4.0" } } } provider "azurerm" { features {} subscription_id = var.subscription_id }أضف الكود التالي إلى
main.tfلإنشاء متغيرات إدخال لمعرف الاشتراك Azure، واسم مجموعة الموارد، والموقع، واسم عنقود AKS. يمكنك تعديل القيم الافتراضية حسب الحاجة.variable "subscription_id" { description = "The Azure subscription ID." type = string } variable "resource_group_name" { description = "The name of the resource group for the AKS cluster." type = string default = "rg-private-aks-basic" } variable "location" { description = "The Azure region where the resources will be created." type = string default = "eastus" } variable "aks_cluster_name" { description = "The name of the AKS cluster." type = string default = "aks-private-basic" }أضف الكود التالي إلى
main.tfلإنشاء مجموعة موارد Azure:resource "azurerm_resource_group" "this" { name = var.resource_group_name location = var.location }أضف الكود التالي لإنشاء
main.tfعنقود AKS خاص مع شبكة أساسية:resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "privatebasicaks" private_cluster_enabled = true default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" } identity { type = "SystemAssigned" } network_profile { load_balancer_sku = "standard" network_plugin = "kubenet" } }اتبع الخطوات لتهيئة Terraform، وتنسيق والتحقق من تكوين Terraform، وإنشاء خطة تنفيذ Terraform، وتطبيق تكوين Terraform، والاتصال بعنقود AKS.
أنشئ عنقود AKS خاص مع شبكات متقدمة
أنشئ عنقودا خاصا مع شبكات متقدمة باستخدام az aks create الأمر.
المعلمات الرئيسية في هذا الأمر:
-
--enable-private-cluster: يفعل وضع العنقود الخاص. -
--network-plugin azure: يحدد إضافة شبكة CNI Azure. -
--vnet-subnet-id <subnet-id>: معرف الموارد لشبكة فرعية موجودة في VNet. -
--dns-service-ip <dns-service-ip>: عنوان IP متاح ضمن نطاق عناوين خدمة Kubernetes لاستخدامه لخدمة DNS العنقودية. على سبيل المثال،10.2.0.10. -
--service-cidr <service-cidr>: نطاق عناوين IP لترميز CIDR يمكن من خلاله تعيين عناوين IP لمجموعة الخدمات. على سبيل المثال،10.2.0.0/24.
az aks create \
--resource-group <private-cluster-resource-group> \
--name <private-cluster-name> \
--load-balancer-sku standard \
--enable-private-cluster \
--network-plugin azure \
--vnet-subnet-id <subnet-id> \
--dns-service-ip <dns-service-ip> \
--service-cidr <service-cidr> \
--generate-ssh-keys
أنشئ ملفا باسم
main.tfوأضف الكود التالي لتعريف نسخة Terraform وتحديد مزود Azure:terraform { required_version = ">= 1.3.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~> 4.0" } } } provider "azurerm" { features {} subscription_id = var.subscription_id }أضف الكود التالي إلى
main.tfلإنشاء متغيرات إدخال لمعرف الاشتراك Azure، اسم مجموعة الموارد، الموقع، اسم عنقود AKS، اسم الشبكة الافتراضية (VNet)، واسم الشبكة الفرعية. يمكنك تعديل القيم الافتراضية حسب الحاجة.variable "subscription_id" { description = "The Azure subscription ID." type = string } variable "resource_group_name" { description = "The name of the resource group for the AKS cluster." type = string default = "rg-private-aks-advanced" } variable "location" { description = "The Azure region where the resources will be created." type = string default = "eastus" } variable "aks_cluster_name" { description = "The name of the AKS cluster." type = string default = "aks-private-advanced" } variable "vnet_name" { description = "The name of the virtual network." type = string default = "vnet-private-aks" } variable "subnet_name" { description = "The name of the subnet used by AKS." type = string default = "snet-aks" }أضف الكود التالي إلى
main.tfلإنشاء مجموعة موارد Azure، VNet، وشبكة فرعية:resource "azurerm_resource_group" "this" { name = var.resource_group_name location = var.location } resource "azurerm_virtual_network" "this" { name = var.vnet_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name address_space = ["10.0.0.0/8"] } resource "azurerm_subnet" "aks" { name = var.subnet_name resource_group_name = azurerm_resource_group.this.name virtual_network_name = azurerm_virtual_network.this.name address_prefixes = ["10.240.0.0/16"] }أضف الكود التالي لإنشاء
main.tfعنقود AKS مع شبكات متقدمة:resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "privateadvancedaks" private_cluster_enabled = true default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" vnet_subnet_id = azurerm_subnet.aks.id } identity { type = "SystemAssigned" } network_profile { load_balancer_sku = "standard" network_plugin = "azure" dns_service_ip = "10.2.0.10" service_cidr = "10.2.0.0/24" } }اتبع الخطوات لتهيئة Terraform، وتنسيق والتحقق من تكوين Terraform، وإنشاء خطة تنفيذ Terraform، وتطبيق تكوين Terraform، والاتصال بعنقود AKS.
استخدم نطاقات مخصصة مع مجموعات AKS الخاصة
إذا كنت تريد تكوين مجالات مخصصة لا يمكن حلها إلا داخليا، فشاهد استخدام المجالات المخصصة.
تعطيل FQDN عام على عنقود AKS خاص
تعطيل FQDN عام على نظام مجموعة جديد
تعطيل FQDN عام عند إنشاء مجموعة AKS خاصة باستخدام az aks create الأمر مع العلامة --disable-public-fqdn .
المعلمات الرئيسية في هذا الأمر:
-
--disable-public-fqdn: يعطل اسم النطاق العام المؤهل بالكامل (FQDN) لخادم API. -
--assign-identity <resource-id>: يحدد الهوية المدارة التي يجب استخدامها للمجموعة. -
--private-dns-zone [system|none]: يحدد منطقة DNS الخاصة التي يجب استخدامها للعناصرة.systemهي القيمة الافتراضية عند تكوين منطقة DNS خاصة. إذا حذفت ،--private-dns-zoneفإن AKS ينشئ منطقة DNS خاصة في مجموعة موارد العقد.noneيعطل إنشاء منطقة DNS خاصة.
az aks create \
--name <private-cluster-name> \
--resource-group <private-cluster-resource-group> \
--load-balancer-sku standard \
--enable-private-cluster \
--assign-identity <resource-id> \
--private-dns-zone [system|none] \
--disable-public-fqdn \
--generate-ssh-keys
اتبع الخطوات 1-3 في إنشاء عنقود AKS خاص مع شبكات متقدمة أو إنشاء عنقود AKS خاص مع شبكة أساسية افتراضية لإعداد تكوين Terraform وإنشاء الموارد اللازمة حسب سيناريوك. يستخدم هذا المثال شبكات متقدمة.
أضف الكود التالي لإنشاء
main.tfعنقود AKS خاص بهوية معينة من قبل المستخدم ويتم تعطيل FQDN العام:resource "azurerm_user_assigned_identity" "aks" { name = "id-private-aks-public-fqdn-off" location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name } resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "privateaks" private_cluster_enabled = true private_cluster_public_fqdn_enabled = false private_dns_zone_id = "System" default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" vnet_subnet_id = azurerm_subnet.aks.id } identity { type = "UserAssigned" identity_ids = [azurerm_user_assigned_identity.aks.id] } network_profile { load_balancer_sku = "standard" network_plugin = "azure" dns_service_ip = "10.2.0.10" service_cidr = "10.2.0.0/24" } }اتبع الخطوات لتهيئة Terraform، وتنسيق والتحقق من تكوين Terraform، وإنشاء خطة تنفيذ Terraform، وتطبيق تكوين Terraform، والاتصال بعنقود AKS.
تعطيل FQDN عام على مجموعة موجودة
تعطيل FQDN عام على مجموعة AKS موجودة باستخدام az aks update الأمر مع العلامة --disable-public-fqdn .
المعلمات الرئيسية في هذا الأمر:
-
--disable-public-fqdn: يعطل اسم النطاق العام المؤهل بالكامل (FQDN) لخادم API.
az aks update \
--name <private-cluster-name> \
--resource-group <private-cluster-resource-group> \
--disable-public-fqdn
أضف الكود التالي إلى الكود الحالي
main.tfلتعطيل FQDN العام على عنقود AKS موجود. يستخدم هذا المثال شبكات متقدمة. يمكنك تعديله ليستخدم الشبكة الأساسية الافتراضية عن طريق تغيير موارد ومعلمات Terraform ذات الصلة.resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "privateaks" private_cluster_enabled = true private_cluster_public_fqdn_enabled = false private_dns_zone_id = "System" default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" vnet_subnet_id = azurerm_subnet.aks.id } identity { type = "UserAssigned" identity_ids = [azurerm_user_assigned_identity.aks.id] } network_profile { load_balancer_sku = "standard" network_plugin = "azure" dns_service_ip = "10.2.0.10" service_cidr = "10.2.0.0/24" } }طبق تكوين Terraform المحدث باستخدام
terraform planأوامر وterraform apply.terraform plan terraform apply
خيارات التكوين لنظام DNS الخاص
يمكنك تكوين إعدادات DNS الخاصة لمجموعة AKS الخاصة باستخدام Azure CLI (مع معامل --private-dns-zone) أو قالب Azure Resource Manager (ARM) (مع خاصية privateDNSZone). يوضح الجدول التالي الخيارات المتاحة للمعامل --private-dns-zone / privateDNSZone الخاصية:
| الإعدادات | الوصف |
|---|---|
system |
القيمة الافتراضية عند تكوين منطقة DNS خاصة. إذا حذفت ، --private-dns-zone / privateDNSZoneفإن AKS ينشئ منطقة DNS خاصة في مجموعة موارد العقد. |
none |
إذا ضبطت --private-dns-zone / privateDNSZoneعلى none، AKS لا ينشئ منطقة DNS خاصة. |
<custom-private-dns-zone-resource-id> |
لاستخدام هذا المعامل، تحتاج إلى إنشاء منطقة DNS خاصة بالتنسيق التالي للسحابة العالمية Azure: privatelink.<region>.azmk8s.io أو <subzone>.privatelink.<region>.azmk8s.io. تحتاج إلى معرف الموارد الخاص بمنطقة DNS الخاصة للاستخدام المستقبلي. تحتاج أيضا إلى هوية أو مدير خدمة معين من قبل المستخدم مع أدوار Private DNS مساهم المنطقة وأدوار Network Contributor. بالنسبة للعناقيد التي تستخدم تكامل خادم API VNet، تدعم منطقة DNS الخاصة تنسيق التسمية ل private.<region>.azmk8s.io أو <subzone>.private.<region>.azmk8s.io.
لا يمكنك تغيير أو حذف موارد هذه الموارد بعد إنشاء العنقود، لأنها قد تسبب مشاكل في الأداء وفشل ترقية العنقود. يمكنك استخدام --fqdn-subdomain <subdomain> مع <custom-private-dns-zone-resource-id> فقط لتوفير قدرات المجال الفرعي إلى privatelink.<region>.azmk8s.io. إذا كنت تحدد منطقة فرعية، فهناك حد أقصى ل 32 حرفا للاسم <subzone> . |
اعتبارات لنظام DNS الخاص
ضع في اعتبارك الاعتبارات التالية عند تكوين DNS الخاص لمجموعة AKS خاصة:
- إذا كانت منطقة DNS الخاصة في اشتراك مختلف عن عنقود AKS، يجب عليك تسجيل مزود
Microsoft.ContainerServiceAzure في كلا الاشتراكين. - إذا كان عنقود AKS الخاص بك مكونا بخدمة Active Directory الرئيسية، فإن AKS لا يدعم استخدام هوية مدارة معينة من النظام مع منطقة DNS خاصة مخصصة. يجب أن يستخدم نظام المجموعة مصادقة الهوية المدارة المعينة من قبل المستخدم.
إنشاء مجموعة AKS خاصة مع منطقة DNS خاصة
أنشئ عنقود AKS خاص مع منطقة DNS خاصة باستخدام az aks create الأمر.
المعلمات الرئيسية في هذا الأمر:
-
--enable-private-cluster: يفعل وضع العنقود الخاص. -
--private-dns-zone [system|none]: يضبط منطقة DNS الخاصة للعناصر.systemهي القيمة الافتراضية عند تكوين منطقة DNS خاصة. إذا حذفت ،--private-dns-zoneفإن AKS ينشئ منطقة DNS خاصة في مجموعة موارد العقد.noneيعطل إنشاء منطقة DNS خاصة. -
--assign-identity <resource-id>: معرف الموارد لهوية مدارة معينة من قبل المستخدم مع أدوار Private DNS مساهم المنطقة وأدوار Network Contributor.
az aks create \
--name <private-cluster-name> \
--resource-group <private-cluster-resource-group> \
--load-balancer-sku standard \
--enable-private-cluster \
--assign-identity <resource-id> \
--private-dns-zone [system|none] \
--generate-ssh-keys
اتبع الخطوات 1-3 في إنشاء عنقود AKS خاص مع شبكات متقدمة أو إنشاء عنقود AKS خاص مع شبكة أساسية افتراضية لإعداد تكوين Terraform وإنشاء الموارد اللازمة حسب سيناريوك. يستخدم هذا المثال شبكات متقدمة.
أضف الكود التالي إلى
main.tfلإنشاء عنقود AKS خاص مع منطقة DNS خاصة تديرها AKS:resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "aks-system-dns" private_cluster_enabled = true private_dns_zone_id = "System" default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" vnet_subnet_id = azurerm_subnet.aks.id } identity { type = "SystemAssigned" } network_profile { network_plugin = "azure" load_balancer_sku = "standard" dns_service_ip = "10.2.0.10" service_cidr = "10.2.0.0/24" } }اتبع الخطوات لتهيئة Terraform، وتنسيق والتحقق من تكوين Terraform، وإنشاء خطة تنفيذ Terraform، وتطبيق تكوين Terraform، والاتصال بعنقود AKS.
إنشاء مجموعة AKS خاصة بدون منطقة DNS خاصة
اتبع الخطوات 1-3 في إنشاء عنقود AKS خاص مع شبكات متقدمة أو إنشاء عنقود AKS خاص مع شبكة أساسية افتراضية لإعداد تكوين Terraform وإنشاء الموارد اللازمة حسب سيناريوك. يستخدم هذا المثال شبكات متقدمة.
أضف الكود التالي لإنشاء
main.tfعنقود AKS بدون منطقة DNS خاصة:resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "aks-no-dns" private_cluster_enabled = true private_dns_zone_id = "None" default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" vnet_subnet_id = azurerm_subnet.aks.id } identity { type = "SystemAssigned" } network_profile { network_plugin = "azure" load_balancer_sku = "standard" dns_service_ip = "10.2.0.10" service_cidr = "10.2.0.0/24" } }اتبع الخطوات لتهيئة Terraform، وتنسيق والتحقق من تكوين Terraform، وإنشاء خطة تنفيذ Terraform، وتطبيق تكوين Terraform، والاتصال بعنقود AKS.
إنشاء مجموعة AKS خاصة مع منطقة DNS خاصة مخصصة أو منطقة فرعية DNS خاصة
أنشئ عنقود AKS خاص باستخدام منطقة DNS خاصة مخصصة أو منطقة فرعية باستخدام الأمر az aks create .
المعلمات الرئيسية في هذا الأمر:
-
--enable-private-cluster: يفعل وضع العنقود الخاص. -
--private-dns-zone [<custom-private-dns-zone-resource-id>|<custom-private-dns-subzone-resource-id>]: معرف الموارد لمنطقة DNS خاصة أو منطقة فرعية موجودة بالصيغة التالية للسحابة العالمية Azure:privatelink.<region>.azmk8s.ioأو<subzone>.privatelink.<region>.azmk8s.io. -
--assign-identity <resource-id>: معرف الموارد لهوية مدارة معينة من قبل المستخدم مع أدوار Private DNS مساهم المنطقة وأدوار Network Contributor.
az aks create \
--name <private-cluster-name> \
--resource-group <private-cluster-resource-group> \
--load-balancer-sku standard \
--enable-private-cluster \
--assign-identity <resource-id> \
--private-dns-zone [<custom-private-dns-zone-resource-id>|<custom-private-dns-subzone-resource-id>] \
--generate-ssh-keys
عند استخدام منطقة DNS خاصة مخصصة، تكون مسؤولا عن إنشاء وإدارة بنية DNS التحتية بدلا من الاعتماد على DNS الذي يديره Azure. يشمل ذلك إنشاء منطقة DNS، وربطها ب VNet الخاص بك، وتعيين الأذونات اللازمة ل AKS لإدارة السجلات.
لتكوينات DNS المخصصة، يجب استخدام هوية مدارة معينة من قبل المستخدم مع أدوار Private DNS Zone Contributor وأدوار Network Contributor.
اتبع الخطوات 1-3 في إنشاء عنقود AKS خاص مع شبكات متقدمة أو إنشاء عنقود AKS خاص مع شبكة أساسية افتراضية لإعداد تكوين Terraform وإنشاء الموارد اللازمة حسب سيناريوك. يستخدم هذا المثال شبكات متقدمة.
أضف الكود إلى
main.tfلإنشاء مجموعة AKS خاصة مع منطقة DNS خاصة أو منطقة فرعية مخصصة:resource "azurerm_user_assigned_identity" "aks" { name = "aks-custom-dns-id" location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name } resource "azurerm_private_dns_zone" "aks" { name = "privatelink.eastus.azmk8s.io" resource_group_name = azurerm_resource_group.this.name } resource "azurerm_private_dns_zone_virtual_network_link" "link" { name = "aks-dns-link" resource_group_name = azurerm_resource_group.this.name private_dns_zone_name = azurerm_private_dns_zone.aks.name virtual_network_id = azurerm_virtual_network.this.id } resource "azurerm_role_assignment" "dns" { scope = azurerm_private_dns_zone.aks.id role_definition_name = "Private DNS Zone Contributor" principal_id = azurerm_user_assigned_identity.aks.principal_id } resource "azurerm_role_assignment" "network" { scope = azurerm_virtual_network.this.id role_definition_name = "Network Contributor" principal_id = azurerm_user_assigned_identity.aks.principal_id } resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "aks-custom-dns" private_cluster_enabled = true private_dns_zone_id = azurerm_private_dns_zone.aks.id default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" vnet_subnet_id = azurerm_subnet.aks.id } identity { type = "UserAssigned" identity_ids = [azurerm_user_assigned_identity.aks.id] } network_profile { network_plugin = "azure" load_balancer_sku = "standard" dns_service_ip = "10.2.0.10" service_cidr = "10.2.0.0/24" } depends_on = [ azurerm_role_assignment.dns, azurerm_role_assignment.network ] }اتبع الخطوات لتهيئة Terraform، وتنسيق والتحقق من تكوين Terraform، وإنشاء خطة تنفيذ Terraform، وتطبيق تكوين Terraform، والاتصال بعنقود AKS.
إنشاء مجموعة AKS خاصة مع منطقة DNS خاصة مخصصة ومجال فرعي مخصص
أنشئ عنقود AKS خاص مع منطقة DNS خاصة ونطاق فرعي مخصص باستخدام az aks create الأمر.
المعلمات الرئيسية في هذا الأمر:
-
--enable-private-cluster: يفعل وضع العنقود الخاص. -
--private-dns-zone <custom-private-dns-zone-resource-id>: معرف الموارد لمنطقة DNS خاصة موجودة بالتنسيق التالي للسحابة العالمية Azure:privatelink.<region>.azmk8s.io. -
--fqdn-subdomain <subdomain>: النطاق الفرعي المستخدم لشبكة FQDN العنقودية داخل منطقة DNS الخاصة المخصصة. -
--assign-identity <resource-id>: معرف الموارد لهوية مدارة معينة من قبل المستخدم مع أدوار Private DNS مساهم المنطقة وأدوار Network Contributor.
az aks create \
--name <private-cluster-name> \
--resource-group <private-cluster-resource-group> \
--load-balancer-sku standard \
--enable-private-cluster \
--assign-identity <resource-id> \
--private-dns-zone <custom-private-dns-zone-resource-id> \
--fqdn-subdomain <subdomain> \
--generate-ssh-keys
اتبع الخطوات 1-3 في إنشاء عنقود AKS خاص مع شبكات متقدمة أو إنشاء عنقود AKS خاص مع شبكة أساسية افتراضية لإعداد تكوين Terraform وإنشاء الموارد اللازمة حسب سيناريوك. يستخدم هذا المثال شبكات متقدمة.
أضف الكود التالي لإنشاء
main.tfعنقود AKS خاص مع منطقة DNS خاصة ونطاق فرعي مخصص:resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "aks-subdomain" private_cluster_enabled = true private_dns_zone_id = azurerm_private_dns_zone.aks.id fqdn_subdomain = "team1" default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" vnet_subnet_id = azurerm_subnet.aks.id } identity { type = "UserAssigned" identity_ids = [azurerm_user_assigned_identity.aks.id] } network_profile { network_plugin = "azure" load_balancer_sku = "standard" dns_service_ip = "10.2.0.10" service_cidr = "10.2.0.0/24" } }اتبع الخطوات لتهيئة Terraform، وتنسيق والتحقق من تكوين Terraform، وإنشاء خطة تنفيذ Terraform، وتطبيق تكوين Terraform، والاتصال بعنقود AKS.
قم بتحديث عنقود AKS خاص موجود من منطقة DNS خاصة إلى عام
يمكنك التحديث فقط من byo (أحضر جهازك الخاص) أو system إلى none. لا يتم دعم أي تركيبة أخرى من قيم التحديث.
تحذير
عند تحديث مجموعة خاصة من byo أو system إلى none، تتغير عقد العامل لاستخدام FQDN عام. في مجموعة AKS تستخدم مجموعات توسعة الأجهزة الظاهرية في Azure، يتم إجراء node image upgrade لتحديث عقدك باستخدام FQDN العام.
تحديث مجموعة خاصة من أو إلى باستخدام byo الأمر مع system تعيين المعلمة على none.az aks update--private-dns-zonenone
az aks update \
--name <private-cluster-name> \
--resource-group <private-cluster-resource-group> \
--private-dns-zone none
أضف الكود التالي إلى الموجود
main.tfلتحديث تجمع AKS الخاص من منطقة DNS خاصة إلى عام. يستخدم هذا المثال شبكات متقدمة. يمكنك تعديله ليستخدم الشبكة الأساسية الافتراضية عن طريق تغيير موارد ومعلمات Terraform ذات الصلة.resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "aks-update" private_cluster_enabled = true private_dns_zone_id = "None" default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" vnet_subnet_id = azurerm_subnet.aks.id } identity { type = "UserAssigned" identity_ids = [azurerm_user_assigned_identity.aks.id] } network_profile { network_plugin = "azure" load_balancer_sku = "standard" dns_service_ip = "10.2.0.10" service_cidr = "10.2.0.0/24" } }طبق تكوين Terraform المحدث باستخدام
terraform planأوامر وterraform apply.terraform plan terraform apply
تهيئة Terraform
قم بتهيئة Terraform في الدليل الذي يحتوي على ملفك main.tf باستخدام الأمر.terraform init يقوم هذا الأمر بتنزيل مزود Azure المطلوب لإدارة موارد Azure باستخدام Terraform.
terraform init
تنسيق والتحقق من تكوين تيرافورم
تنسيق والتحقق من تكوين Terraform باستخدام terraform fmt أوامر و terraform validate .
terraform fmt
terraform validate
إنشاء خطة تنفيذ Terraform
إنشاء خطة تنفيذ Terraform باستخدام terraform plan الأمر . هذا الأمر يعرض لك الموارد التي سيخلقها Terraform أو يعدلها في اشتراكك في Azure.
terraform plan -var="subscription_id=<your-subscription-id>"
تطبيق تكوين Terraform
بعد مراجعة وتأكيد خطة التنفيذ، طبق تكوين Terraform باستخدام terraform apply الأمر. يقوم هذا الأمر بإنشاء أو تعديل الموارد المحددة في ملف main.tf الخاص بك في اشتراكك Azure.
terraform apply -var="subscription_id=<your-subscription-id>"
تكوين kubectl للاتصال بعنقود AKS خاص
لإدارة نظام مجموعة Kubernetes، استخدم سطر أوامر العميلkubectl.
kubectl مثبت بالفعل إذا كنت تستخدم Azure Cloud Shell. لتثبيت kubectl محليا، استخدم az aks install-cli الأمر .
قم بتكوين
kubectlللاتصال بنظام مجموعة Kubernetes باستخدام أمرaz aks get-credentials. هذا الأمر يقوم بتحميل بيانات الاعتماد وضبط Kubernetes CLI لاستخدامها.az aks get-credentials --resource-group <private-cluster-resource-group> --name <private-cluster-name>تحقق من الاتصال بالمجموعة باستخدام
kubectl getالأمر . يعمل هذا الأمر على استرجاع قائمة نظام المجموعة العنقودية.kubectl get nodesيرجع الأمر إخراجاته مشابهة لإخراج المثال التالي:
NAME STATUS ROLES AGE VERSION aks-nodepool1-12345678-vmss000000 Ready agent 3h6m v1.15.11 aks-nodepool1-12345678-vmss000001 Ready agent 3h6m v1.15.11 aks-nodepool1-12345678-vmss000002 Ready agent 3h6m v1.15.11