Kubernetes z-pages
Kubernetes v1.32 [alpha]Компоненти ядра Kubernetes можуть надавати набір z-endpoints, щоб полегшити користувачам налагодження кластера та його компонентів. Ці точки доступу мають використовуватися виключно для перевірки людиною для отримання інформації про налагодження двійкового коду компонента у реальному часі. Уникайте автоматичного отримання даних, що повертаються цими точками доступу; у Kubernetes 1.35 це альфа функція, і формат відповіді може змінитися у майбутніх випусках.
z-pages
Kubernetes v1.35 дозволяє увімкнути z-pages, які допоможуть вам усунути проблеми з компонентами основної панелі управління. Ці спеціальні налагоджувальні точки доступу надають внутрішню інформацію про запущені компоненти. У Kubernetes 1.35 компоненти обслуговують такі точки доступу (якщо їх увімкнено):
statusz
Увімкнена за допомогою функціональної можливості ComponentStatusz, точка доступу /statusz показує високорівневу інформацію про компонент, таку як версія Kubernetes, версія емуляції, час запуску тощо.
Відповідь у вигляді простого тексту /statusz від сервера API виглядає приблизно так:
kube-apiserver statusz
Warning: This endpoint is not meant to be machine parseable, has no formatting compatibility guarantees and is for debugging purposes only.
Started: Wed Oct 16 21:03:43 UTC 2024
Up: 0 hr 00 min 16 sec
Go version: go1.23.2
Binary version: 1.32.0-alpha.0.1484+5eeac4f21a491b-dirty
Emulation version: 1.32.0-alpha.0.1484
Paths: /healthz /livez /metrics /readyz /statusz /version
statusz (структуровано)
Kubernetes v1.32 [alpha](стандартно вимкнено)Починаючи з Kubernetes v1.35, точка доступу /statusz підтримує структурований формат відповіді з версіями, якщо запит надсилається з відповідним заголовком Accept. Без заголовка Accept точка доступу типово повертає відповідь у форматі простого тексту.
Щоб отримати структуровану відповідь, використовуйте:
Accept: application/json;v=v1alpha1;g=config.k8s.io;as=Statusz
Примітка:
Якщо ви запитуєтеapplication/json без вказання всіх необхідних параметрів (g, v та as), сервер відповість 406 Not Acceptable.Приклад структурованої відповіді:
{
"kind": "Statusz",
"apiVersion": "config.k8s.io/v1alpha1",
"metadata": {
"name": "kube-apiserver"
},
"startTime": "2025-10-29T00:30:01Z",
"uptimeSeconds": 856,
"goVersion": "go1.23.2",
"binaryVersion": "1.35.0",
"emulationVersion": "1.35",
"paths": [
"/healthz",
"/livez",
"/metrics",
"/readyz",
"/statusz",
"/version"
]
}
Схема config.k8s.io/v1alpha1 для структурованої відповіді /statusz виглядає наступним чином:
// Statusz — це схема config.k8s.io/v1alpha1 для точки доступу /statusz.
type Statusz struct {
// Kind є "Statusz".
Kind string `json:"kind"`
// APIVersion — це версія обʼєкта, наприклад, "config.k8s.io/v1alpha1".
APIVersion string `json:"apiVersion"`
// Стандартні метадані обʼєкта.
// +опціонально
Metadata metav1.ObjectMeta `json:"metadata,omitempty"`
// StartTime — час, коли було розпочато процес компонента.
StartTime metav1.Time `json:"startTime"`
// UptimeSeconds — це тривалість у секундах, протягом якої компонент працював безперервно.
UptimeSeconds int64 `json:"uptimeSeconds"`
// GoVersion — це версія мови програмування Go, яка використовується для створення бінарного файлу.
// Не гарантується, що формат буде однаковим для різних збірок Go.
// +опціонально
GoVersion string `json:"goVersion,omitempty"`
// BinaryVersion — це версія бінарного файлу компонента.
// Формат не обовʼязково відповідає семантичному версіонуванню і може бути довільним рядком.
BinaryVersion string `json:"binaryVersion"`
// EmulationVersion — це версія API Kubernetes, яку емулює цей компонент.
// якщо присутня, форматується як "<major>.<minor>"
// +опціонально
EmulationVersion string `json:"emulationVersion,omitempty"`
// MinimumCompatibilityVersion — це мінімальна версія API Kubernetes, з якою компонент призначений для роботи.
// якщо присутня, форматується як "<major>.<minor>"
// +опціонально
MinimumCompatibilityVersion string `json:"minimumCompatibilityVersion,omitempty"`
// Шляхи містять відносні URL-адреси інших важливих точок доступу, доступних тільки для читання, для налагодження та усунення несправностей.
// +опціонально
Paths []string `json:"paths,omitempty"`
}
flagz
Увімкнена за допомогою функціональної можливості ComponentFlagz, точка доступу /flagz показує вам аргументи командного рядка, які було використано для запуску компонента.
Відповідь у вигляді простого тексту /flagz від сервера API виглядає приблизно так:
kube-apiserver flags
Warning: This endpoint is not meant to be machine parseable, has no formatting compatibility guarantees and is for debugging purposes only.
advertise-address=192.168.8.2
contention-profiling=false
enable-priority-and-fairness=true
profiling=true
authorization-mode=[Node,RBAC]
authorization-webhook-cache-authorized-ttl=5m0s
authorization-webhook-cache-unauthorized-ttl=30s
authorization-webhook-version=v1beta1
default-watch-cache-size=100
flagz (структуровано)
Kubernetes v1.32 [alpha](стандартно вимкнено)Починаючи з Kubernetes v1.35, точка доступу /flagz підтримує структурований формат відповіді з версіями, якщо запит надсилається з відповідним заголовком Accept. Без заголовка Accept точка доступу типово повертає відповідь у форматі простого тексту.
Щоб отримати структуровану відповідь, використовуйте:
Accept: application/json;v=v1alpha1;g=config.k8s.io;as=Flagz
Примітка:
Якщо ви запитуєтеapplication/json без вказання всіх необхідних параметрів (g, v та as), сервер відповість 406 Not Acceptable.Example structured response:
{
"kind": "Flagz",
"apiVersion": "config.k8s.io/v1alpha1",
"metadata": {
"name": "kube-apiserver"
},
"flags": {
"advertise-address": "192.168.8.4",
"allow-privileged": "true",
"anonymous-auth": "true",
"authorization-mode": "[Node,RBAC]",
"enable-priority-and-fairness": "true",
"profiling": "true",
"default-watch-cache-size": "100"
}
}
Схема config.k8s.io/v1alpha1 для структурованої відповіді /flagz виглядає наступним чином:
// Flagz — це схема config.k8s.io/v1alpha1 для точки доступу /flagz.
type Flagz struct {
// Kind ' "Flagz".
Kind string `json:"kind"`
// APIVersion — це версія обʼєкта, наприклад, "config.k8s.io/v1alpha1".
APIVersion string `json:"apiVersion"`
// Стандартні метадані обʼєкта.
// +опціонально
Metadata metav1.ObjectMeta `json:"metadata,omitempty"`
// Flags містить прапорці командного рядка та їхні значення.
// Ключі — це імена прапорців, а значення — це значення прапорців,
// можливо, з вилученими конфіденційними значеннями.
// +опціонально
Flags map[string]string `json:"flags,omitempty"`
}
Примітка:
Структуровані відповіді для/statusz та /flagz є альфа-функціями у версії 1.35 і можуть бути змінені в майбутніх версіях. Вони призначені для надання машиночитаного виводу для інструментів налагодження та інтроспекції.