---
title: "kubectl для подключения к кластеру Kubernetes"
description: "kubectl для подключения к кластеру Kubernetes. Установка и примеры использования. Документация и инструкции по работе с облачными сервисами Timeweb Cloud."
---

> Полный индекс документации для ИИ-агентов: [llms.txt](https://timeweb.cloud/llms.txt).

[kubectl](https://kubernetes.io/ru/docs/reference/kubectl/overview/) — консольная утилита для работы с сущностями кластера Kubernetes. При помощи нее можно управлять ресурсами кластера, разворачивать приложения, просматривать логи и выполнять другие задачи администрирования.

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

> [!NOTE]
> Обратите внимание, что минорная версия `kubectl` (вторая цифра в версии) может отличаться от версии кластера на +/- 1. При использовании более новых или более старых версий могут возникать проблемы с совместимостью. В инструкции указаны конкретные версии для примера, но вы можете заменить их на нужные вам версии.

Linux

### Ручная установка

1.  Загрузите бинарный файл `kubectl`:
    

```
curl -LO "https://storage.googleapis.com/kubernetes-release/release/v1.30.2/bin/linux/amd64/kubectl"
```

2.  Проверьте целостность загруженного файла: 
    

```
echo "$(curl -sL https://dl.k8s.io/release/v1.30.2/bin/linux/amd64/kubectl.sha256) kubectl" | sha256sum --check
```

3.  Установите `kubectl`: 
    

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

### Установка через apt

1.  Обновите список пакетов: 
    

```shell
sudo apt update
```

2.  Установите необходимые пакеты: 
    

```shell
sudo apt install -y apt-transport-https ca-certificates curl gnupg
```

3.  Добавьте ключ для репозитория Kubernetes и установите правильные права доступа на ключ: 
    

```shell
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg && sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg
```

4.  Добавьте репозиторий Kubernetes в список источников APT и установите правильные права доступа на файл списка источников: 
    

```shell
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list && sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list
```

5.  Обновите список пакетов снова: 
    

```shell
sudo apt update
```

6.  Установите `kubectl`: 
    

```shell
sudo apt install -y kubectl
```

macOS 

### Ручная установка

**Для процессоров Intel**

1.  Загрузите `kubectl` для процессоров Intel: 
    

```shell
curl -LO "https://dl.k8s.io/release/v1.30.2/bin/darwin/amd64/kubectl"
```

2.  Проверьте целостность загруженного файла: 
    

```shell
echo "$(curl -sL https://dl.k8s.io/release/v1.30.2/bin/darwin/amd64/kubectl.sha256) kubectl" | sha256sum --check
```

**Для процессоров Apple Silicon**

1.  Загрузите `kubectl` для процессоров Apple Silicon: 
    

```shell
curl -LO "https://dl.k8s.io/release/v1.30.2/bin/darwin/arm64/kubectl"
```

2.  Проверьте целостность загруженного файла: 
    

```shell
echo "$(curl -sL https://dl.k8s.io/release/v1.30.2/bin/darwin/arm64/kubectl.sha256) kubectl" | sha256sum --check
```

3.  Сделайте файл исполняемым, установите права `644`, переместите его в директорию `/usr/local/bin` и установите владельца `root`: 
    

```shell
chmod +x ./kubectl && chmod 644 ./kubectl && sudo mv ./kubectl /usr/local/bin/kubectl && sudo chown root: /usr/local/bin/kubectl
```

### Установка через homebrew

Установите `kubectl`: 

```shell
brew install kubectl@1.30
```

или

Установите весь набор инструментов `Kubernetes CLI`: 

```shell
brew install kubernetes-cli@1.30
```

> [!NOTE]
> Версии, доступные для установки через Homebrew, вы можете найти [на официальной странице утилиты](https://formulae.brew.sh/formula/kubernetes-cli#default).

Windows

### Установка через Chocolatey

Установите `kubectl`, выполнив: 

```shell
choco install kubernetes-cli --version=1.30.2
```

### Ручная установка

1.  В PowerShell выполните следующие команды:
    

```shell
mkdir kubectl
cd .\kubectl\
curl.exe -LO "https://dl.k8s.io/release/v1.30.2/bin/windows/amd64/kubectl.exe"
```

2.  Добавьте путь к директории `kubectl` в `PATH`, выполнив следующий скрипт в PowerShell:
    

```shell
$destination="$env:USERPROFILE\kubectl"
$currentPath = [System.Environment]::GetEnvironmentVariable("Path", [System.EnvironmentVariableTarget]::User)

if ($currentPath -notlike "*$destination*") {
	[System.Environment]::SetEnvironmentVariable("Path", "$currentPath;$destination", [System.EnvironmentVariableTarget]::User)
}
```

Или добавьте путь вручную:

-   -   Нажмите правой кнопкой мыши на «Этот компьютер».
        
    -   Выберите «Свойства».
        
    -   Перейдите в «О программе».
        
    -   Нажмите «Дополнительные параметры системы».
        
    -   Перейдите на вкладку «Дополнительно».
        
    -   Нажмите «Переменные среды».
        
    -   В разделе «Системные переменные» найдите переменную `Path` и добавьте путь к директории `kubectl`.
        

3.  Перезапустите PowerShell, чтобы изменения вступили в силу.
    

> [!NOTE]
> Docker Desktop for Windows добавляет свою версию `kubectl` в `PATH`. Если у вас установлен Docker Desktop, возможно, вам потребуется разместить запись `PATH` для `kubectl` перед той, которая добавлена установщиком Docker Desktop, или удалить версию `kubectl`, установленную Docker Desktop.

Теперь `kubectl` установлен на вашем компьютере. Вы можете проверить установку, выполнив команду: 

```shell
kubectl version
```

## Настройка доступа к кластеру Kubernetes

### Получение конфигурационного файла kubeconfig

Файл `config.yaml` используется `kubectl` для определения, к какому кластеру подключаться и какие учетные данные использовать. Он содержит информацию о кластерах, пользователях и контекстах, что позволяет легко переключаться между различными конфигурациями Kubernetes. 

Поскольку файл `config.yaml` содержит важные учетные данные, его следует хранить в недоступном для посторонних лиц месте, чтобы предотвратить несанкционированный доступ к кластеру. При получении доступа к этому файлу посторонний человек может управлять кластером и его ресурсами.

Чтобы получить конфигурационный файл, перейдите на страницу управления кластером и во вкладке «Дашборд» нажмите ссылку «скачайте файл конфигурации».

![Scr 20251022 Sfnh](https://content.timeweb.com/assets/f8187c7a-675f-4678-af48-2d80b2a22b52.png?width=1003&height=816)

### Размещение kubeconfig в домашнем каталоге

После получения файла `config.yaml` необходимо разместить его в правильном каталоге, чтобы `kubectl` мог его использовать.

macOS и Linux

1.  Создайте директорию `.kube` в вашем домашнем каталоге, если она еще не существует:
    

```shell
mkdir -p ~/.kube
```

2.  Скопируйте файл `config.yaml` в эту директорию и переименуйте его в `config`:
    

```shell
cp ~/Downloads/config.yaml ~/.kube/config
```

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

Windows

1.  Откройте PowerShell.
    
2.  Создайте директорию `.kube` в вашем домашнем каталоге, если она еще не существует:
    

```shell
mkdir $env:USERPROFILE\.kube
```

2.  Скопируйте файл `config.yaml` в эту директорию и переименуйте его в `config`:
    

```shell
copy <путь_к_config.yaml> $env:USERPROFILE\.kube\config
```

3.  Запустите PowerShell от имени администратора и выполните:
    

```shell
[Environment]::SetEnvironmentVariable("KUBECONFIG", $HOME + "\.kube\config", [EnvironmentVariableTarget]::Machine)
```

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

### Использование переменной окружения KUBECONFIG

Если вам нужно использовать несколько файлов конфигурации или расположить `config.yaml` в другом месте, вы можете воспользоваться переменной окружения `KUBECONFIG`.

macOS и Linux

1.  Откройте терминал.
    
2.  Установите переменную окружения `KUBECONFIG`:
    

```shell
export KUBECONFIG=<path-to-your-kubeconfig>
```

Чтобы эти настройки сохранялись после перезагрузки системы, выполните следующий код (по необходимости изменив `~/.bashrc` на `~/.zshrc` (для MacOS) или `~/.profile`):

```shell
echo "export KUBECONFIG=<path-to-your-kubeconfig>" >> ~/.bashrc
```

Windows

1.  Откройте PowerShell.
    
2.  Установите переменную окружения `KUBECONFIG`:
    

```shell
$env:KUBECONFIG = "<path-to-your-kubeconfig>"
```

### Использование нескольких конфигурационных файлов

Вы можете указать несколько файлов `kubeconfig`, разделяя их пути двоеточиями (на macOS и Linux) или точкой с запятой (на Windows):

Windows (PowerShell):

```shell
$env:KUBECONFIG="<path-to-your-first-kubeconfig>;<path-to-your-second-kubeconfig>"
```

macOS и Linux:

```shell
export KUBECONFIG=<path-to-your-first-kubeconfig>:<path-to-your-second-kubeconfig>
```

## Настройка подключения к кластеру Kubernetes

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

```shell
kubectl cluster-info
```

Эта команда выведет информацию о вашем кластере, включая адреса API и других компонентов. Если команда выполнена успешно, значит, `kubectl` подключен к кластеру.

### Проверка контекста

Контексты позволяют переключаться между разными кластерами и учетными данными. Каждый контекст представляет собой комбинацию кластеров, пользователей и пространств имен (`namespaces`).

Чтобы увидеть список доступных контекстов и узнать, какой из них активен в данный момент, используйте команду:

```shell
kubectl config get-contexts
```

Эта команда выведет таблицу с доступными контекстами и укажет, какой из них активен в данный момент. 

![Image3](https://content.timeweb.com/assets/a5f28b6b-5ee3-45da-b783-d92b4c756135.png?width=810&height=117)

Если у вас настроено несколько кластеров и вы хотите переключиться на другой контекст, используйте следующую команду:

```shell
kubectl config use-context <context-name>
```

Замените `<context-name>` на имя нужного контекста, которое вы получили из предыдущей команды. После выполнения этой команды `kubectl` будет использовать новый контекст для всех последующих команд.

## Настройка автодополнения команд

Автодополнение команд помогает ускорить ввод команд и уменьшить количество ошибок, автоматически предлагая возможные варианты по мере набора команды. Это особенно полезно для длинных и сложных команд `kubectl`.

#### Установка bash-completion

Установите пакет `bash-completion`, если он еще не установлен.

Для Ubuntu/Debian:

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

Для CentOS/RHEL:

```shell
sudo yum install bash-completion
```

Для macOS через Homebrew:

```shell
brew install bash-completion
```

bash (Linux)

Включите автодополнение для текущего сеанса:

```shell
source <(kubectl completion bash)
```

Чтобы автодополнение было всегда включено, выполните команду:

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

zsh (macOS и Linux)

Включите автодополнение для текущего сеанса:

```shell
source <(kubectl completion zsh)
```

Чтобы автодополнение было всегда включено, выполните команду:

```shell
echo "source <(kubectl completion zsh)" >> ~/.zshrc
```

## Основные команды kubectl

### Получение информации о кластере

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

```shell
kubectl cluster-info
```

### Просмотр подов

Для получения списка всех подов в текущем пространстве имен используйте команду:

```shell
kubectl get pods
```

Если вы хотите увидеть поды в конкретном пространстве имен, добавьте опцию `-n`:

```shell
kubectl get pods -n <namespace>
```

### Просмотр служб

Чтобы увидеть все службы (`services`) в текущем пространстве имен, выполните команду:

```shell
kubectl get services
```

Вы также можете указать пространство имен:

```shell
kubectl get services -n <namespace>
```

### Просмотр конфигурации

Чтобы увидеть текущую конфигурацию и активный контекст:

```shell
kubectl config view
```

### Описание ресурсов

Для получения детальной информации о любом ресурсе, таком как под или служба:

```shell
kubectl describe <resource-type> <resource-name>
```

Например, чтобы получить информацию о поде:

```shell
kubectl describe pod <pod-name>
```

### Удаление ресурсов

Для удаления ресурса, такого как под или служба:

```shell
kubectl delete <resource-type> <resource-name>
```

Например, чтобы удалить под:

```shell
kubectl delete pod <pod-name>
```
