kubectl — консольная утилита для работы с сущностями кластера Kubernetes. При помощи нее можно управлять ресурсами кластера, разворачивать приложения, просматривать логи и выполнять другие задачи администрирования.
Установка kubectl
Обратите внимание, что минорная версия
kubectl(вторая цифра в версии) может отличаться от версии кластера на +/- 1. При использовании более новых или более старых версий могут возникать проблемы с совместимостью. В инструкции указаны конкретные версии для примера, но вы можете заменить их на нужные вам версии.
Ручная установка
-
Загрузите бинарный файл
kubectl:
curl -LO "https://storage.googleapis.com/kubernetes-release/release/v1.30.2/bin/linux/amd64/kubectl"
-
Проверьте целостность загруженного файла:
echo "$(curl -sL https://dl.k8s.io/release/v1.30.2/bin/linux/amd64/kubectl.sha256) kubectl" | sha256sum --check
-
Установите
kubectl:
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
Установка через apt
-
Обновите список пакетов:
sudo apt update
-
Установите необходимые пакеты:
sudo apt install -y apt-transport-https ca-certificates curl gnupg
-
Добавьте ключ для репозитория Kubernetes и установите правильные права доступа на ключ:
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg && sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg
-
Добавьте репозиторий Kubernetes в список источников APT и установите правильные права доступа на файл списка источников:
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list && sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list
-
Обновите список пакетов снова:
sudo apt update
-
Установите
kubectl:
sudo apt install -y kubectl
Теперь kubectl установлен на вашем компьютере. Вы можете проверить установку, выполнив команду:
kubectl version
Настройка доступа к кластеру Kubernetes
Получение конфигурационного файла kubeconfig
Файл config.yaml используется kubectl для определения, к какому кластеру подключаться и какие учетные данные использовать. Он содержит информацию о кластерах, пользователях и контекстах, что позволяет легко переключаться между различными конфигурациями Kubernetes.
Поскольку файл config.yaml содержит важные учетные данные, его следует хранить в недоступном для посторонних лиц месте, чтобы предотвратить несанкционированный доступ к кластеру. При получении доступа к этому файлу посторонний человек может управлять кластером и его ресурсами.
Чтобы получить конфигурационный файл, перейдите на страницу управления кластером и во вкладке «Дашборд» нажмите ссылку «скачайте файл конфигурации».

Размещение kubeconfig в домашнем каталоге
После получения файла config.yaml необходимо разместить его в правильном каталоге, чтобы kubectl мог его использовать.
-
Создайте директорию
.kubeв вашем домашнем каталоге, если она еще не существует:
mkdir -p ~/.kube
-
Скопируйте файл
config.yamlв эту директорию и переименуйте его вconfig:
cp ~/Downloads/config.yaml ~/.kube/config
После выполнения этих шагов kubectl будет автоматически использовать конфигурацию из файла ~/.kube/config.
Использование переменной окружения KUBECONFIG
Если вам нужно использовать несколько файлов конфигурации или расположить config.yaml в другом месте, вы можете воспользоваться переменной окружения KUBECONFIG.
-
Откройте терминал.
-
Установите переменную окружения
KUBECONFIG:
export KUBECONFIG=<path-to-your-kubeconfig>
Чтобы эти настройки сохранялись после перезагрузки системы, выполните следующий код (по необходимости изменив ~/.bashrc на ~/.zshrc (для MacOS) или ~/.profile):
echo "export KUBECONFIG=<path-to-your-kubeconfig>" >> ~/.bashrc
Использование нескольких конфигурационных файлов
Вы можете указать несколько файлов kubeconfig, разделяя их пути двоеточиями (на macOS и Linux) или точкой с запятой (на Windows):
Windows (PowerShell):
$env:KUBECONFIG="<path-to-your-first-kubeconfig>;<path-to-your-second-kubeconfig>"
macOS и Linux:
export KUBECONFIG=<path-to-your-first-kubeconfig>:<path-to-your-second-kubeconfig>
Настройка подключения к кластеру Kubernetes
После настройки доступа вам нужно убедиться, что kubectl может подключиться к кластеру. Для этого выполните следующую команду:
kubectl cluster-info
Эта команда выведет информацию о вашем кластере, включая адреса API и других компонентов. Если команда выполнена успешно, значит, kubectl подключен к кластеру.
Проверка контекста
Контексты позволяют переключаться между разными кластерами и учетными данными. Каждый контекст представляет собой комбинацию кластеров, пользователей и пространств имен (namespaces).
Чтобы увидеть список доступных контекстов и узнать, какой из них активен в данный момент, используйте команду:
kubectl config get-contexts
Эта команда выведет таблицу с доступными контекстами и укажет, какой из них активен в данный момент.

Если у вас настроено несколько кластеров и вы хотите переключиться на другой контекст, используйте следующую команду:
kubectl config use-context <context-name>
Замените <context-name> на имя нужного контекста, которое вы получили из предыдущей команды. После выполнения этой команды kubectl будет использовать новый контекст для всех последующих команд.
Настройка автодополнения команд
Автодополнение команд помогает ускорить ввод команд и уменьшить количество ошибок, автоматически предлагая возможные варианты по мере набора команды. Это особенно полезно для длинных и сложных команд kubectl.
Установка bash-completion
Установите пакет bash-completion, если он еще не установлен.
Для Ubuntu/Debian:
sudo apt install bash-completion
Для CentOS/RHEL:
sudo yum install bash-completion
Для macOS через Homebrew:
brew install bash-completion
Включите автодополнение для текущего сеанса:
source <(kubectl completion bash)
Чтобы автодополнение было всегда включено, выполните команду:
echo "source <(kubectl completion bash)" >> ~/.bashrc
Основные команды kubectl
Получение информации о кластере
Чтобы получить общую информацию о вашем кластере, включая адреса компонентов, используйте команду:
kubectl cluster-info
Просмотр подов
Для получения списка всех подов в текущем пространстве имен используйте команду:
kubectl get pods
Если вы хотите увидеть поды в конкретном пространстве имен, добавьте опцию -n:
kubectl get pods -n <namespace>
Просмотр служб
Чтобы увидеть все службы (services) в текущем пространстве имен, выполните команду:
kubectl get services
Вы также можете указать пространство имен:
kubectl get services -n <namespace>
Просмотр конфигурации
Чтобы увидеть текущую конфигурацию и активный контекст:
kubectl config view
Описание ресурсов
Для получения детальной информации о любом ресурсе, таком как под или служба:
kubectl describe <resource-type> <resource-name>
Например, чтобы получить информацию о поде:
kubectl describe pod <pod-name>
Удаление ресурсов
Для удаления ресурса, такого как под или служба:
kubectl delete <resource-type> <resource-name>
Например, чтобы удалить под:
kubectl delete pod <pod-name>