This the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Установка инструментов

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

  1. Загрузите последнюю версию с помощью команды:

    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.21.14 для Linux будет выглядеть следующим образом:

    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.21.14/bin/linux/amd64/kubectl
    
  2. Сделайте двоичный файл kubectl исполняемым:

    chmod +x ./kubectl
    
  3. Переместите двоичный файл в директорию из переменной окружения PATH:

    sudo mv ./kubectl /usr/local/bin/kubectl
    
  4. Убедитесь, что установлена последняя версия:

    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

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
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

  1. Загрузите последнюю версию:

    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.21.14 для macOS будет выглядеть следующим образом:

    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.21.14/bin/darwin/amd64/kubectl
    
  2. Сделайте двоичный файл kubectl исполняемым:

    chmod +x ./kubectl
    
  3. Переместите двоичный файл в директорию из переменной окружения PATH:

    sudo mv ./kubectl /usr/local/bin/kubectl
    
  4. Убедитесь, что установлена последняя версия:

    kubectl version --client
    

Установка с помощью Homebrew в macOS

Если вы используете macOS и Homebrew, то kubectl можно установить с помощью пакетного менеджера Homebrew.

  1. Выполните команду установки:

    brew install kubectl
    

    Или:

    brew install kubernetes-cli
    
  2. Убедитесь, что установлена последняя версия:

    kubectl version --client
    

Установка с помощью Macports в macOS

Если вы используйте macOS и Macports, то kubectl можно установить с помощью пакетного менеджера Macports.

  1. Выполните команду установки:

    sudo port selfupdate
    sudo port install kubectl
    
  2. Убедитесь, что установлена последняя версия:

    kubectl version --client
    

Установка kubectl в Windows

Установка двоичного файла kubectl с помощью curl в Windows

  1. Загрузите последнюю версию v1.21.14 по этой ссылке.

    Либо, если у вас установлен curl, выполните команду ниже:

    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.21.14/bin/windows/amd64/kubectl.exe
    

    Последнюю стабильную версию (например, при написании скриптов) вы можете узнать из файла по ссылке https://storage.googleapis.com/kubernetes-release/release/stable.txt.

  2. Переместите двоичный файл в директорию из переменной окружения PATH:

  3. Убедитесь, что версия kubectl совпадает загружённой:

    kubectl version --client
    
Заметка: Docker Desktop for Windows добавляет собственную версию kubectl в переменную окружения PATH. Если у вас установлен Docker Desktop, вам придётся поместить путь к установленному двоичному файлу перед записью, добавленной установщиком Docker Desktop, либо же удалить вовсе kubectl, поставляемый вместе с Docker Desktop.

Установка с помощью Powershell из PSGallery

Если вы работаете в Windows и используете менеджер пакетов Powershell Gallery, вы можете установить и обновить kubectl с помощью Powershell.

  1. Выполните команды по установке (обязательно укажите DownloadLocation):

    Install-Script -Name install-kubectl -Scope CurrentUser -Force
    install-kubectl.ps1 [-DownloadLocation <path>]
    
    Заметка: Если вы не укажете DownloadLocation, то kubectl будет установлен во временную директорию пользователя.

    Установщик создаст $HOME/.kube вместе с конфигурационным файлом.

  2. Убедитесь, что установлена последняя версия:

    kubectl version --client
    
    Заметка: Обновить kubectl можно путём выполнения двух команд, перечисленных в шаге 1.

Установка в Windows с помощью Chocolatey или Scoop

Для установки kubectl в Windows вы можете использовать либо менеджер пакетов Chocolatey , либо установщик в командной строке Scoop.

choco install kubernetes-cli

scoop install kubectl
2. Убедитесь, что установлена последняя версия:

```
kubectl version --client
```
  1. Перейдите в домашнюю директорию:

    cd %USERPROFILE%
    
  2. Создайте директорию .kube:

    mkdir .kube
    
  3. Перейдите в созданную только что директорию .kube:

    cd .kube
    
  4. Настройте kubectl, чтобы возможно было использовать удаленный кластер Kubernetes:

    New-Item config -type file
    
    Заметка: Отредактируйте конфигурационный файл, используя ваш любимый текстовый редактор или обычный Notepad.

Установка kubectl из SDK Google Cloud

Вы можете использовать kubectl из SDK Google Cloud, который использует этот CLI-инструмент.

  1. Установите Google Cloud SDK.

  2. Выполните команду для установки kubectl:

    gcloud components install kubectl
    
  3. Убедитесь, что установлена последняя версия:

    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
    
Заметка: Все скрипты дополнения ввода bash-completion находятся в /etc/bash_completion.d.

Оба подхода эквивалентны. После перезагрузки вашей оболочки, должны появляться дополнения ввода kubectl.

Основные сведения

Скрипт дополнения ввода kubectl для Bash может быть сгенерирован с помощью команды kubectl completion bash. Подключение скрипта дополнения ввода в вашей оболочке включает поддержку автозаполнения ввода для kubectl.

Однако скрипт дополнения ввода kubectl зависит от пакета bash-completion, который первым делом нужно установить.

Предупреждение: Есть две версии bash-completion: первая (v1) и вторая (v2). Первая предназначена для Bash 3.2 (который используется по умолчанию в macOS), а вторая — для Bash 4.1+. Скрипт дополнения ввода kubectl не работает корректно с bash-completion v1 и Bash 3.2. Требуется bash-completion v2 и Bash 4.1+. Таким образом, чтобы правильно использовать дополнение kubectl в macOS, вам нужно установить и использовать Bash 4.1+ (инструкции по обновлению). Последующие шаги предполагают, что вы используете Bash 4.1+ (то есть любую версию Bash 4.1 или более новую).

Установка bash-completion

Заметка: Как уже упоминалось, в этих инструкциях предполагается, что вы используете Bash 4.1+, поэтому вы устанавливаете bash-completion v2 (а не Bash 3.2 и bash-completion v1, в таком случае дополнение ввода kubectl не будет работать).

Вы можете проверить, установлен ли у вас 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. В этом случае вам не нужно ничего делать.

Заметка: Homebrew устанавливает bash-completion v2 в директорию BASH_COMPLETION_COMPAT_DIR, что делает рабочими два метода.

Какой вариант бы вы не выбрали, после перезагрузки командной оболочки, дополнение ввода kubectl должно заработать.

Скрипт дополнения ввода kubectl для Zsh может быть сгенерирован с помощью команды kubectl completion zsh. Подключение скрипта дополнения ввода в вашу оболочку включает поддержку автозаполнения ввода для kubectl.

Чтобы подключить его во все сессии командной оболочки, добавьте следующую строчку в файл ~/.zshrc:

source <(kubectl completion zsh)

Если у вас определён псевдоним для kubectl, вы можете интегрировать его с автодополнением оболочки:

echo 'alias k=kubectl' >>~/.zshrc
echo 'complete -F __start_kubectl k' >>~/.zshrc

После перезагрузки командной оболочки должны появляться дополнения ввода kubectl.

Если появляется такая ошибка как complete:13: command not found: compdef, то добавьте следующее содержимое в начало вашего файла ~/.zshrc:

autoload -Uz compinit
compinit

Что дальше

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

VirtualBox

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

VirtualBox

VMware Fusion

Установка 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

VirtualBox

Заметка: Hyper-V может работать в трёх версиях Windows 10: Windows 10 Enterprise, Windows 10 Professional и Windows 10 Education.

Установка 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

Что дальше