Files
website/content/ru/docs/tasks/tools/install-kubectl.md

474 lines
25 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Установка и настройка kubectl
content_template: templates/task
weight: 10
card:
name: tasks
weight: 20
title: Установка kubectl
---
{{% capture overview %}}
[kubectl](/docs/user-guide/kubectl/) - это утилита командной строки для Kubernetes, позволяющая выполнять команды на кластере Kubernetes. kubectl можно использовать для развёртывания приложений, инспектирования и управления ресурсами кластера, а также для просмотра логов. Для ознакомления с полным списком возможностей kubectl, обратитесь к странице [Обзор kubectl](/docs/reference/kubectl/overview/).
{{% /capture %}}
{{% capture prerequisites %}}
Необходимо использовать версию kubectl на одну минорную версию отличающуюся от вашего кластера. Например, клиент с версией v1.2 должен работать с версиями мастера v1.1, v1.2 и v1.3. Использование последней стабильной версии kubectl позволяет избежать непредвиденных проблем.
{{% /capture %}}
{{% capture steps %}}
## Установка 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)` на команду с выбранной версией.
Например, для установки версии {{< param "fullversion" >}} на Linux введите:
```
curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/linux/amd64/kubectl
```
2. Сделайте бинарный файл kubectl исполняемым.
```
chmod +x ./kubectl
```
3. Переместите файл в директорию из переменной окружения PATH.
```
sudo mv ./kubectl /usr/local/bin/kubectl
```
4. Чтобы проверить актуальность установленной версии, выполните команду:
```
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 <<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
{{< /tab >}}
{{< /tabs >}}
### Установка с использованием других менеджеров пакетов
Если вы используете Ubuntu или другой дистрибутив Linux, поддерживающий пакетный менеджер [snap](https://snapcraft.io/docs/core/install), kubectl доступен в виде приложения [snap](https://snapcraft.io/).
Если вы пользователь Linux и используете пакетный менеджер [Homebrew](https://docs.brew.sh/Homebrew-on-Linux), kubectl доступен для [установки](https://docs.brew.sh/Homebrew-on-Linux#install).
{{< 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
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)` на команду с выбранной версией.
Например, для установки версии {{< param "fullversion" >}} на macOS введите:
```
curl -LO https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/darwin/amd64/kubectl
```
2. Сделайте бинарный файл kubectl исполняемым.
```
chmod +x ./kubectl
```
3. Переместите файл в директорию из переменной окружения PATH.
```
sudo mv ./kubectl /usr/local/bin/kubectl
```
4. Чтобы проверить актуальность установленной версии, выполните команду:
```
kubectl version
```
### Установка с использованием Homebrew на macOS
Если вы пользователь macOS и используете пакетный менеджер [Homebrew](https://brew.sh/), вы можете установить kubectl с помощью Homebrew.
1. Для установки, выполните команду:
```
brew install kubectl
```
или
```
brew install kubernetes-cli
```
2. Чтобы проверить актуальность установленной версии, выполните команду:
```
kubectl version
```
### Установка с использованием Macports на macOS
Если вы пользователь macOS и используете пакетный менеджер [Macports](https://macports.org/), вы можете установить kubectl с помощью Macports.
1. Для установки, выполните команду:
```
sudo port selfupdate
sudo port install kubectl
```
2. Чтобы проверить актуальность установленной версии, выполните команду:
```
kubectl version
```
## Установка kubectl на Windows
### Установка бинарного файла kubectl с использованием curl на Windows
1. Загрузите последний релиз {{< 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](https://storage.googleapis.com/kubernetes-release/release/stable.txt)..
2. Добавьте путь к бинарному файлу в переменную окружения PATH.
3. Проверьте, что установленная версия `kubectl` соответствует загруженной:
```
kubectl version
```
{{< note >}}
[Docker Desktop для Windows](https://docs.docker.com/docker-for-windows/#kubernetes) добавляет в PATH собственную версию `kubectl`. Если вы устанавливали Docker Desktop ранее, вам может быть необходимо разметить запись в переменной PATH до добавленной приложением Docker Desktop или удалить Docker Desktop `kubectl`.
{{< /note >}}
### Установка с помощью Powershell из PSGallery
Если вы пользователь Windows и используете пакетный менеджер [Powershell Gallery](https://www.powershellgallery.com/), вы можете установить kubectl с помощью Powershell.
1. Для установки, выполните команду (не забудьте указать `DownloadLocation`):
```
Install-Script -Name install-kubectl -Scope CurrentUser -Force
install-kubectl.ps1 [-DownloadLocation <path>]
```
{{< note >}} Если вы не укажете `DownloadLocation`, `kubectl` будет установлен во временную пользовательскую директорию.{{< /note >}}
Установщик создаст `$HOME/.kube` и даст ему инструкции по созданию файла конфигурации
2. Чтобы проверить актуальность установленной версии, выполните команду:
```
kubectl version
```
{{< note >}}Обновление производится с помощью повторного выполнения команд из пункта 1.{{< /note >}}
### Установка на Windows с использованием Chocolatey или Scoop
Для установки kubectl на Windows можно использовать пакетный менеджер [Chocolatey](https://chocolatey.org) или установщик командной строки [Scoop](https://scoop.sh).
{{< tabs name="kubectl_win_install" >}}
{{% tab name="choco" %}}
choco install kubernetes-cli
{{% /tab %}}
{{% tab name="scoop" %}}
scoop install kubectl
{{% /tab %}}
{{< /tabs >}}
2. Чтобы проверить актуальность установленной версии, выполните команду:
```
kubectl version
```
3. Перейдите в домашнюю директорию:
```
cd %USERPROFILE%
```
4. Создайте директорию`.kube`:
```
mkdir .kube
```
5. Перейдите в только что созданную директорию `.kube`:
```
cd .kube
```
6. Настройте kubectl на использование удалённого кластера Kubernetes:
```
New-Item config -type file
```
{{< note >}}Вы можете отредактировать конфигурационный файл с помощью удобного вам текстового редактора, например Notepad.{{< /note >}}
## Загрузка как часть Google Cloud SDK
Вы можете установить kubectl как часть Google Cloud SDK.
1. Установите [Google Cloud SDK](https://cloud.google.com/sdk/).
2. Запустите команду установки `kubectl`:
```
gcloud components install kubectl
```
3. Чтобы проверить актуальность установленной версии, выполните команду:
```
kubectl version
```
## Проверка конфигурации kubectl
Для того, чтобы kubectl мог найти и получить доступ к кластеру Kubernetes, необходим [файл kubeconfig](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/), который создаётся автоматически при создании кластера с использованием [kube-up.sh](https://github.com/kubernetes/kubernetes/blob/master/cluster/kube-up.sh) или успешном развёртывании кластера Minikube. По умолчанию настройки kubectl находятся в `~/.kube/config`.
Проверить, что kubectl настроен правильно, можно получив состояние кластера:
```shell
kubectl cluster-info
```
Если вы видите в ответе URL, доступ kubectl к вашему кластеру настроен правильно.
Если вы видите сообщение, аналогичное данному, kubectl сконфигурирован неверно или kubectl не может установить связь с вашим кластером.
```shell
The connection to the server <server-name:port> was refused - did you specify the right host or port?
```
Например, если вы хотите запустить кластер Kubernetes на вашем ноутбуке (локально), вам сначала потребуется установить инструмент, такой как Minikube, и затем перевыполнить указанные выше команды.
Если kubectl cluster-info возвращает в ответе url, но вы не можете получить доступ к вашему кластеру, используйте следующую команду для проверку корректности настроек:
```shell
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**](https://github.com/scop/bash-completion), что значит, что сначала необходимо установить данную утилиту (чтобы проверить, установлена ли у вас утилита bash-completion, используйте команду `type _init_completion`).
### Установка bash-completion
bash-completion предоставляется многими пакетными менеджерами (посмотрите [здесь](https://github.com/scop/bash-completion#installation)). Вы можете установить данную утилиту с помощью `apt-get install bash-completion` или `yum install bash-completion`, и т.д.
Команды, указанные выше, создадут `/usr/share/bash-completion/bash_completion` - главный скрипт для bash-completion. В зависимости от используемого пакетного менеджера может потребоваться вручную указать данный файл в вашем `~/.bashrc`.
Для проверки перезапустите вашу командную оболочку и введите `type _init_completion`. Если команда выполнилась успешно, настройка завершена, иначе добавьте в `~/.bashrc` следующую строку:
```shell
source /usr/share/bash-completion/bash_completion
```
Перезапустите вашу командную оболочку и проверьте, что bash-completion установлен корректно выполнив `type _init_completion`.
### Включение автодополнения kubectl
Теперь вам необходимо убедиться, что скрипт для дополнения команд kubectl применён во всех сессиях вашей командной оболочки. Есть два способа сделать это:
- Примените скрипт дополнений в вашем `~/.bashrc` файле:
```shell
echo 'source <(kubectl completion bash)' >>~/.bashrc
```
- Добавьте скрипт дополнений в директорию `/etc/bash_completion.d`:
```shell
kubectl completion bash >/etc/bash_completion.d/kubectl
```
- Если у вас настроен псевдоним для kubectl, вы можете расширить действие дополнений в командной оболочке для работы с этим псевдонимом:
```shell
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**](https://github.com/scop/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+ ([*инструкция*](https://itnext.io/upgrading-bash-on-macos-7138bd1066ba)). В следующих шагах инструкции предполагается, что вы используете 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:
```shell
brew install bash-completion@2
```
Следуя инструкции в выводе данной команды, добавьте следующую информацию в файл `~/.bashrc`:
```shell
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` файле:
```shell
echo 'source <(kubectl completion bash)' >>~/.bashrc
```
- Добавьте скрипт дополнений в директорию `/usr/local/etc/bash_completion.d`:
```shell
kubectl completion bash >/usr/local/etc/bash_completion.d/kubectl
```
- Если у вас настроен псевдоним для kubectl, вы можете расширить действие дополнений в командной оболочке для работы с этим псевдонимом:
```shell
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -F __start_kubectl k' >>~/.bashrc
```
- Если вы устанавливали kubectl с помощью Homebrew (как указано [выше](#install-with-homebrew-on-macos)), тогда скрипт дополнений 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`:
```shell
source <(kubectl completion zsh)
```
Если у вас настроен псевдоним для kubectl, вы можете расширить действие дополнений в командной оболочке для работы с этим псевдонимом:
```shell
echo 'alias k=kubectl' >>~/.zshrc
echo 'complete -F __start_kubectl k' >>~/.zshrc
```
После перезагрузки вашей командной оболочки автодополнения kubectl должны работать.
Если вы получаете ошибку `complete:13: command not found: compdef`, тогда добавьте следующее в начало вашего файла `~/.zshrc`:
```shell
autoload -Uz compinit
compinit
```
{{% /tab %}}
{{< /tabs >}}
{{% /capture %}}
{{% capture whatsnext %}}
* [Установка Minikube](/docs/tasks/tools/install-minikube/)
* Обратитесь к [руководствам по началу работы](/docs/setup/), чтобы узнать больше о создании кластеров.
* [Узнайте, как запустить и опубликовать ваше приложение.](/docs/tasks/access-application-cluster/service-access-application-cluster/)
* Если вам нужен доступ к кластеру, созданному не вами, обратитесь к [документу по созданию общего доступа к кластеру](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/).
* Прочитайте [справочную документацию по kubectl](/docs/reference/kubectl/kubectl/)
{{% /capture %}}