Інструмент командного рядка kubectl
Kubernetes надає інструмент командного рядка для взаємодії із кластером Kubernetes, панеллю управління, використовуючи API Kubernetes.
Інструмент kubectl взаємодіє з вашим кластером через Kubernetes API. kubectl шукає файл налаштувань з назвою config у теці $HOME/.kube. Ви можете вказати інші файли kubeconfig, встановивши змінну середовища KUBECONFIG або використавши прапорець --kubeconfig.
Роль of kubectl
kubectl є основним інструментом для створення, перегляду, оновлення та видалення обʼєктів Kubernetes. Він доповнює компоненти Kubernetes, які працюють у вашому кластері, та Kubernetes API, який реалізує ці компоненти. Незалежно від того, чи запускаєте ви kubectl з вашого ноутбука або з Podʼа всередині кластера, він надсилає запити до API-сервера. Інші клієнти, такі як клієнтські бібліотеки та інформаційні панелі такі, як Headlamp, також взаємодіють через той самий API.
Як працює kubectl
Інструмент kubectl підключається до API-сервера та автентифікується за допомогою відомостей про кластер, користувача та контекст, визначених у вашому файлі kubeconfig. Коли ви запускаєте kubectl ззовні кластера, він використовує файл kubeconfig для знаходження адреси API-сервера та облікових даних. Коли kubectl працює всередині Podʼа (наприклад, у CI/CD конвеєрі), він може використовувати автентифікацію всередині кластера на основі токена ServiceAccount, змонтованого в Pod.
Коли ви запускаєте команду, kubectl перетворює ваші наміри на один або кілька HTTP-запитів до Kubernetes API. API-сервер перевіряє кожен запит, застосовує його до стану кластера, збереженого в etcd, і повертає результат. Це означає, що кожна дія kubectl, чи то створення Deployment, чи читання журналів, слідує одному й тому ж шляху, керованому API.
Оскільки ваш kubeconfig може визначати кілька кластерів, користувачів і контекстів, ви можете використовувати kubectl для перемикання між кластерами без повторного налаштування середовища. Використовуйте kubectl config use-context, щоб змінити активний контекст.
Що можна робити з kubectl
Інструмент kubectl підтримує багато операцій, які можна умовно розділити на такі категорії:
- Керування ресурсами — Створення, оновлення та видалення обʼєктів, таких як Podʼи, Deploymentʼи та Serviceʼи. Використовуйте
kubectl applyдля декларативного керування за допомогою конфігураційних файлів. - Перевірка стану кластера — Перегляд списків та описів обʼєктів, подій та використання ресурсів.
- Налагодження — Перегляд журналів контейнерів, виконання команд всередині запущеного контейнера або перенаправлення портів до Podʼа.
- Операції з кластером — Виведення вузлів з обслуговування, блокування вузлів для запобігання новим навантаженням та керування конфігурацією кластера.
- Скрипти та автоматизація — Форматування виводу у JSON, YAML або власні колонки за допомогою JSONPath для використання у скриптах та конвеєрах.
Для ознайомлення з синтаксисом, довідником команд та прикладами, дивіться довідку kubectl.
Декларативне vs імперативне керування
Для робочих навантажень у виробничому середовищі рекомендується використовувати декларативне керування обʼєктами за допомогою kubectl apply з конфігураційними файлами з контролем версій. Декларативне керування допомагає відстежувати зміни, співпрацювати та інтегруватися з GitOps-процесами. Імперативні команди (такі як kubectl create або kubectl run) корисні для розробки та експериментів, але їх важче відтворювати та перевіряти.
Розширення kubectl за допомогою втулків
Ви можете розширювати kubectl за допомогою втулків, які додають нові команди. Втулки є автономними бінарними файлами, які дотримуються конвенції іменування kubectl-<назва-втулка>. Спільнота Kubernetes підтримує багато втулків, і ви можете керувати ними за допомогою менеджера втулків Krew.
Сумісність версій
Інструмент kubectl підтримує різницю версій плюс-мінус одну мінорну версію відносно панелі управління кластера. Наприклад, kubectl v1.32 працює з панелями управління в кластерах версій v1.31, v1.32 та v1.33. Використання сумісної версії запобігає непередбачуваній поведінці. Дивіться Політику версійної розбіжності для отримання деталей.
Що далі
- Ознайомтеся з довідкою kubectl для отримання відомостей про синтаксис та деталі команд.
- Встановіть kubectl на вашому компʼютері.
- Дізнайтеся про API Kubernetes, який використовує
kubectl. - Ознайомтеся з компонентами Kubernetes, які складають кластер.
- Дослідіть керування об'єктами та декларативну конфігурацію.
- Перевірте політику версійної розбіжності для підтримуваних комбінацій версій.