25 KiB
title, content_template, weight, card
| title | content_template | weight | card | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Установка и настройка kubectl | templates/task | 10 |
|
{{% capture overview %}} kubectl - это утилита командной строки для Kubernetes, позволяющая выполнять команды на кластере Kubernetes. kubectl можно использовать для развёртывания приложений, инспектирования и управления ресурсами кластера, а также для просмотра логов. Для ознакомления с полным списком возможностей kubectl, обратитесь к странице Обзор kubectl. {{% /capture %}}
{{% capture prerequisites %}} Необходимо использовать версию kubectl на одну минорную версию отличающуюся от вашего кластера. Например, клиент с версией v1.2 должен работать с версиями мастера v1.1, v1.2 и v1.3. Использование последней стабильной версии kubectl позволяет избежать непредвиденных проблем. {{% /capture %}}
{{% capture steps %}}
Установка 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)на команду с выбранной версией.Например, для установки версии {{< param "fullversion" >}} на Linux введите:
curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/linux/amd64/kubectl -
Сделайте бинарный файл kubectl исполняемым.
chmod +x ./kubectl -
Переместите файл в директорию из переменной окружения PATH.
sudo mv ./kubectl /usr/local/bin/kubectl -
Чтобы проверить актуальность установленной версии, выполните команду:
kubectl version
Установка с использованием нативного менеджера пакетов
{{< tabs name="kubectl_install" >}} {{< tab name="Ubuntu, Debian или HypriotOS" codelang="bash" >}} 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 {{< /tab >}} {{< tab name="CentOS, RHEL или Fedora" codelang="bash" >}}cat < /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 {{< /tab >}} {{< /tabs >}}
Установка с использованием других менеджеров пакетов
Если вы используете Ubuntu или другой дистрибутив Linux, поддерживающий пакетный менеджер snap, kubectl доступен в виде приложения snap.
Если вы пользователь Linux и используете пакетный менеджер Homebrew, kubectl доступен для установки.
{{< tabs name="other_kubectl_install" >}} {{< tab name="Snap" codelang="bash" >}} sudo snap install kubectl --classic
kubectl version {{< /tab >}} {{< tab name="Homebrew" codelang="bash" >}} brew install kubectl
kubectl version {{< /tab >}} {{< /tabs >}}
Установка 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)на команду с выбранной версией.Например, для установки версии {{< param "fullversion" >}} на macOS введите:
curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/darwin/amd64/kubectl -
Сделайте бинарный файл kubectl исполняемым.
chmod +x ./kubectl -
Переместите файл в директорию из переменной окружения PATH.
sudo mv ./kubectl /usr/local/bin/kubectl -
Чтобы проверить актуальность установленной версии, выполните команду:
kubectl version
Установка с использованием Homebrew на macOS
Если вы пользователь macOS и используете пакетный менеджер Homebrew, вы можете установить kubectl с помощью Homebrew.
-
Для установки, выполните команду:
brew install kubectlили
brew install kubernetes-cli -
Чтобы проверить актуальность установленной версии, выполните команду:
kubectl version
Установка с использованием Macports на macOS
Если вы пользователь macOS и используете пакетный менеджер Macports, вы можете установить kubectl с помощью Macports.
-
Для установки, выполните команду:
sudo port selfupdate sudo port install kubectl -
Чтобы проверить актуальность установленной версии, выполните команду:
kubectl version
Установка kubectl на Windows
Установка бинарного файла kubectl с использованием curl на Windows
-
Загрузите последний релиз {{< param "fullversion" >}} по [этой ссылке](https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe).
Или, если у вас установлена утилита
curl, воспользуйтесь командой:curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exeЧтобы определить последнюю стабильную версию (например, для написания скриптов), обратитесь к https://storage.googleapis.com/kubernetes-release/release/stable.txt..
-
Добавьте путь к бинарному файлу в переменную окружения PATH.
-
Проверьте, что установленная версия
kubectlсоответствует загруженной:kubectl version
{{< note >}}
Docker Desktop для Windows добавляет в PATH собственную версию kubectl. Если вы устанавливали Docker Desktop ранее, вам может быть необходимо разметить запись в переменной PATH до добавленной приложением Docker Desktop или удалить Docker Desktop kubectl.
{{< /note >}}
Установка с помощью Powershell из PSGallery
Если вы пользователь Windows и используете пакетный менеджер Powershell Gallery, вы можете установить kubectl с помощью Powershell.
-
Для установки, выполните команду (не забудьте указать
DownloadLocation):Install-Script -Name install-kubectl -Scope CurrentUser -Force install-kubectl.ps1 [-DownloadLocation <path>]{{< note >}} Если вы не укажете
DownloadLocation,kubectlбудет установлен во временную пользовательскую директорию.{{< /note >}}Установщик создаст
$HOME/.kubeи даст ему инструкции по созданию файла конфигурации -
Чтобы проверить актуальность установленной версии, выполните команду:
kubectl version{{< note >}}Обновление производится с помощью повторного выполнения команд из пункта 1.{{< /note >}}
Установка на Windows с использованием Chocolatey или Scoop
Для установки kubectl на Windows можно использовать пакетный менеджер Chocolatey или установщик командной строки Scoop. {{< tabs name="kubectl_win_install" >}} {{% tab name="choco" %}}
choco install kubernetes-cli
{{% /tab %}} {{% tab name="scoop" %}}
scoop install kubectl
{{% /tab %}} {{< /tabs >}} 2. Чтобы проверить актуальность установленной версии, выполните команду:
```
kubectl version
```
-
Перейдите в домашнюю директорию:
cd %USERPROFILE% -
Создайте директорию
.kube:mkdir .kube -
Перейдите в только что созданную директорию
.kube:cd .kube -
Настройте kubectl на использование удалённого кластера Kubernetes:
New-Item config -type file{{< note >}}Вы можете отредактировать конфигурационный файл с помощью удобного вам текстового редактора, например Notepad.{{< /note >}}
Загрузка как часть Google Cloud SDK
Вы можете установить kubectl как часть Google Cloud SDK.
-
Установите Google Cloud SDK.
-
Запустите команду установки
kubectl:gcloud components install kubectl -
Чтобы проверить актуальность установленной версии, выполните команду:
kubectl version
Проверка конфигурации kubectl
Для того, чтобы kubectl мог найти и получить доступ к кластеру Kubernetes, необходим файл kubeconfig, который создаётся автоматически при создании кластера с использованием kube-up.sh или успешном развёртывании кластера Minikube. По умолчанию настройки kubectl находятся в ~/.kube/config.
Проверить, что kubectl настроен правильно, можно получив состояние кластера:
kubectl cluster-info
Если вы видите в ответе URL, доступ kubectl к вашему кластеру настроен правильно.
Если вы видите сообщение, аналогичное данному, kubectl сконфигурирован неверно или kubectl не может установить связь с вашим кластером.
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
Включение автодополнения командной оболочки
kubectl предоставляет поддержку автодополнения для Bash и Zsh, что может позволить вам сильно сократить время набора команд.
Ниже указаны инструкции для настройки автодополнения для Bash (включая разницу между Linux и macOS) и Zsh.
{{< tabs name="kubectl_autocompletion" >}}
{{% tab name="Bash на Linux" %}}
Введение
Скрипт для дополнений kubectl для Bash может быть сгенерирован с помощью команды kubectl completion bash. После завершения выполнения скрипта в вашем командной оболочке будет доступно автодополнение команд kubectl.
Однако выполнение скрипта зависит от bash-completion, что значит, что сначала необходимо установить данную утилиту (чтобы проверить, установлена ли у вас утилита bash-completion, используйте команду type _init_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
{{< note >}}
Все исходные скрипты bash-completion находятся в /etc/bash_completion.d.
{{< /note >}}
Оба подхода равнозначны. После перезагрузки командной оболочки автодополнение kubectl должно работать.
{{% /tab %}}
{{% tab name="Bash на macOS" %}}
Введение
Скрипт дополнений kubectl может быть сгенерирован с помощью команды kubectl completion bash. Применение этого скрипта в вашей командной оболочке активирует дополнения kubectl.
Однако скрипт дополнений kubectl зависит от утилиты bash-completion, которую необходимо установить заранее.
{{< warning>}} Существуют две версии bash-completion, v1 и v2. V1 используется для Bash 3.2 (версия по умолчанию для macOS), а версия v2 для Bash 4.1+. Скрипт дополнений kubectl не работает корректно с bash-completion v1 и Bash 3.2. Для работы скрипта требуется bash-completion v2 и Bash 4.1+. Поэтому, для возможности корректной работы дополнений kubectl, вам требуется установить и использовать Bash 4.1+ (инструкция). В следующих шагах инструкции предполагается, что вы используете Bash 4.1+ (т.е. версию Bash 4.1 или новее). {{< /warning >}}
Установка bash-completion
{{< note >}} Как было упомянуто ранее, данные инструкции предполагают, что вы используете Bash 4.1+, что значит, что будет установлена версия bash-completion v2 (вместо Bash 3.2 и bash-completion v1, для которых дополнения kubectl не будут работать). {{< /note >}}
Проверить, установлена ли у вас уже версия 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 -
Добавьте скрипт дополнений в директорию
/usr/local/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. В этом случае, вам не нужно ничего делать дополнительно.
{{< note >}}
Установка bash-completion v2 с использованием Homebrew размещает все файлы в директорииBASH_COMPLETION_COMPAT_DIR, поэтому предыдущие два способа работают.
{{< /note >}}
В любом случае, после перезагрузки вашей командной оболочки, дополнения kubectl должны работать. {{% /tab %}}
{{% tab name="Zsh" %}}
Скрипт дополнений kubectl может быть сгенерирован с помощью команды 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
{{% /tab %}} {{< /tabs >}}
{{% /capture %}}
{{% capture whatsnext %}}
- Установка Minikube
- Обратитесь к руководствам по началу работы, чтобы узнать больше о создании кластеров.
- Узнайте, как запустить и опубликовать ваше приложение.
- Если вам нужен доступ к кластеру, созданному не вами, обратитесь к документу по созданию общего доступа к кластеру.
- Прочитайте справочную документацию по kubectl {{% /capture %}}