kubectl — это инструмент командной строки, предоставляемый Kubernetes, позволяющий управлять ресурсами кластера, просматривать состояние кластера, развертывать приложения и отлаживать проблемы через CLI. Чтобы получить доступ к кластеру CCE с помощью kubectl, вы можете использовать любой из следующих методов:
В этом разделе используется стандартный кластер CCE в качестве примера, описывающего, как получить доступ к кластеру CCE с помощью kubectl.
kubectl получает информацию о кластере из файла kubeconfig и взаимодействует с API‑сервером Kubernetes. kubeconfig файл является учетными данными для kubectl для доступа к кластеру Kubernetes. Он содержит информацию о подключении к кластеру (например, адрес API‑сервера и сертификат CA), учетные данные аутентификации пользователя (например, клиентский сертификат и токен), а также контекст (кластер, пользователь и пространство имен по умолчанию). Имея эти детали, kubectl может взаимодействовать с кластером Kubernetes для выполнения управленческих задач.
Рисунок 1 Использование kubectl для доступа к кластеру

В кластере с привязанным EIP kube-apiserver будет доступен из Интернета и может быть атакован. Чтобы решить эту проблему, вы можете настроить Advanced Anti-DDoS для EIP узла, на котором работает kube-apiserver, или настроить правила группы безопасности.
Файл kubeconfig содержит учетные данные аутентификации пользователя. При использовании этого файла для доступа к кластеру kubectl получает доступ к кластеру на основе указанных в файле учетных данных и разрешений.
Для получения подробной информации о разрешениях пользователей см. Cluster Permissions (IAM-based) and Namespace Permissions (Kubernetes RBAC-based).
Перед тем как использовать kubectl для доступа к кластеру, установите kubectl на клиенте. Выполните команду kubectl version команду, чтобы проверить, установлен ли kubectl. Если он установлен, пропустите этот шаг. В этом разделе используется Linux в качестве примера для описания установки и настройки kubectl. Для получения подробной информации см. Installing kubectl.
cd /homecurl -LO https://dl.k8s.io/release/v1.25.0/bin/linux/amd64/kubectl
chmod +x kubectlmv -f kubectl /usr/local/bin
kubectl version
Если отображается информация, похожая на следующую, kubectl установлен:
Client Version: xxxKustomize Version: xxxServer Version: xxx
Получите kubeconfig (файл конфигурации kubectl) из кластера для доступа.
Файл kubeconfig хранится на клиенте, и kubectl использует его для доступа к кластеру и взаимодействия с ним.
vim kubeconfig.yaml
Скопируйте информацию конфигурационного файла, полученную в 3 в kubeconfig.yaml и сохраните файл.
cd /homemkdir -p $HOME/.kubemv -f ~/kubeconfig.yaml $HOME/.kube/config # Change kubeconfig.yamlkubeconfig.yaml на имя файла.
kubectl config use-context internal
kubectl config use-context external
kubectl config use-context externalTLSVerify
Для получения более подробной информации см. Two-Way Domain Name Trust.
kubectl cluster-info # Проверить информацию о кластере.
Если отображается следующая информация, клиент может получить доступ к кластеру с помощью kubectl:
Kubernetes control plane работает по адресу https://xx.xx.xx.xx:5443CoreDNS работает по адресу https://xx.xx.xx.xx:5443/api/v1/namespaces/kube-system/services/coredns:dns/proxyДля более детального отладки и диагностики проблем кластера используйте 'kubectl cluster-info dump'.
Two-way domain name trust является механизмом взаимной аутентификации, который проверяет подлинность как клиента, так и сервера. Этот режим повышает безопасность между кластерами и клиентами, препятствуя неавторизованному доступу.
Figure 2 Two-way trust disabled for domain names

При использовании kubectl для создания или запроса ресурсов Kubernetes вывод выглядит следующим образом:
# kubectl get deploy Ошибка от сервера (Forbidden): deployments.apps запрещено: Пользователь "0c97ac3cb280f4d91fa7c0096739e1f8" не может перечислять ресурс "deployments" в группе API "apps" в пространстве имен "default"
Причина в том, что у пользователя нет прав для работы с ресурсами Kubernetes. Для получения подробной информации о назначении прав см. Configuring Namespace Permissions (Kubernetes RBAC-based).
При использовании kubectl для создания или запроса ресурсов Kubernetes вывод выглядит следующим образом:
Подключение к серверу localhost:8080 было отклонено — указали ли вы правильный хост или порт?
Причина в том, что аутентификация кластера не настроена для клиента kubectl. Для получения подробной информации см. Step 2: Obtain the kubectl Configuration File (kubeconfig).