Огляд
Налагодження ресурсів кластера за допомогою інтерактивних контейнерів налагодження.
'debug' автоматизує виконання поширених завдань налагодження для обʼєктів кластера, ідентифікованих за ресурсом та імʼям. Типово будуть використовуватися Podʼи, якщо ресурс не вказано.
Дія, яку виконує 'debug', залежить від вказаного ресурсу. Підтримувані дії включають:
- Workload: Створити копію поточного Podʼа зі зміненими атрибутами, наприклад, змінити теґ образу на нову версію.
- Workload: Додати ефемерний контейнер до вже працюючого Podʼа, наприклад, щоб додати утиліти для налагодження без перезапуску Podʼа.
- Node: Створити новий Pod, який працює у host namespaces вузла та має доступ до файлової системи вузла.
kubectl debug (POD | TYPE[[.VERSION].GROUP]/NAME) [ -- COMMAND [args...] ]
Приклади
# Створити інтерактивну сесію налагодження в Pod mypod та одразу приєднатися до неї.
kubectl debug mypod -it --image=busybox
# Створити інтерактивну сесію налагодження для Pod з файлу pod.yaml та одразу приєднатися до неї.
# (вимагає увімкнення функції EphemeralContainers в кластері)
kubectl debug -f pod.yaml -it --image=busybox
# Створити контейнер налагодження з назвою debugger, використовуючи власний автоматизований образ для налагодження.
kubectl debug --image=myproj/debug-tools -c debugger mypod
# Створити копію mypod, додавши контейнер налагодження, та приєднатися до неї.
kubectl debug mypod -it --image=busybox --copy-to=my-debugger
# Створити копію mypod, змінивши команду mycontainer.
kubectl debug mypod -it --copy-to=my-debugger --container=mycontainer -- sh
# Створити копію mypod, змінивши образи всіх контейнерів на busybox.
kubectl debug mypod --copy-to=my-debugger --set-image=*=busybox
# Створити копію mypod, додавши контейнер налагодження та змінивши образи контейнерів.
kubectl debug mypod -it --copy-to=my-debugger --image=debian --set-image=app=app:debug,sidecar=sidecar:debug
# Створити інтерактивну сесію налагодження на вузлі та одразу приєднатися до неї.
# Контейнер працюватиме в host namespaces та файлову систему вузла буде змонтовано у /host.
kubectl debug node/mynode -it --image=busybox
Параметри
--arguments-only | |
Якщо вказано, все, що знаходиться після --, буде передано до нового контейнера як Args замість Command. | |
--attach | |
Якщо значення true, дочекайтись запуску контейнера, а потім приєднати його так, ніби було викликано команду 'kubectl attach ...'. Стандартне значення false, якщо не задано параметр '-i/--stdin', у цьому випадку стандартне значення true. | |
-c, --container string | |
Назва контейнера, який буде використано для налагодження. | |
--copy-to string | |
Створіює копію цільового Pod з цією назвою. | |
--custom string | |
Шлях до JSON або YAML-файлу, що містить часткову специфікацію контейнера для налаштування вбудованих профілів налагодження. | |
--env stringToString Типово: [] | |
Змінні оточення, які потрібно встановити в контейнері. | |
-f, --filename strings | |
визначення ресурсу для налагодження | |
-h, --help | |
Довідка debug | |
--image string | |
Назва образу контейнера для запуску. | |
--image-pull-policy string | |
Політика отримання образів для контейнера. Якщо залишити порожнім, це значення не буде вказано клієнтом і буде стандартно визначене сервером. | |
--keep-annotations | |
Якщо значення true, зберігати оригінальні анотації p Podʼів (цей прапорець працює лише при використанні '--copy-to'). | |
--keep-init-containers Default: true | |
Запустити ініціалізаційні контейнери для pod. Стандартно дорівнює true (цей прапорець працює лише у випадку використання з '--copy-to'). | |
--keep-labels | |
Якщо значення true, зберігати оригінальні мітки Podʼів (цей прапорець працює лише при використанні '--copy-to'). | |
--keep-liveness | |
Якщо значення true, зберегти оригінальні проби життєздатності Podʼа. (Цей прапорець працює лише при використанні '--copy-to'). | |
--keep-readiness | |
Якщо значення true, зберегти оригінальні проби готовності Podʼа. (Цей прапорець працює лише при використанні '--copy-to'). | |
--keep-startup | |
Якщо значення true, зберігати оригінальні проби запуску (цей прапорець працює лише при використанні '--copy-to'). | |
--profile string Типово: "legacy" | |
Варіанти: " legacy", "general", "baseline", "netadmin", "restricted" або "sysadmin". | |
-q, --quiet | |
Якщо true, то придушити інформаційні повідомлення. | |
--replace | |
При використанні з '--copy-to' видаляє оригінальний Pod. | |
--same-node | |
Якщо використовується з '--copy-to', призначити копію цільового Pod на той самий вузол. | |
--set-image stringToString Типово: [] | |
При використанні з '--copy-to', список пар name=image для зміни образів контейнерів, подібно до того, як працює команда 'kubectl set image'. | |
--share-processes Типово: true | |
При використанні з '--copy-to' вмикає спільне використання простору імен процесів у копії. | |
-i, --stdin | |
Залишати stdin відкритим у контейнері (контейнерах), навіть якщо до нього нічого не приєднано. | |
--target string | |
При використанні ефемерного контейнера, спрямовувати процеси до цього контейнера. | |
-t, --tty | |
Призначення TTY для контейнера налагодження. |
Параметри батьківських команд
--as string | |
Імʼя користувача, яке використовується для виконання операції. Користувач може бути звичайним користувачем або службовим обліковим записом в просторі імен. | |
--as-group strings | |
Група, яка використовується для операції; цей прапорець можна повторити для вказівки декількох груп. | |
--as-uid string | |
UID, який використовується для операції. | |
--cache-dir string Типово: "$HOME/.kube/cache" | |
Типове розташування теки кешу | |
--certificate-authority string | |
Шлях до файлу сертифіката для центра сертифікації | |
--client-certificate string | |
Шлях до файлу клієнтського сертифіката для TLS | |
--client-key string | |
Шлях до файлу ключа клієнта для TLS | |
--cluster string | |
Назва файлу kubeconfig кластера, який слід використовувати | |
--context string | |
Назва контексту kubeconfig, який слід використовувати | |
--default-not-ready-toleration-seconds int Типово: 300 | |
Вказує tolerationSeconds для toleration notReady:NoExecute, який типово додається до кожного Pod, який ще не має такої толерантності. | |
--default-unreachable-toleration-seconds int Типово: 300 | |
Вказує tolerationSeconds для toleration unreachable:NoExecute, який типово додається до кожного Pod, який ще не має такої толерантності. | |
--disable-compression | |
Якщо true, відмовляється від стиснення відповіді для всіх запитів до сервера | |
--insecure-skip-tls-verify | |
Якщо true, сертифікат сервера не буде перевірятися на дійсність. Це зробить ваші HTTPS-зʼєднання небезпечними | |
--kubeconfig string | |
Шлях до файлу kubeconfig, який слід використовувати для CLI-запитів. | |
--match-server-version | |
Вимагає, щоб версія сервера відповідала версії клієнта | |
-n, --namespace string | |
Якщо присутній, простір імен для цього CLI-запиту | |
--password string | |
Пароль для базової автентифікації на API-сервері | |
--profile-output string Типово: "profile.pprof" | |
Імʼя файлу, в який записується профіль | |
--request-timeout string Типово: "0" | |
Час очікування перед відмовою у виконанні окремого запиту до сервера. Ненульові значення повинні містити відповідну одиницю часу (наприклад, 1s, 2m, 3h). Значення нуль означає відсутність тайм-ауту запитів. | |
-s, --server string | |
Адреса та порт сервера API Kubernetes | |
--storage-driver-buffer-duration duration Типово: 1m0s | |
Записи в драйвері зберігання будуть буферизовані на цей час і збережені в бекендах без памʼяті як одна транзакція | |
--storage-driver-db string Типово: "cadvisor" | |
Назва бази даних | |
--storage-driver-host string Типово: "localhost:8086" | |
Хост:порт бази даних | |
--storage-driver-password string Типово: "root" | |
Пароль бази даних | |
--storage-driver-secure | |
використовувати захищене зʼєднання з базою даних | |
--storage-driver-table string Типово: "stats" | |
Назва таблиці | |
--storage-driver-user string Типово: "root" | |
Імʼя користувача бази даних | |
--tls-server-name string | |
Імʼя сервера, яке використовується для перевірки дійсності сертифіката сервера. Якщо воно не надане, використовується імʼя хоста, яке використовується для звʼязку з сервером | |
--token string | |
Токен на предʼявника для автентифікації на API-сервері | |
--user string | |
Імʼя користувача kubeconfig, яке слід використовувати | |
--username string | |
Імʼя користувача для базової автентифікації на API-сервері | |
--version version[=true] | |
--version, --version=raw виводить інформацію про версію та завершує роботу; --version=vX.Y.Z... задає відповідну версію | |
--warnings-as-errors | |
Трактувати попередження, отримані від сервера, як помилки і виходити з ненульовим кодом виходу |
Дивіться також
- kubectl — kubectl керує менеджером кластерів Kubernetes