# Подключение к сервису Deckhouse В данном разделе описаны способы подключения к кластеру **Cloud Deckhouse Kubernetes**. Рассматривается работа с кластером через веб-интерфейс **Console**, а также управление через командную строку с использованием утилиты **kubectl** после генерации **kubeconfig**. ## Предварительные требования После предоставления доступа к **сервису Cloud Deckhouse Kubernetes** пользователь получает возможность управлять кластером через веб-интерфейс **Console**. **Console** - это встроенный веб-интерфейс платформы Deckhouse, предназначенный для упрощения взаимодействия с Kubernetes-кластером. Он позволяет выполнять большинство операций, доступных в командной строке через **kubectl**, в визуальном режиме: - мониторинг состояния кластера; - управление узлами и модулями; - настройку безопасности и сети. ## Вход в Console 1. Откройте веб-браузер и перейдите по адресу, предоставленному для доступа к Console. ::: info Примечание URL-адрес направляется пользователю на электронную почту при предоставлении доступа. ::: 2. На странице ввода учетных данных выполняется аутентификация при помощи логина и пароля; ![Авторизация](images/authorization.png) 3. После успешной аутентификации откроется главная страница веб-интерфейса Console. ![Главная страница](images/home-page.png) ## Основные разделы Console В левой боковой панели веб-интерфейса Console расположены основные разделы для управления кластером: | Раздел | Назначение | | ------------------ | -------------------------------------------------------------------------------------- | | **Deckhouse** | Управление платформой Deckhouse: обзор, обновления, модули, глобальные настройки | | **Проекты** | Управление проектами, шаблонами проектов и namespace (пространствами имён) | | **Узлы** | Управление узлами кластера: группы узлов, конфигурации, классы машин, статические узлы | | **Конфигурация** | Настройка Deschedulers и Priority Classes | | **Доступ** | Управление аутентификацией, сессиями пользователей, правами доступа (RBAC) | | **Сеть** | Настройка Egress-шлюзов, балансировки и управление сертификатами | | **Хранилище** | Управление Persistent Volume, классами хранилищ и снимками томов | | **Безопасность** | Настройка политик безопасности и операционных политик | | **Мониторинг** | Просмотр данных, дашбордов, активных алертов, настройка уведомлений и экспорт метрик | | **Журналирование** | Управление отправкой и сбором логов | ## Генерация kubeconfig через Console Помимо управления через веб-интерфейс, Console позволяет сгенерировать файл **kubeconfig** для доступа к кластеру через **kubectl**. 1. На главной странице Console находится раздел «Инструменты» (Tools); 2. Необходимо выбрать пункт «Генератор kubeconfig» (Generate kubeconfig); 3. Нажимается кнопка генерации - система сгенерирует необходимые команды; 4. Далее, нужно скопировать и выполнить в терминале команды, которые сгенерированы для пользовательской учётной записи. ::: info Примечание Сгенерированный **kubeconfig** уже содержит все необходимые параметры для подключения к API Kubernetes. ::: ## Примеры простейших команд kubectl После настройки **kubeconfig** управление кластером осуществляется через командную строку с помощью утилиты **kubectl**. Ниже приведены основные команды для начала работы. ### Проверка подключения к кластеру ``` kubectl cluster-info ``` **Пример вывода:** ``` Kubernetes control plane is running at https://127.0.0.1:6445 To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. ``` ### Просмотр узлов кластера ``` kubectl get nodes ``` **Пример вывода:** ``` NAME STATUS ROLES AGE VERSION cloud-frontend-0 Ready frontend 12d v1.32.10 cloud-frontend-1 Ready frontend 12d v1.32.10 cloud-master-0 Ready control-plane,master 12d v1.32.10 cloud-master-1 Ready control-plane,master 12d v1.32.10 cloud-master-2 Ready control-plane,master 12d v1.32.10 cloud-system-0 Ready system 12d v1.32.10 cloud-system-1 Ready system 12d v1.32.10 cloud-worker-a374349e-zznfp-nkqr2 Ready worker 12d v1.32.10 cloud-worker-a374349e-zznfp-rdpdz Ready worker 12d v1.32.10 ``` ### Просмотр пространств имен ``` kubectl get namespaces ``` **Пример вывода:** ``` NAME STATUS AGE d8-admission-policy-engine Active 12d d8-cert-manager Active 12d d8-chrony Active 12d d8-cloud-instance-manager Active 12d d8-cloud-provider-vcd Active 12d d8-cni-cilium Active 12d d8-console Active 12d d8-dashboard Active 12d d8-descheduler Active 12d d8-ingress-nginx Active 12d d8-local-path-provisioner Active 12d d8-log-shipper Active 12d d8-metallb Active 12d d8-monitoring Active 12d d8-multitenancy-manager Active 12d d8-observability Active 12d d8-operator-prometheus Active 12d d8-pod-reloader Active 12d d8-service-accounts Active 12d d8-snapshot-controller Active 12d d8-system Active 12d d8-upmeter Active 12d d8-user-authn Active 12d default Active 12d kube-node-lease Active 12d kube-public Active 12d kube-system Active 12d ``` ### Просмотр подов в конкретном namespace ``` kubectl get pods -n d8-console ``` **Пример вывода:** ``` NAME READY STATUS RESTARTS AGE backend-546c7496f8-2nzx2 1/1 Running 0 3d7h backend-546c7496f8-nxqf4 1/1 Running 0 3d7h console-dex-authenticator-6b7d456445-7cg9p 2/2 Running 0 12d console-dex-authenticator-6b7d456445-ljjr8 2/2 Running 0 12d frontend-79cb59c94d-cf457 1/1 Running 0 3d7h frontend-79cb59c94d-rvlzk 1/1 Running 0 3d7h observability-gw-59c4fb6548-2lcqr 1/1 Running 0 3d7h observability-gw-59c4fb6548-9n6nb 1/1 Running 0 3d7h ``` ### Просмотр логов пода ``` kubectl logs frontend-79cb59c94d-cf457 -n d8-console ``` ### Просмотр сервисов ``` kubectl get services -n d8-console ``` **Пример вывода:** ``` NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE backend ClusterIP 10.222.4.60 8999/TCP 12d console-dex-authenticator ClusterIP 10.222.224.82 443/TCP 12d frontend ClusterIP 10.222.226.106 80/TCP 12d observability-gw ClusterIP None 3000/TCP,8443/TCP 12d ``` ### Быстрое получение информации о ресурсах ``` kubectl get all -n d8-console ``` **Пример вывода:** ``` NAME READY STATUS RESTARTS AGE pod/backend-546c7496f8-2nzx2 1/1 Running 0 3d7h pod/backend-546c7496f8-nxqf4 1/1 Running 0 3d7h pod/console-dex-authenticator-6b7d456445-7cg9p 2/2 Running 0 12d pod/console-dex-authenticator-6b7d456445-ljjr8 2/2 Running 0 12d pod/frontend-79cb59c94d-cf457 1/1 Running 0 3d7h pod/frontend-79cb59c94d-rvlzk 1/1 Running 0 3d7h pod/observability-gw-59c4fb6548-2lcqr 1/1 Running 0 3d7h pod/observability-gw-59c4fb6548-9n6nb 1/1 Running 0 3d7h NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/backend ClusterIP 10.222.4.60 8999/TCP 12d service/console-dex-authenticator ClusterIP 10.222.224.82 443/TCP 12d service/frontend ClusterIP 10.222.226.106 80/TCP 12d service/observability-gw ClusterIP None 3000/TCP,8443/TCP 12d NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/backend 2/2 2 2 12d deployment.apps/console-dex-authenticator 2/2 2 2 12d deployment.apps/frontend 2/2 2 2 12d deployment.apps/observability-gw 2/2 2 2 12d NAME DESIRED CURRENT READY AGE replicaset.apps/backend-546c7496f8 2 2 2 3d7h replicaset.apps/backend-69d8c6bd68 0 0 0 12d replicaset.apps/console-dex-authenticator-6b7d456445 2 2 2 12d replicaset.apps/console-dex-authenticator-74c97bf4d6 0 0 0 12d replicaset.apps/frontend-6b7ffb7bbd 0 0 0 9d replicaset.apps/frontend-79cb59c94d 2 2 2 3d7h replicaset.apps/frontend-79ccdfc56b 0 0 0 12d replicaset.apps/observability-gw-574cdfdd87 0 0 0 12d replicaset.apps/observability-gw-59c4fb6548 2 2 2 3d7h ``` ### Получение справки Для получение справки по любой команде используется флаг **--help**: ``` kubectl get pods --help kubectl describe pod --help ``` ### Просмотр подробной информации о конкретном ресурсе ``` kubectl describe pod <имя-пода> -n ```