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

25 KiB
Raw Permalink Blame History

title, content_template, weight, card
title content_template weight card
Установка и настройка kubectl templates/task 10
name weight title
tasks 20 Установка kubectl

{{% 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

  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, 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

  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, вы можете установить kubectl с помощью Homebrew.

  1. Для установки, выполните команду:

    brew install kubectl 
    

    или

    brew install kubernetes-cli
    
  2. Чтобы проверить актуальность установленной версии, выполните команду:

    kubectl version
    

Установка с использованием Macports на macOS

Если вы пользователь macOS и используете пакетный менеджер Macports, вы можете установить 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..

  2. Добавьте путь к бинарному файлу в переменную окружения PATH.

  3. Проверьте, что установленная версия 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.

  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 или установщик командной строки 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
```
  1. Перейдите в домашнюю директорию:

    cd %USERPROFILE%
    
  2. Создайте директорию.kube:

    mkdir .kube
    
  3. Перейдите в только что созданную директорию .kube:

    cd .kube
    
  4. Настройте kubectl на использование удалённого кластера Kubernetes:

    New-Item config -type file
    

    {{< note >}}Вы можете отредактировать конфигурационный файл с помощью удобного вам текстового редактора, например Notepad.{{< /note >}}

Загрузка как часть Google Cloud SDK

Вы можете установить kubectl как часть Google Cloud SDK.

  1. Установите Google Cloud SDK.

  2. Запустите команду установки kubectl:

    gcloud components install kubectl
    
  3. Чтобы проверить актуальность установленной версии, выполните команду:

    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 %}}