الحصول على سجلات kubelet من عقد مجموعة خدمة Azure Kubernetes

قد تحتاج إلى مراجعة السجلات لاستكشاف مشكلة في نظام مجموعة Azure Kubernetes Service (AKS) وإصلاحها. يمكنك استخدام الأدوات في مدخل Microsoft Azure لعرض سجلات مكونات AKS الرئيسيةوحاويات نظام المجموعة. في بعض الأحيان، قد تحتاج إلى الحصول على سجلات kubelet من عقد AKS لمساعدتك في استكشاف مشكلة وإصلاحها.

توضح هذه المقالة كيفية استخدام journalctl لعرض سجلات kubelet على عقدة AKS.

بدلا من ذلك، يمكنك جمع سجلات kubelet باستخدام ميزة مجموعة syslog في نتائج تحليلات الحاوية في Azure Monitor.

قبل البدء

تفترض هذه المقالة أن لديك تجمع AKS قائمًا. إذا كنت بحاجة إلى نظام مجموعة AKS، قم بإنشاء واحد باستخدام Azure CLI أو Azure PowerShell أو مدخل Microsoft Azure.

قم بالاتصال بمجموعة AKS

للتفاعل مع مجموعة AKS الخاصة بك، احصل أولا على بيانات اعتماد نظام المجموعة باستخدام Azure CLI:

export RESOURCE_GROUP_NAME="<ResourceGroupName>"
export AKS_CLUSTER_NAME="<AKSClusterName>"
az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $AKS_CLUSTER_NAME

يقوم هذا الأمر بتكوين kubectl لاستخدام بيانات الاعتماد لنظام مجموعة AKS.

استخدام الأمر kubectl raw

يمكنك عرض سجلات kubelet الخاصة بأي عقدة بسرعة باستخدام الأمر التالي:

export NODE_NAME="aks-agentpool-xxxxxxx-0"
kubectl get --raw "/api/v1/nodes/$NODE_NAME/proxy/logs/messages" | grep kubelet

النتائج:

I0508 12:26:17.905042    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:26:27.943494    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:26:28.920125    8672 server.go:796] GET /stats/summary: (10.370874ms) 200 [[Ruby] 10.244.0.x:52492]
I0508 12:26:37.964650    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
...

إنشاء اتصال SSH

يجب إنشاء اتصال بروتوكول Shell الآمن (SSH) مع العقدة التي تحتاج إلى عرض سجلات kubelet لها. لإنشاء هذا الاتصال، أكمل الخطوات الموضحة في SSH في عقد نظام مجموعة AKS.

الحصول على سجلات kubelet

بعد الاتصال بالعقدة باستخدام kubectl debug، قم بتشغيل الأمر التالي لسحب سجلات kubelet:

chroot /host
journalctl -u kubelet -o cat

إشعار

بالنسبة لعقد Windows، تكون بيانات السجل في C:\k ويمكن عرضها باستخدام more الأمر :

more C:\k\kubelet.log

يظهر إخراج المثال التالي بيانات سجل kubelet:

I0508 12:26:17.905042    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:26:27.943494    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:26:28.920125    8672 server.go:796] GET /stats/summary: (10.370874ms) 200 [[Ruby] 10.244.0.x:52292]
I0508 12:26:37.964650    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:26:47.996449    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:26:58.019746    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:27:05.107680    8672 server.go:796] GET /stats/summary/: (24.853838ms) 200 [[Go-http-client/1.1] 10.244.0.x:44660]
I0508 12:27:08.041736    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:27:18.068505    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:27:28.094889    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:27:38.121346    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:27:44.015205    8672 server.go:796] GET /stats/summary: (30.236824ms) 200 [[Ruby] 10.244.0.x:52588]
I0508 12:27:48.145640    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:27:58.178534    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:28:05.040375    8672 server.go:796] GET /stats/summary/: (27.78503ms) 200 [[Go-http-client/1.1] 10.244.0.x:44660]
I0508 12:28:08.214158    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:28:18.242160    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:28:28.274408    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:28:38.296074    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:28:48.321952    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:28:58.344656    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"