> For the complete documentation index, see [llms.txt](https://utm-1.gitbook.io/utm-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://utm-1.gitbook.io/utm-docs/dokumentaciya/utm-it/resheniya/kubernetes/rabota-s-klasterom/podklyuchenie-k-klasteru.md).

# Подключение к кластеру

## Ссылки

{% embed url="<https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/>" %}

{% embed url="<https://www.yandex.ru/search/?text=%D0%BA%D0%B0%D0%BA+%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F+%D0%BA+%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D1%83+kubernetes&lr=10716&src=suggest_B>" %}

{% embed url="<https://timeweb.cloud/tutorials/kubernetes/kak-proverit-rabotosposobnost-klastera-kubernetes>" %}

## Предварительная подготовка

### Файл конфигурации admin.conf

Чтобы подключиться к кластеру Kubernetes при помощи консольной утилиты `kubectl`, необходим специальный конфигурационный файл `kubeconfig`, в котором указаны настройки для подключения к кластеру. По умолчанию файл находится в скрытой директории `.kube`, которая расположена в домашней директории пользователя.

**Сам конфигурационный файл находится на мастер-ноде по пути `/etc/kubernetes/admin.conf`.**&#x20;

## Подключение к кластеру Kubernetes из Linux

### Установка kubectl

**Загрузить последнюю версию kubectl:**

```bash

   curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
   
```

{% hint style="info" %}
**Примечание:**

Чтобы загрузить определенную версию, замените `$(curl -L -s https://dl.k8s.io/release/stable.txt)` часть команды на конкретную версию.

Например, чтобы загрузить версию 1.34.0 на Linux x86-64, введите:

```bash
curl -LO https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubectl
```

{% endhint %}

<details>

<summary>Проверьте двоичный файл (необязательно)</summary>

Загрузите файл контрольной суммы kubectl:

```bash
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
   
```

Проверьте двоичный файл kubectl по файлу контрольной суммы:

```bash
echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check
```

Если верно, то вывод будет следующим:

```console
kubectl: OK
```

Если проверка не пройдена, `sha256`программа завершает работу с ненулевым статусом и выводит вывод, аналогичный следующему:

```console
kubectl: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match
```

</details>

**Установить kubectl**

```bash
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
```

{% hint style="info" %}
**Примечание:**

Если у вас нет прав root на целевой системе, вы все равно можете установить kubectl в `~/.local/bin`каталог:

```bash
chmod +x kubectl
mkdir -p ~/.local/bin
mv ./kubectl ~/.local/bin/kubectl
# and then append (or prepend) ~/.local/bin to $PATH
```

{% endhint %}

**Проверьте**, является ли установленная вами версия актуальной:

```bash
kubectl version --client
```

Или используйте это для подробного просмотра версии:

```cmd
kubectl version --client --output=yaml
```

### Настройка kubectl

Проверьте правильность настройки kubectl, получив состояние кластера:

```shell
kubectl cluster-info
```

Если вы видите ответ URL, kubectl правильно настроен для доступа к вашему кластеру.

Если вы видите сообщение, похожее на следующее, kubectl настроен неправильно или не может подключиться к кластеру Kubernetes.

```
The connection to the server <server-name:port> was refused - did you specify the right host or port?
```

Для настройки kubectl для подключения к кластеру понадобиться файл [admin.conf](#predvaritelnaya-podgotovka).

Файл admin.conf должен располагаться в скрытой директории `.kube`, которая расположена в домашней директории пользователя.

Чтобы скопировать конфигурационный файл в домашний каталог пользователя, необходимо выполнить команду:

```bash
mkdir -p $HOME/.kube/
sudo cp -i $HOME/tmp/admin.conf $HOME/.kube/config
```

После того как файл был скопирован в домашнюю директорию пользователя, необходимо экспортировать переменную, чтобы утилита `kubectl` смогла определить конфигурационный файл. Для этого необходимо выполнить:

```bash
export KUBECONFIG=$HOME/.kube/config
```

### Включить автодополнение оболочки <a href="#enable-shell-autocompletion" id="enable-shell-autocompletion"></a>

#### Установить bash-дополнение <a href="#install-bash-completion" id="install-bash-completion"></a>

Установить пакет:

```bash
sudo apt install bash-completion
```

Приведённые выше команды создают `/usr/share/bash-completion/bash_completion`основной скрипт bash-completion. В зависимости от вашего менеджера пакетов, вам придётся вручную указать этот файл в вашем `~/.bashrc`файле.

Чтобы узнать это, перезагрузите оболочку и выполните команду `type _init_completion`. Если команда выполнена успешно, всё уже настроено. В противном случае добавьте в `~/.bashrc`файл следующее:

```bash
source /usr/share/bash-completion/bash_completion
```

Перезагрузите оболочку и проверьте, что bash-completion установлен правильно, введя `type _init_completion`.

#### Включить автодополнение kubectl <a href="#enable-kubectl-autocompletion" id="enable-kubectl-autocompletion"></a>

Теперь вам нужно убедиться, что скрипт автодополнения kubectl будет запущен во всех сеансах командной оболочки. Это можно сделать двумя способами:

```bash
echo 'source <(kubectl completion bash)' >>~/.bashrc
```

Если у вас есть псевдоним для kubectl, вы можете расширить автодополнение оболочки для работы с этим псевдонимом:

```bash
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -o default -F __start_kubectl k' >>~/.bashrc
```

**Примечание:**

bash-completion — источники всех скриптов завершения в формате `/etc/bash_completion.d`.

Оба подхода эквивалентны. После перезагрузки оболочки автодополнение kubectl должно заработать. Чтобы включить автодополнение bash в текущем сеансе оболочки, откройте файл \~/.bashrc:

```bash
source ~/.bashrc
```

## Подключение к кластеру Kubernetes из Windows

### Установка kubectl

Есть несколько вариантов установки kubectl на ваше устройство Windows:

* O:\Дистрибутивы\K8S\kubectl
* Прямая загрузка:

  Загрузите последний двоичный файл патча версии 1.34 непосредственно для вашей архитектуры, посетив [страницу релиза Kubernetes](https://kubernetes.io/releases/download/#binaries) . Убедитесь, что вы выбрали правильный двоичный файл для вашей архитектуры (например, amd64, arm64 и т. д.).
* Использование curl:

  Если у вас `curl`установлено, используйте эту команду:

  ```powershell
  curl.exe -LO "https://dl.k8s.io/release/v1.34.1/bin/windows/amd64/kubectl.exe"
  ```

**Примечание:**

Чтобы узнать последнюю стабильную версию (например, для написания скриптов), посетите <https://dl.k8s.io/release/stable.txt> .

Скопируйте файл `kubectl.exe` в папку `C:\Windows\System32`

**Добавьте** или передпишите `kubectl`двоичную папку к `PATH`переменной среды, если файл скопирован в другую папку.

**Проверьте**, `kubectl`соответствует ли версия загруженной версии:

```cmd
kubectl version --client
```

Или используйте это для подробного просмотра версии:

```cmd
kubectl version --client --output=yaml
```

**Примечание:**

[Docker Desktop для Windows](https://docs.docker.com/docker-for-windows/#kubernetes) добавляет собственную версию в `kubectl`. `PATH`Если вы уже устанавливали Docker Desktop, вам может потребоваться поместить свою `PATH`запись перед той, которая добавлена ​​установщиком Docker Desktop, или удалить `kubectl`.

### Настройка kubectl

<https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/>

Проверьте правильность настройки kubectl, получив состояние кластера:

```shell
kubectl cluster-info
```

Если вы видите ответ URL, kubectl правильно настроен для доступа к вашему кластеру.

Если вы видите сообщение, похожее на следующее, kubectl настроен неправильно или не может подключиться к кластеру Kubernetes.

```
The connection to the server <server-name:port> was refused - did you specify the right host or port?
```

Для настройки kubectl для подключения к кластеру понадобиться файл [admin.conf](#predvaritelnaya-podgotovka).

ВАЖНО! В Windows по умолчанию без перенастройки контекстов в kubectl файл конфигурации должен называться config (без расширения). Поэтому файл admin.conf необходимо переименовать в config.

Файл admin.conf должен располагаться в скрытой директории `.kube`, которая расположена в домашней директории пользователя.

Чтобы скопировать (с переименование в config) конфигурационный файл в домашний каталог пользователя в подкаталог .kube, необходимо выполнить команду через PowerShell:

```bash
mkdir -p $home\.kube
copy -i $home\.kube\tmp\admin.conf $home\.kube\config
```

### Включить автодополнение оболочки <a href="#enable-shell-autocompletion" id="enable-shell-autocompletion"></a>

<https://www.viatesting.com/how-to-setup-kubectl-autocomplete-in-windows/>

#### Шаги

**1. Откройте PowerShell .**

Нажмите **Win + x** и выберите «Windows PowerShell» или «Windows PowerShell (Администратор)».

**2. Установите скрипт автозаполнения kubectl**

Выполните следующие команды в сеансе PowerShell, чтобы включить автодополнение kubectl:

```
kubectl completion powershell | Out-String | Invoke-Expression
```

**3. Сохраните скрипт автодополнения.**

Чтобы скрипт автодополнения запускался в каждом новом сеансе PowerShell, добавьте его в свой профиль PowerShell. Профиль PowerShell — это скрипт, который запускается при каждом запуске PowerShell.

Чтобы найти местоположение скрипта профиля PowerShell, выполните:

```
$PROFILE
```

Если профиль отсутствует, его необходимо создать. Для этого выполните:

```
if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force }
```

Откройте скрипт профиля PowerShell в текстовом редакторе:

```
notepad $PROFILE
```

Добавьте следующую строку в скрипт профиля и сохраните файл:

```
kubectl completion powershell | Out-String | Invoke-Expression
```

**4. Перезагрузите свой профиль PowerShell.**

После сохранения изменений перезагрузите свой профиль, выполнив:

```
. $PROFILE
```

Если после перезапуска PowerShell будет выскакивать ошибка о невозможности запустить скрипт, то необходимо настроить разрешение на запуск скриптов. Для этого нужно открыть PowerShell в режиме администратора и выполнить команду `Set-ExecutionPolicy RemoteSigned`

#### Проверка

Чтобы проверить работу автодополнения, начните вводить команду **kubectl** и нажмите **Tab** , чтобы увидеть, предлагаются ли варианты дополнения. Например, введите **kubectl get po** и нажмите **Tab** , чтобы автодополнить слово **pods** .

Вот и всё! Вы успешно настроили **автодополнение kubectl** в PowerShell на Windows.

### Настройка алиаса k для kubectl

Через PowerShell.

```powershell
Set-Alias -Name k -Value kubectl
```

**Важно**: алиас будет работать только в текущей сессии PowerShell — после закрытия и повторного открытия PowerShell или открытия нового терминала алиас не будет работать.

Чтобы настроить его постоянно, нужно добавить команду в профиль PowerShell. Для этого нужно:

Проверить местоположение профиля PowerShell с помощью команды&#x20;

```
$PROFILE
```

Если профиль отсутствует, его необходимо создать. Для этого выполните:

```
if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force }
```

Откройте скрипт профиля PowerShell в текстовом редакторе:

```
notepad $PROFILE
```

Добавьте следующую строку в скрипт профиля и сохраните файл:

```powershell
Set-Alias -Name k -Value kubectl
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://utm-1.gitbook.io/utm-docs/dokumentaciya/utm-it/resheniya/kubernetes/rabota-s-klasterom/podklyuchenie-k-klasteru.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
