kubectl — это инструмент командной строки, предоставляемый Kubernetes, позволяющий управлять ресурсами кластера, просматривать состояние кластера, развертывать приложения и отлаживать проблемы через CLI. Чтобы получить доступ к кластеру CCE с помощью kubectl, вы можете использовать любой из следующих методов:
В этом разделе в качестве примера используется стандартный кластер CCE для описания доступа к кластеру CCE с помощью kubectl.
kubectl retrieves cluster information from a kubeconfig file and communicates with the Kubernetes API server. The kubeconfig file is the credential for kubectl to access a Kubernetes cluster. It contains the cluster connection information (such as the API server address and CA certificate), user authentication credentials (such as the client certificate and token), and context (cluster, user, and default namespace). With these details, kubectl can interact with the Kubernetes cluster to perform management tasks.
Figure 1 Using kubectl to access a cluster

В кластере с привязанным EIP kube-apiserver будет доступен из Интернета и может подвергаться атакам. Чтобы решить эту проблему, вы можете настроить Advanced Anti-DDoS для EIP узла, на котором работает kube-apiserver, или configure security group rules.
Файл kubeconfig содержит учетные данные аутентификации пользователя. При использовании этого файла для доступа к кластеру kubectl получает доступ к кластеру на основе учетных данных и разрешений, указанных в файле.
Для получения подробной информации о разрешениях пользователя см. Relationship Between IAM Role/Policy Permissions and Namespace Permissions.
Перед использованием kubectl для доступа к кластеру установите kubectl на клиенте. Выполните команду kubectl version, чтобы проверить, установлен ли kubectl. Если он установлен, пропустите этот шаг. В этом разделе в качестве примера используется Linux для описания установки и настройки kubectl. Подробнее см. Installing kubectl.
cd /homecurl -LO https://dl.k8s.io/release/v1.35.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 и сохраните файл.
To persist the environment variable, add export KUBECONFIG="<your-path>" to your shell configuration file (for example, ~/.bashrc), and run source ~/.bashrc to apply the changes.
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'.
Two-way domain name trust — это механизм взаимной аутентификации, который проверяет подлинность как клиента, так и сервера. Этот режим повышает безопасность между кластерами и клиентами, предотвращая неавторизованный доступ.
Figure 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. Подробную информацию о назначении прав см. в Configuring Namespace Permissions (Kubernetes RBAC-based).
Когда вы используете kubectl для создания или запроса ресурсов Kubernetes, возвращается следующий вывод:
The connection to the server localhost:8080 was refused - did you specify the right host or port?
Причина в том, что аутентификация кластера не настроена для клиента kubectl. Для получения подробностей см. Step 2: Obtain the kubectl Configuration File (kubeconfig).
Когда вы запускаете kubectl, отображается следующая информация:
Выполните следующие шаги для устранения этой проблемы:
Войдите в консоль CCE и нажмите имя кластера, чтобы открыть консоль кластера. В панели Networking Configuration на странице Overview просмотрите CIDR‑блок, где расположен управляющий план кластера.
Если IP-адрес клиента находится в CIDR‑блоке, где расположен управляющий план кластера, внутренняя маршрутизация системы может распознать трафик, отправляемый к серверу API, как обратный вызов или локальный трафик узла. В результате доступ к Kubernetes API может завершиться неудачей. Если доступ не удался, переключите IP-адрес клиента на другой CIDR‑блок и повторите попытку.