1 - Установка и настройка 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.23.0 для Linux будет выглядеть следующим образом:
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.23.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/yum-key.gpg 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.23.0 для macOS будет выглядеть следующим образом:
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.23.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.23.0 по этой ссылке.
Либо, если у вас установлен
curl
, выполните команду ниже:curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.23.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
2 - Установка Minikube
На этой странице рассказано, как установить Minikube, инструмент для запуска одноузлового кластера Kubernetes на виртуальной машине в персональном компьютере.
Подготовка к работе
Чтобы проверить, поддерживается ли виртуализация в Linux, выполните следующую команду и проверьте, что вывод не пустой:
grep -E --color 'vmx|svm' /proc/cpuinfo
Чтобы проверить, поддерживается ли виртуализация в macOS, выполните следующую команду в терминале:
sysctl -a | grep -E --color 'machdep.cpu.features|VMX'
Если вы видите VMX
в выводе (должен быть окрашенным), значит в вашем компьютере поддерживается виртуализация VT-x.
Чтобы проверить, поддерживается ли виртуализация в Windows 8 и выше, выполните следующую команду в Windows Terminal или в командной строке.
systeminfo
Если вы видите следующий вывод, значит виртуализация поддерживается в Windows.
Hyper-V Requirements: VM Monitor Mode Extensions: Yes
Virtualization Enabled In Firmware: Yes
Second Level Address Translation: Yes
Data Execution Prevention Available: Yes
Если вы видите следующий вывод, значит системе уже установлен гипервизор, значит вы можете пропустить следующий шаг установке гипервизора.
Hyper-V Requirements: A hypervisor has been detected. Features required for Hyper-V will not be displayed.
Установка minikube
Установка kubectl
Убедитесь, что у вас установлен kubectl. Вы можете установить kubectl согласно инструкциям в разделе Установка и настройка kubectl.
Установка Hypervisor
Если у вас ещё не установлен гипервизор, установите один из них:
• KVM, который также использует QEMU
Minikube также поддерживает опцию --vm-driver=none
, которая запускает компоненты Kubernetes на хосте, а не на виртуальной машине.
Для использования этого драйвера требуется только Docker и Linux, но не гипервизор.
Если вы используете драйвер none
в Debian и его производных, используйте пакеты .deb
для Docker, а не snap-пакет, который не работает с Minikube.
Вы можете скачать .deb
-пакеты с сайта Docker.
none
может привести к проблемам безопасности и потери данных. Перед использованием --vm-driver=none
обратитесь к этой документации для получения дополнительной информации.
Minikube также поддерживает vm-driver=podman
, похожий на драйвер Docker. Podman, работающий с правами суперпользователя (пользователь root) — это лучший способ гарантировать вашим контейнерам полный доступ ко всем возможностям в системе.
podman
должен запускать контейнеры от имени суперпользователя, поскольку у обычных аккаунтов нет полного доступа ко всем возможностям операционной системы, которые могут понадобиться контейнерам для работы.
Установка Minikube через пакет
Доступны экспериментальные пакеты для Minikube; Вы можете загрузить пакеты для Linux (AMD64) со страницы релизов Minikube на GitHub.
Используйте пакетный менеджер в вашем дистрибутиве Linux для установки нужного пакета.
Установка Minikube с помощью прямой ссылки
Вы также можете загрузить двоичный файл и использовать его вместо установки пакета:
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
&& chmod +x minikube
Чтобы исполняемый файл Minikube был доступен из любой директории выполните следующие команды:
sudo mkdir -p /usr/local/bin/
sudo install minikube /usr/local/bin/
Установка Minikube через Homebrew
В качестве ещё одной альтернативы вы можете установить Minikube с помощью Linux Homebrew:
brew install minikube
Установка kubectl
Убедитесь, что у вас установлен kubectl. Вы можете установить kubectl согласно инструкциям в разделе Установка и настройка kubectl.
Установка Hypervisor
Если у вас ещё не установлен гипервизор, установите один из них:
• HyperKit
Установка Minikube
Простейший способ установить Minikube в macOS — использовать Homebrew:
brew install minikube
Вы также можете установить его в macOS, загрузив двоичный файл:
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 \
&& chmod +x minikube
Чтобы исполняемый файл Minikube был доступен из любой директории выполните следующие команды:
sudo mv minikube /usr/local/bin
Установка kubectl
Убедитесь, что у вас установлен kubectl. Вы можете установить kubectl согласно инструкциям в разделе Установка и настройка kubectl.
Установка Hypervisor
Если у вас ещё не установлен гипервизор, установите один из них:
• Hyper-V
Установка Minikube с помощью Chocolatey
Простейший способ установить Minikube в Windows — использовать Chocolatey (запущенный с правами администратора):
choco install minikube
После установки Minikube нужно перезапустить терминал. Minikube должен быть автоматически добавлен в директорию с исполняемыми файлами.
Установка Minikube с помощью исполняемого файла установки
Для ручной установки Minikube в Windows с помощью установщика Windows, загрузите и запустите установщик minikube-installer.exe
.
Установка Minikube с помощью прямой ссылки
Для ручной установки Minikube в Windows, загрузите minikube-windows-amd64
, переименуйте его в minikube.exe
и добавьте его в директорию исполняемых файлов.
Проверка установки
Чтобы убедиться в том, что гипервизор и Minikube были установлены корректно, выполните следующую команду, которая запускает локальный кластер Kubernetes:
--vm-driver
с командой minikube start
укажите имя установленного вами гипервизора в нижнем регистре в заполнителе <driver_name>
команды ниже. Полный список значений для опции --vm-driver
перечислен в разделе по указанию драйвера виртуальной машины.
minikube start --vm-driver=<driver_name>
После того, как команда minikube start
отработала успешно, выполните команду для проверки состояния кластера:
minikube status
Если ваш кластер запущен, то в выводе команды minikube status
должно быть что-то вроде этого:
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
Теперь, когда вы убедились, что Minikube работает с выбранным вами гипервизором, вы можете продолжить использовать Minikube или остановить кластер. Чтобы остановить кластер выполните команду ниже:
minikube stop
Очистка локального состояния
Если вы уже установили Minikube, то выполните следующую команду:
minikube start
В таком случае команда minikube start
вернёт ошибку:
machine does not exist
Чтобы исправить это, нужно очистить локальное состояние:
minikube delete