> 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/nastroika-kontekstov.md).

# Настройка контекстов

## Ссылки

Как использовать Kubectl Config Set-Context: [kodekloud.com](https://kodekloud.com/blog/kubectl-change-context/)

## Информация

Все контексты должны храниться в папке пользователя в подкаталоге `.kube` в файле `config`.

Основные команды для kubectl:

```bash
# Просмотр всех настроенных контекстов
kubectl config get-contexts

# Переключиться на контекст <NAME>
kubectl config use-context <NAME>

# Просмотр файла конфигурации с контекстами
kubectl config view

# Внесение изменений в конфигурацию контекстов с помощью kubectl
kubectl config set-context <NAME> [--cluster=<cluster>] [--user=<user>] [--namespace=<namespace>] [--current]
```

{% hint style="info" %}
Изменять конфигурацию файла $HOME/.kube/config рекомендуется вручную в текстовом редакторе.

Например, если в конфигурацию нужно добавить новый кластер или нового пользователя с новым контекстом, то нужно открыть на редактирование текущую конфигурацию $HOME/.kube/config, отрыть предоставленный конфигурационный файл с новыми параметрами (кластера, пользователя, контекста).

И в ручном режиме перенести нужную информацию из нового файла в файл $HOME/.kube/config.
{% endhint %}

Пример конфигурационного файла:

```yaml
apiVersion: v1
kind: Config
preferences: {}
clusters:
- name: development
  cluster:
    server: https://1.2.3.4
    certificate-authority: fake-ca-file
- name: test
  cluster:
    server: https://5.6.7.8
    insecure-skip-tls-verify: true
users:
- name: developer
  user:
    client-certificate: fake-cert-file
    client-key: fake-key-file
- name: experimenter
  user:
    username: admin
    password: secret
contexts:
- name: dev-frontend
  context:
    cluster: development
    user: developer
    namespace: frontend
- name: dev-storage
  context:
    cluster: development
    user: developer
    namespace: storage
- name: exp-test
  context:
    cluster: test
    user: experimenter
```

Разделы конфигурационного файла:

* clusters - список кластеров. По каждому кластеру указывается:
  * name - имя кластера
  * cluster.server - сервер
  * cluster.certificate-authority-data - сертификат доступа, закодированный в base64
* users - список пользователей. По каждому пользователю указывается:
  * name - имя пользователя
  * user.client-certificate-data - сертификат пользователя, закодированный в base64 (для доступа по сертификатам x509)
  * user.client-key-data - закрытый ключ пользователя, закодированный в base64 (для доступа по сертификатам x509)
  * user.username - логин пользователя (для доступа по логину/паролю)
  * user.password - пароль пользователя (для доступа по логину/паролю)
* contexts - список контекстов. По каждому контексту указывается:
  * name - имя контекста
  * context.cluster - имя кластера
  * context.user - имя пользователя
  * namespace - пространство имен (не обязательный параметр)
* current-context - имя текущего контекста


---

# 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/nastroika-kontekstov.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.
