Установка и настройка kubectl
Инструмент командной строки Kubernetes kubectl позволяет запускать команды для кластеров Kubernetes. Вы можете использовать kubectl для развертывания приложений, проверки и управления ресурсов кластера, а также для просмотра логов. Полный список операций kubectl смотрите в Overview of kubectl.
Подготовка к работе
Используемая вами мажорная версия kubectl не должна отличаться от той, которая используется в кластере. Например, версия v1.2 может работать с версиями v1.1, v1.2 и v1.3. Использование последней версии kubectl поможет избежать непредвиденных проблем.
Установка kubectl в Linux
Установка двоичного файла kubectl с помощью curl в Linux
- Загрузите последнюю версию с помощью команды: - curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl- Чтобы загрузить определенную версию, вставьте в фрагмент команды - $(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)нужную версию.- Например, команда загрузки версии v1.25.0 для Linux будет выглядеть следующим образом: - curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.25.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://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl"- Чтобы загрузить определенную версию, вставьте в фрагмент команды - $(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)нужную версию.- Например, команда загрузки версии v1.25.0 для macOS будет выглядеть следующим образом: - curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.25.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
- Загрузите последнюю версию v1.25.0 по этой ссылке. - Либо, если у вас установлен - curl, выполните команду ниже:- curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.25.0/bin/windows/amd64/kubectl.exe- Последнюю стабильную версию (например, при написании скриптов) вы можете узнать из файла по ссылке https://storage.googleapis.com/kubernetes-release/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
- Смотрите руководства по установке, чтобы узнать больше про создание кластеров.
- Learn how to launch and expose your application.
- Если у вас нет доступа к кластеру, который не создавали, посмотрите страницу Совместный доступ к кластеру.
- Read the kubectl reference docs