تحليل تكلفة خدمة Azure Kubernetes (AKS)

في هذه المقالة، ستتعلم كيفية تمكين تحليل التكلفة على خدمة Azure Kubernetes (AKS) لعرض بيانات التكلفة التفصيلية لموارد نظام المجموعة.

نظرة عامة على تحليل تكلفة AKS

تعتمد مجموعات AKS على موارد Azure، مثل الأجهزة الظاهرية (VMs) والأقراص الظاهرية وموازنات التحميل وعناوين IP العامة. يمكن للتطبيقات المتعددة استخدام هذه الموارد. غالبا ما تختلف أنماط استهلاك الموارد لكل تطبيق، لذلك قد تختلف مساهمتها في إجمالي تكلفة موارد نظام المجموعة أيضا. قد يكون لبعض التطبيقات آثار عبر مجموعات متعددة، والتي يمكن أن تشكل تحديا عند تنفيذ إسناد التكلفة وإدارة التكلفة.

عند تمكين تحليل التكلفة على نظام مجموعة AKS الخاص بك، يمكنك عرض تخصيص التكلفة التفصيلية في نطاق بنيات Kubernetes، مثل المجموعات ومساحات الأسماء وموارد حساب Azure والشبكة والتخزين. تم بناء الوظيفة الإضافية على OpenCost ، وهو مشروع حاضن Open المصدر لمؤسسة الحوسبة السحابية الأصلية لجمع بيانات الاستخدام. تتم تسوية بيانات الاستخدام مع بيانات الفاتورة Azure لتوفير عرض شامل لتكاليف نظام مجموعة AKS مباشرة في مدخل Azure.

لمزيد من المعلومات حول إدارة التكلفة من Microsoft، راجع بدء تحليل التكاليف في Azure.

بعد تمكين الوظيفة الإضافية لتحليل التكلفة والسماح بجمع البيانات لمدة تصل إلى 24 ساعة، يمكنك استخدام المعلومات في فهم استخدام AKS والتكاليف لمساعدتك على فهم بياناتك.

Prerequisites

  • يجب أن تستخدم StandardPremium المجموعة الخاصة بك أو الطبقة، وليس Free الطبقة.
  • لعرض معلومات تحليل التكلفة، يجب أن يكون لديك أحد الأدوار التالية على الاشتراك الذي يستضيف نظام المجموعة: Ownerأو ContributorReaderCost Management Contributor.Cost Management Reader
  • الهوية المدارة التي تم تكوينها على نظام المجموعة الخاص بك.
  • تم تمكين برنامج تشغيل واجهة تخزين حاوية القرص Azure (CSI) على نظام المجموعة.
  • إذا كنت تستخدم Azure CLI، فأنت بحاجة إلى إصدار 2.61.0 أو تثبيت أحدث.
  • بمجرد تمكين تحليل التكلفة، لا يمكنك تخفيض نظام المجموعة إلى Free المستوى دون تعطيل تحليل التكلفة أولا.
  • الوصول إلى واجهة برمجة تطبيقات Azure بما في ذلك Azure Resource Manager (ARM) API. للحصول على قائمة بأسماء المجالات المؤهلة بالكامل (FQDNs) المطلوبة، راجع تحليل تكلفة AKS المطلوب FQDN.

Limitations

  • تتوفر طرق عرض تكلفة Kubernetes فقط لأنواع عروض اتفاقية المؤسسةواتفاقية عملاء Microsoft Microsoft Azure. لمزيد من المعلومات، راجع عروض Microsoft Azure المدعومة.
  • حاليا، العقد الظاهرية غير مدعومة.
  • لا تتوفر الوظيفة الإضافية في usnateastالمناطق أو usnatwestusseceastأو أوussecwest. لمزيد من المعلومات، راجع مشكلات الوظيفة الإضافية لتحليل تكلفة AKS واستكشاف الأخطاء وإصلاحها.
  • يدعم إضافة تحليل التكلفة AKS حوالي 7,000 حاوية لكل مجموعة، بناء على حد الذاكرة الحالي 4 جيجابايت وقابلة للتغيير.

تمكين تحليل التكلفة على نظام مجموعة AKS

يمكنك تمكين تحليل التكلفة مع العلامة --enable-cost-analysis أثناء إحدى العمليات التالية:

  • إنشاء نظام مجموعة Standard AKS أو Premium الطبقة.
  • تحديث مجموعة AKS موجودة Standard أو Premium طبقة.
  • ترقية نظام مجموعة Free إلى Standard أو Premium.
  • ترقية نظام مجموعة Standard إلى Premium.
  • تخفيض نظام مجموعة Premium إلى Standard مستوى.

تمكين تحليل التكلفة على نظام مجموعة جديد

تمكين تحليل التكلفة على نظام مجموعة جديد باستخدام az aks create الأمر مع العلامة --enable-cost-analysis . ينشئ المثال التالي مجموعة AKS جديدة في Standard الطبقة مع تمكين تحليل التكلفة:

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="AKSCostRG$RANDOM_SUFFIX"
export CLUSTER_NAME="AKSCostCluster$RANDOM_SUFFIX"
export LOCATION="WestUS2"
az group create --resource-group $RESOURCE_GROUP --location $LOCATION
az aks create --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --location $LOCATION --enable-managed-identity --generate-ssh-keys --tier standard --enable-cost-analysis

Results:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
    "location": "WestUS2",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    },
    "tags": null,
    "type": "Microsoft.ContainerService/managedClusters"
}

تمكين تحليل التكلفة على نظام مجموعة موجود

تمكين تحليل التكلفة على نظام مجموعة موجود باستخدام az aks update الأمر مع العلامة --enable-cost-analysis . يحدث المثال التالي مجموعة AKS موجودة في Standard الطبقة لتمكين تحليل التكلفة. استبدل $RESOURCE_GROUP و $CLUSTER_NAME بأسماء مجموعة الموارد والمجموعات، أو قم بتعيينها كمتغيرات بيئة.

az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-cost-analysis

Results:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    }
}

Note

يتم نشر عامل إلى نظام المجموعة عند تمكين الوظيفة الإضافية. يستهلك العامل كمية صغيرة من موارد وحدة المعالجة المركزية والذاكرة.

Warning

يعتمد استخدام الذاكرة الإضافية لتحليل تكلفة AKS على عدد الحاويات المنشورة. يمكنك استهلاك الذاكرة تقريبا باستخدام 200 ميغابايت + 0.5 ميغابايت لكل حاوية. يتم تعيين حد الذاكرة الحالي إلى 4 غيغابايت، والذي يدعم ما يقرب من 7000 حاوية لكل نظام مجموعة. وهذه التقديرات عرضة للتغيير.

Note

يؤدي تمكين تحليل التكلفة أيضا إلى إنشاء هوية مدارة مسماة cost-analysis-identity مع حق الوصول للقراءة إلى مجموعة موارد عقدة نظام المجموعة، وتعيينها لتجمعات العقد في نظام المجموعة. يتم استخدام هذا لجمع معرفات ARM لأصول نظام المجموعة لإعداد التقارير.

نظرا لأن تجمع العقدة لديه بالفعل هوية مدارة، فإن أي أوامر على العقدة تستخدم الهويات المدارة تحتاج إلى تحديد الهوية لاستخدامها بدلا من الاعتماد على الهوية المدارة لتجمع العقدة.

على سبيل المثال، az login --identity --resource-id <resource ID of identity>

تعطيل تحليل التكلفة على نظام مجموعة AKS

تعطيل تحليل التكلفة باستخدام az aks update الأمر مع العلامة --disable-cost-analysis .

az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --disable-cost-analysis

Results:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    }
}

Note

إذا كنت ترغب في Standard تخفيض نظام المجموعة من المستوى أو Premium إلى Free المستوى أثناء تمكين تحليل التكلفة، يجب أولا تعطيل تحليل التكلفة.

عرض بيانات التكلفة

يمكنك عرض بيانات تخصيص التكلفة في مدخل Microsoft Azure.

في مدخل Azure، انتقل إلى اشتراك Azure الذي يستضيف نظام مجموعة AKS. ضمن Cost Management، حدد Cost analysis. في القائمة عرض ، حدد عنصر القائمة المنسدلة ثم حدد مجموعات Kubernetes.

لمزيد من المعلومات، راجع عرض تكاليف AKS في Microsoft Cost Management.

تعريفات التكلفة

في مساحات أسماء Kubernetes وطرق عرض الأصول، قد ترى أي من الرسوم التالية:

نوع الشحن الوصف
رسوم الخمول تكلفة سعة الموارد المتاحة التي لا تستخدمها أي أحمال عمل.
رسوم الخدمة الرسوم المرتبطة بالخدمة، مثل اتفاقية مستوى الخدمة في وقت التشغيل، Microsoft Defender للحاويات، وما إلى ذلك.
رسوم النظام تكلفة السعة المحجوزة بواسطة AKS على كل عقدة لتشغيل عمليات النظام التي تتطلبها المجموعة، بما في ذلك kubelet ووقت تشغيل الحاوية. اعرف المزيد.
الرسوم غير المخصصة تكلفة الموارد التي لا يمكن تخصيصها لمساحات الأسماء.

Note

عادة ما ينهي النظام بيانات التكلفة والاستخدام ويجعلها متاحة في غضون 8 إلى 24 ساعة.

Troubleshooting

إذا كنت تواجه مشكلات، مثل cost-agent توقف النظام أو توقفه في OOMKilled حالة ما، فراجع Pending.

الخطوات التالية

لمزيد من المعلومات حول التكلفة في AKS، راجع فهم استخدام وتكاليف خدمة Azure Kubernetes (AKS).