Compare commits

...

2 Commits

Author SHA1 Message Date
Slava Semushin d48c8d87ca ru/docs/tasks/tools/install-kubectl.md: rephrase and fix typos. (#18622) 2020-01-12 03:55:38 -08:00
aisonaku 81d59b8236 Add russian translation for install kubectl page (#18111)
* first part of translation

* finish page

* Comments fixed

* fix typos
2020-01-09 22:06:34 -08:00
@@ -0,0 +1,473 @@
---
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 %}}