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

    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.22.16/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

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

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

    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.22.16/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.22.16 по этой ссылке.

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

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

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

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

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

    kubectl version --client
    

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

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

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

    Install-Script -Name install-kubectl -Scope CurrentUser -Force
    install-kubectl.ps1 [-DownloadLocation <path>]
    

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

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

    kubectl version --client
    

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

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

Оба подхода эквивалентны. После перезагрузки вашей оболочки, должны появляться дополнения ввода 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. В этом случае вам не нужно ничего делать.

Какой вариант бы вы не выбрали, после перезагрузки командной оболочки, дополнение ввода 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

Что дальше

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.

Minikube также поддерживает vm-driver=podman, похожий на драйвер Docker. Podman, работающий с правами суперпользователя (пользователь root) — это лучший способ гарантировать вашим контейнерам полный доступ ко всем возможностям в системе.

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

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

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

Что дальше