From 81d59b823633506e6574e4525946cc7b1391ff8e Mon Sep 17 00:00:00 2001 From: aisonaku Date: Fri, 10 Jan 2020 09:06:34 +0300 Subject: [PATCH] Add russian translation for install kubectl page (#18111) * first part of translation * finish page * Comments fixed * fix typos --- .../ru/docs/tasks/tools/install-kubectl.md | 473 ++++++++++++++++++ 1 file changed, 473 insertions(+) create mode 100644 content/ru/docs/tasks/tools/install-kubectl.md diff --git a/content/ru/docs/tasks/tools/install-kubectl.md b/content/ru/docs/tasks/tools/install-kubectl.md new file mode 100644 index 0000000000..364f7d10c2 --- /dev/null +++ b/content/ru/docs/tasks/tools/install-kubectl.md @@ -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 < /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 ] + ``` + + {{< 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 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 %}}