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

В кластере с привязанным EIP, kube-apiserver будет доступен в Интернет и может быть атакован. Чтобы решить эту проблему, вы можете настроить Advanced Anti-DDoS для EIP узла, на котором работает kube-apiserver, или настроить правила группы безопасности.
Файл kubeconfig содержит учетные данные аутентификации пользователя. Когда вы используете этот файл для доступа к кластеру, kubectl получает доступ к кластеру на основе учетных данных и разрешений, указанных в файле.
Для получения подробной информации о разрешениях пользователя, смотрите Разрешения кластера (IAM-based) и Разрешения пространства имен (Kubernetes RBAC-based).
Прежде чем использовать kubectl для доступа к кластеру, установите kubectl на клиент. Запустите kubectl version команда для проверки, установлен ли kubectl. Если он установлен, пропустите этот шаг. Этот раздел использует Linux в качестве примера, чтобы описать, как установить и настроить kubectl. Для получения подробной информации, смотрите Установка 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
Скопируйте информацию конфигурационного файла, полученную в 2 в kubeconfig.yaml и сохранить файл.
cd /homemkdir -p $HOME/.kubemv -f ~/kubeconfig.yaml $HOME/.kube/config # Change kubeconfig.yaml to the file name.
kubectl config use-context internal
kubectl config use-context external
kubectl config use-context externalTLSVerify
Для получения более подробной информации см. Two-Way Domain Name Trust.
kubectl cluster-info # Check the cluster information.
Если отображается следующая информация, клиент может получить доступ к кластеру с помощью kubectl:
Kubernetes control plane is running at https://xx.xx.xx.xx:5443CoreDNS is running at https://xx.xx.xx.xx:5443/api/v1/namespaces/kube-system/services/coredns:dns/proxyTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
Двустороннее доверие к доменному имени — это механизм взаимной аутентификации, который проверяет подлинность как клиента, так и сервера. Этот режим повышает безопасность между кластерами и клиентами, предотвращая несанкционированный доступ.
Рисунок 2 Двустороннее доверие отключено для доменных имен

Когда вы используете kubectl для создания или запроса ресурсов Kubernetes, возвращается следующий вывод:
# kubectl get deploy Error from server (Forbidden): deployments.apps is forbidden: User "0c97ac3cb280f4d91fa7c0096739e1f8" cannot list resource "deployments" in API group "apps" in the namespace "default"
Причина в том, что у пользователя нет прав для работы с ресурсами Kubernetes. Подробности о том, как назначать права, см. Разрешения пространства имён (Kubernetes RBAC-based).
Когда вы используете kubectl для создания или запроса ресурсов Kubernetes, возвращается следующий вывод:
The connection to the server localhost:8080 was refused - did you specify the right host or port?
Причина в том, что аутентификация кластера не настроена для клиента kubectl. Для получения деталей см Шаг 2: Получите файл конфигурации kubectl (kubeconfig).