Kubernetes-vezérlősík naplóinak engedélyezése és áttekintése Azure Kubernetes Service (AKS)

A Azure Kubernetes Service (AKS) esetén a vezérlősík összetevői, például a kube-apiserver és a kube-controller-manager felügyelt szolgáltatásként biztosítanak. Létrehozhatja és kezelheti a kubeletet és a tároló-futáskörnyezetet használó csomópontokat, és üzembe helyezheti az alkalmazásokat a felügyelt Kubernetes API-kiszolgálón keresztül. Az alkalmazás és a szolgáltatások hibaelhárítása érdekében előfordulhat, hogy meg kell tekintenie a vezérlősík ezen összetevői által létrehozott naplókat. Ez a cikk bemutatja, hogyan engedélyezheti és Azure Monitor a naplókat a Kubernetes vezérlősík összetevőiből a naplók engedélyezéséhez és lekérdezéséhez.

Előkészületek

Ehhez a cikkhez egy, az Azure-fiókjában futó meglévő AKS-fürtre van szükség. Ha még nem rendelkezik AKS-fürtgal, hozzon létre egyet az Azure CLI vagy a Azure Portal. Azure Monitor-naplók Kubernetes RBAC-val, Azure RBAC-val és nem RBAC-kompatibilis AKS-fürttel is működnek.

Erőforrásnaplók engedélyezése

A több forrásból származó adatok gyűjtésének és áttekintésének segítéséhez a Azure Monitor-naplók lekérdezési nyelvet és elemzési motort nyújtanak, amely betekintést nyújt a környezetbe. A munkaterület az adatok rendezésére és elemzésére szolgál, és integrálható más Azure-szolgáltatásokkal, például a Application Insights és Security Center. Ha egy másik platformot használ a naplók elemzéséhez, dönthet úgy, hogy erőforrásnaplókat küld egy Azure-tárfiókba vagy eseményközpontba. További információ: Mi az a Azure Monitor naplók?.

Azure Monitor naplók engedélyezve vannak és kezelhetők a Azure Portal. Ha engedélyezni szeretné a naplógyűjtést az AKS-fürt kubernetes vezérlősík-összetevői számára, nyissa meg a Azure Portal böngészőben, és kövesse az alábbi lépéseket:

  1. Válassza ki az AKS-fürt erőforráscsoportját, például: myResourceGroup. Ne válassza ki az AKS-fürt erőforrásait tartalmazó erőforráscsoportot, például a MC_myResourceGroup_myAKSCluster_eastus.

  2. A bal oldalon válassza a Diagnosztikai beállítások lehetőséget.

  3. Válassza ki az AKS-fürtöt,például myAKSCluster, majd válassza a Diagnosztikai beállítás hozzáadása lehetőséget. Képernyőkép egy Azure Portal a diagnosztikai beállításokat megjelenítő böngészőablakban, amely azt jelzi, hogy a "Diagnosztikai beállítás hozzáadása" lehetőség legyen kiválasztva

  4. Adjon meg egy nevet, például myAKSClusterLogs, majd válassza a Küldés a Log Analytics-munkaterületre lehetőséget.

  5. Válasszon ki egy meglévő munkaterületet, vagy hozzon létre egy újat. Ha létrehoz egy munkaterületet, adja meg a munkaterület nevét, az erőforráscsoportot és a helyet.

  6. Az elérhető naplók listájában válassza ki az engedélyezni kívánt naplókat. Ebben a példában engedélyezze a kube-audit és a kube-audit-admin naplókat. Gyakori naplók például a kube-apiserver, a kube-controller-manager és a kube-scheduler. Ha a Log Analytics-munkaterületek engedélyezve vannak, a gyűjtött naplókat vissza is használhatja és módosíthatja.

  7. Ha elkészült, válassza a Mentés lehetőséget a kiválasztott naplók gyűjtésének engedélyezéséhez. Képernyőkép Azure Portal "Diagnosztikai beállítás hozzáadása" képernyőről. A "Küldés a Log Analytics-munkaterületre" célhely és a "kube-audit" és a "kube-audit-admin" naplók ki vannak jelölve

Naplókategóriák

A Kubernetes által írt bejegyzések mellett a projekt auditnaplói is tartalmaznak bejegyzéseket az AKS-től.

Az auditnaplók három kategóriába sorolhatók: kube-audit, kube-audit-admin és guard.

  • A kube-audit kategória minden naplózási esemény naplózási adatait tartalmazza, beleértve a get, list, create, update, delete, patch és post adatokat.
  • A kube-audit-admin kategória a kube-auditnapló kategóriájának egy része. A kube-audit-admin jelentősen csökkenti a naplók számát azáltal, hogy kihagyja a naplóból a get és list naplózási eseményeket.
  • Az őr kategória felügyelt Azure AD- és Azure RBAC-naplózás. Felügyelt Azure AD: jogkivonat be, felhasználói adatok. Azure RBAC: hozzáférési felülvizsgálatok be- és ki- és be.

Tesztpod ütemezése az AKS-fürtön

Egyes naplók létrehozásához hozzon létre egy új podot az AKS-fürtben. Az alábbi PÉLDA YAML-jegyzékfájl egy alapszintű NGINX-példány létrehozására használható. Hozzon létre egy nevű fájlt egy választott nginx.yaml szerkesztőben, és illessze be a következő tartalmat:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  nodeSelector:
    "beta.kubernetes.io/os": linux
  containers:
  - name: mypod
    image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
    resources:
      requests:
        cpu: 100m
        memory: 128Mi
      limits:
        cpu: 250m
        memory: 256Mi
    ports:
    - containerPort: 80

Hozza létre a podot a kubectl create paranccsal, és adja meg a YAML-fájlt az alábbi példában látható módon:

$ kubectl create -f nginx.yaml

pod/nginx created

Összegyűjtött naplók megtekintése

A diagnosztikai naplók engedélyezése és megjelenése akár 10 percet is igénybe vehet.

Megjegyzés

Ha megfelelőségi vagy egyéb célból minden auditnapló-adatra szüksége van, gyűjtse össze és tárolja őket olcsó tárolóban, például blobtárolóban. A kube-audit-admin naplókategória használatával összegyűjtheti és mentheti a naplóadatok jelentéssel bíró készletét monitorozási és riasztási célokra.

A Azure Portal keresse meg az AKS-fürtöt, és válassza a bal oldalon a Naplók lehetőséget. Ha megjelenik, zárja be a Példalekérdezések ablakot.

A bal oldalon válassza a Naplók lehetőséget. A kube-auditnaplók megtekintéséhez írja be a következő lekérdezést a szövegmezőbe:

AzureDiagnostics
| where Category == "kube-audit"
| project log_s

A rendszer valószínűleg számos naplót ad vissza. Az előző lépésben létrehozott NGINX pod naplóira vonatkozó lekérdezés hatókörének megtekintéséhez adjon hozzá egy további where utasítást az nginx kereséséhez az alábbi példalekérdezésben látható módon:

AzureDiagnostics
| where Category == "kube-audit"
| where log_s contains "nginx"
| project log_s

A kube-audit-admin naplók megtekintéséhez írja be a következő lekérdezést a szövegmezőbe:

AzureDiagnostics
| where Category == "kube-audit-admin"
| project log_s

Ebben a példában a lekérdezés a kube-audit-admin összes létrehozási feladatát megjeleníti. Valószínűleg számos eredmény van visszaadva, hogy a lekérdezés hatókörét az előző lépésben létrehozott NGINX-pod naplóinak megtekintéséhez egy további where utasítással keresse meg az nginx-et, ahogy az az alábbi példalekérdezésben látható.

AzureDiagnostics
| where Category == "kube-audit-admin"
| where log_s contains "nginx"
| project log_s

A naplóadatok lekérdezésére és szűrésére vonatkozó további információkért lásd: Naplóelemzési naplókereséssel gyűjtött adatok megtekintése és elemzése.

Eseménysémák naplózása

Az AKS a következő eseményeket naplózza:

Naplószerepk szerepkörök

Szerepkör Leírás
aksService A vezérlősík-művelet megjelenített neve az auditnaplóban (a hcpService szolgáltatásból)
masterclient A MasterClientCertificate auditnaplójában megjelenő név, az az aks get-credentials által lekért tanúsítvány
nodeclient Az ügynökcsomópontok által használt ClientCertificate megjelenített neve

Következő lépések

Ebben a cikkben megtanulta, hogyan engedélyezheti és olvashatja át az AKS-fürtön található Kubernetes-vezérlősík összetevőinek naplóit. A további figyelése és hibaelhárítása érdekében megtekintheti a Kubelet-naplókat, és engedélyezheti az SSH-csomópontok hozzáférését.