Установка и настройка kubectl
Инструмент командной строки Kubernetes kubectl позволяет запускать команды для кластеров Kubernetes. Вы можете использовать kubectl для развертывания приложений, проверки и управления ресурсов кластера, а также для просмотра логов. Полный список возможных операций для kubectl смотрите в Обзоре kubectl.
Подготовка к работе
Используемая вами мажорная версия kubectl не должна отличаться от той, которая используется в кластере. Например, версия v1.2 может работать с версиями v1.1, v1.2 и v1.3. Использование последней версии kubectl поможет избежать непредвиденных проблем.
Установка kubectl в Linux
Установка бинарного файла kubectl с помощью curl в Linux
-
Загрузите последнюю версию с помощью команды:
curl -LO https://dl.k8s.io/release/`curl -LS https://dl.k8s.io/release/stable.txt`/bin/linux/amd64/kubectl
Чтобы загрузить определенную версию, вставьте в фрагмент команды
$(curl -LS https://dl.k8s.io/release/stable.txt)
нужную версию.Например, команда загрузки версии 1.29.0 для Linux будет выглядеть следующим образом:
curl -LO https://dl.k8s.io/release/v1.29.0/bin/linux/amd64/kubectl
-
Сделайте бинарный файл kubectl исполняемым:
chmod +x ./kubectl
-
Переместите бинарный файл в директорию из переменной окружения PATH:
sudo mv ./kubectl /usr/local/bin/kubectl
-
Убедитесь, что установлена последняя версия:
kubectl version --client
Установка с помощью встроенного пакетного менеджера
sudo apt-get update && sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
sudo cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
sudo yum install -y kubectl
Установка с помощью стороннего пакетного менеджера
Если вы используете Ubuntu или другой Linux-дистрибутив, в котором есть пакетный менеджер snap, kubectl доступен в виде приложения snap.
snap install kubectl --classic
kubectl version
Если вы работаете в Linux и используете пакетный менеджер Homebrew, то kubectl можно установить через него.
brew install kubectl
kubectl version
Установка kubectl в macOS
Установка бинарного файла kubectl с помощью curl в macOS
-
Загрузите последнюю версию:
curl -LO "https://dl.k8s.io/release/$(curl -LS https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
Чтобы загрузить определенную версию, вставьте в фрагмент команды
$(curl -LS https://dl.k8s.io/release/stable.txt)
нужную версию.Например, команда загрузки версии 1.29.0 для macOS будет выглядеть следующим образом:
curl -LO https://dl.k8s.io/release/v1.29.0/bin/darwin/amd64/kubectl
-
Сделайте бинарный файл kubectl исполняемым:
chmod +x ./kubectl
-
Переместите бинарный файл в директорию из переменной окружения PATH:
sudo mv ./kubectl /usr/local/bin/kubectl
-
Убедитесь, что установлена последняя версия:
kubectl version --client
Установка с помощью Homebrew в macOS
Если вы используете macOS и Homebrew, то kubectl можно установить с помощью пакетного менеджера Homebrew.
-
Выполните команду установки:
brew install kubectl
Или:
brew install kubernetes-cli
-
Убедитесь, что установлена последняя версия:
kubectl version --client
Установка с помощью Macports в macOS
Если вы используйте macOS и Macports, то kubectl можно установить с помощью пакетного менеджера Macports.
-
Выполните команду установки:
sudo port selfupdate sudo port install kubectl
-
Убедитесь, что установлена последняя версия:
kubectl version --client
Установка kubectl в Windows
Установка бинарного файла kubectl с помощью curl в Windows
-
Загрузите последнюю версию 1.29.0 по этой ссылке.
Либо, если у вас установлен
curl
, выполните команду ниже:curl -LO https://dl.k8s.io/release/v1.29.0/bin/windows/amd64/kubectl.exe
Последнюю стабильную версию (например, при написании скриптов) вы можете узнать из файла по ссылке https://dl.k8s.io/release/stable.txt.
-
Переместите бинарный файл в директорию из переменной окружения PATH:
-
Убедитесь, что версия
kubectl
соответствует загружённой:kubectl version --client
kubectl
в переменную окружения PATH
.
Если у вас установлен Docker Desktop, вам придётся поместить путь к установленному бинарному файлу перед записью, добавленной установщиком Docker Desktop, либо же удалить вовсе kubectl
, поставляемый вместе с Docker Desktop.
Установка с помощью Powershell из PSGallery
Если вы работаете в Windows и используете менеджер пакетов Powershell Gallery, вы можете установить и обновить kubectl с помощью Powershell.
-
Выполните команды по установке (обязательно укажите
DownloadLocation
):Install-Script -Name install-kubectl -Scope CurrentUser -Force install-kubectl.ps1 [-DownloadLocation <path>]
Примечание: Если вы не укажетеDownloadLocation
, тоkubectl
будет установлен во временную директорию пользователя.Установщик создаст
$HOME/.kube
вместе с конфигурационным файлом. -
Убедитесь, что установлена последняя версия:
kubectl version --client
Примечание: Обновить kubectl можно путём выполнения двух команд, перечисленных в шаге 1.
Установка в Windows с помощью Chocolatey или Scoop
Для установки kubectl в Windows вы можете использовать либо менеджер пакетов Chocolatey, либо установщик в командной строке Scoop.
choco install kubernetes-cli
scoop install kubectl
-
Убедитесь, что установлена последняя версия:
kubectl version --client
-
Перейдите в домашнюю директорию:
cd %USERPROFILE%
-
Создайте директорию
.kube
:mkdir .kube
-
Перейдите в созданную только что директорию
.kube
:cd .kube
-
Настройте kubectl, чтобы было возможно использовать удаленный кластер Kubernetes:
New-Item config -type file
Примечание: Отредактируйте конфигурационный файл, используя ваш любимый текстовый редактор или обычный Notepad.
Установка kubectl из SDK Google Cloud
Вы можете использовать kubectl из SDK Google Cloud, который использует этот CLI-инструмент.
-
Установите Google Cloud SDK.
-
Выполните команду для установки
kubectl
:gcloud components install kubectl
-
Убедитесь, что установлена последняя версия:
kubectl version --client
Проверка конфигурации kubectl
Чтобы kubectl мог найти и получить доступ к кластеру Kubernetes, нужен файл kubeconfig, который создаётся автоматически при создании кластера с помощью скрипта kube-up.sh или при успешном развертывании кластера Minikube. По умолчанию конфигурация kubectl находится в ~/.kube/config
.
Посмотрите на состояние кластера, чтобы убедиться, что kubectl правильно сконфигурирован:
kubectl cluster-info
Если вы видите URL в ответ, значит kubectl корректно настроен для работы с вашим кластером.
Если вы видите сообщение следующего содержания, то значит kubectl настроен некорректно или не может подключиться к кластеру Kubernetes:
The connection to the server <server-name:port> was refused - did you specify the right host or port?
Например, если вы собираетесь запустить кластер Kubernetes на своем ноутбуке (локально), вам потребуется сначала установить специальный для этого инструмент, например Minikube, а затем снова выполнить указанные выше команды.
Если команда kubectl cluster-info
возвращает URL в ответ, но вы не можете подключиться к своему кластеру, чтобы убедиться, что он правильно настроен, воспользуйтесь этой командой:
kubectl cluster-info dump
Дополнительная конфигурация kubectl
Включение автодополнения ввода shell
kubectl поддерживает автодополнение (автозаполнение) ввода в Bash и Zsh, которое сэкономит вам много времени на набор команд.
Ниже приведены инструкции по настройке автодополнения для Bash (для Linux и macOS) и Zsh.
Основные сведения
Скрипт дополнения ввода kubectl для Bash может быть сгенерирован с помощью команды kubectl completion bash
. Подключение скрипта дополнения ввода в вашу оболочку включает поддержку автозаполнения ввода для kubectl.
Однако скрипт дополнения ввода зависит от bash-completion, поэтому вам нужно сначала установить этот пакет (вы можете выполнить команду type _init_completion
, чтобы проверить, установлен ли у вас уже bash-completion).
Установка bash-completion
bash-completion можно установить через многие менеджеры пакеты (см. здесь). Вы можете установить его с помощью apt-get install bash-completion
или yum install bash-completion
и т.д.
Приведенные выше команды создадут файл /usr/share/bash-completion/bash_completion
, который является основным скриптом bash-completion. Возможно, вам потребуется вручную подключить этот файл в ~/.bashrc
(необходимость выполнять эту операцию зависит от используемого менеджера пакетов).
Чтобы убедиться, что всё работает, перезагрузите оболочку и выполните команду type _init_completion
. Если команда отработала успешно, установка сделана правильно, в противном случае добавьте следующее содержимое в файл ~/.bashrc
:
source /usr/share/bash-completion/bash_completion
Перезагрузите вашу оболочку и убедитесь, что bash-completion правильно установлен, выполнив команду type _init_completion
.
Включение автодополнения ввода kubectl
Теперь нужно убедиться, что скрипт дополнения ввода kubectl выполняется во всех сессиях командной оболочки. Есть два способа сделать это:
-
Добавьте запуск скрипта дополнения ввода в файл
~/.bashrc
:echo 'source <(kubectl completion bash)' >>~/.bashrc
-
Добавьте скрипт дополнения ввода в директорию
/etc/bash_completion.d
:kubectl completion bash >/etc/bash_completion.d/kubectl
-
Если у вас определён псевдоним для kubectl, вы можете интегрировать его с автодополнением оболочки:
echo 'alias k=kubectl' >>~/.bashrc echo 'complete -F __start_kubectl k' >>~/.bashrc
/etc/bash_completion.d
.
Оба подхода эквивалентны. После перезагрузки вашей оболочки автодополнение ввода для kubectl должно работать.
Основные сведения
Скрипт дополнения ввода kubectl для Bash может быть сгенерирован с помощью команды kubectl completion bash
. Подключение скрипта дополнения ввода в вашей оболочке включает поддержку автозаполнения ввода для kubectl.
Однако скрипт дополнения ввода kubectl зависит от пакета bash-completion, который первым делом нужно установить.
Установка bash-completion
Вы можете проверить, установлен ли у вас bash-completion v2, набрав команду type _init_completion
. Если он не установлен, вы можете сделать это с помощью Homebrew:
brew install bash-completion@2
Как указано в выводе этой команды, добавьте следующий код в файл ~/.bashrc
:
export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d"
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
Перезагрузите вашу командную оболочку и убедитесь, что bash-completion v2 корректно установлен, выполнив команду type _init_completion
.
Включение автодополнения ввода kubectl
Теперь нужно убедиться, что скрипт дополнения ввода kubectl выполняется во всех сессиях командной оболочки. Есть два способа сделать это:
-
Добавьте запуск скрипта дополнения ввода в файл
~/.bashrc
:echo 'source <(kubectl completion bash)' >>~/.bashrc
-
Добавьте скрипт дополнения ввода в директорию
/etc/bash_completion.d
:kubectl completion bash >/usr/local/etc/bash_completion.d/kubectl
-
Если у вас определён псевдоним для kubectl, вы можете интегрировать его с автодополнением оболочки:
echo 'alias k=kubectl' >>~/.bashrc echo 'complete -F __start_kubectl k' >>~/.bashrc
Если вы установили kubectl с помощью Homebrew (как описано выше), то скрипт дополнения ввода kubectl уже должен быть находится в /usr/local/etc/bash_completion.d/kubectl
. В этом случае вам не нужно ничего делать.
BASH_COMPLETION_COMPAT_DIR
, что делает рабочими два метода.
Какой бы вариант вы ни выбрали, после перезагрузки командной оболочки автодополнение ввода для kubectl должно заработать.
Скрипт дополнения ввода kubectl для Zsh может быть сгенерирован с помощью команды kubectl completion zsh
. Подключение скрипта дополнения ввода в вашу оболочку включает поддержку автодополнения ввода для kubectl.
Чтобы подключить его во все сессии командной оболочки, добавьте следующую строчку в файл ~/.zshrc
:
source <(kubectl completion zsh)
Если у вас определён псевдоним для kubectl, вы можете интегрировать его с автодополнением оболочки:
echo 'alias k=kubectl' >>~/.zshrc
echo 'compdef __start_kubectl k' >>~/.zshrc
После перезагрузки командной оболочки должны появляться дополнения ввода kubectl.
Если появляется ошибка complete:13: command not found: compdef
, то добавьте следующее содержимое в начало вашего файла ~/.zshrc
:
autoload -Uz compinit
compinit
Что дальше
- Установка Minikube.
- Смотрите руководства по установке, чтобы узнать больше про создание кластеров.
- Научитесь запускать и делать доступным приложение.
- Если вам нужен доступ к кластеру, созданный не вами, посмотрите страницу Configure Access to Multiple Clusters.
- Читайте референсную документацию kubectl.