GKE: Как получить количество узлов и модулей, используя API - PullRequest
1 голос
/ 21 января 2020

В настоящее время я получаю различную информацию с экрана консоли управления GoogleCloudPlatform, но в будущем я хотел бы получить ее с помощью API. Полученная информация выглядит следующим образом.

Kubernetes Engine>Clusters>Cluster Size
Kubernetes Engine>Workloads>Pods

Пожалуйста, научите API, соответствующий каждому получению информации.

Ответы [ 3 ]

1 голос
/ 21 января 2020

Пользовательский интерфейс GKE вызывает API-интерфейс Kubernetes для получения информации и отображения в пользовательском интерфейсе. Вы можете использовать kubectl для запроса API Kubernetes, чтобы получить эту информацию.

kubectl get nodes
kubectl get pods

Если вы включите подробный режим в kubectl, то он покажет, какой REST API его вызывает на api-сервере kubernetes.

kubectl --v=8 get nodes
kubectl --v=8 get pods

REST API для узлов и модулей:

GET https://kubernetes-api-server-endpoint:6443/api/v1/nodes?limit=500
GET https://kubernetes-api-server-endpoint:6443/api/v1/namespaces/default/pods?limit=500

Вот do c о том, как настроить Kubectl для соединения с GKE.

Вот do c от kubernetes о различных способах доступа к Kubernetes API.

Вы также можете использовать kubectl proxy для его тестирования.

Не забудьте позвонить выше остальных apis, вам необходимо пройти аутентификацию на сервере kubernetes api с помощью сертификата или токена на предъявителя.

0 голосов
/ 22 января 2020

Говоря о Python, в этом случае можно использовать Kubernetes Engine API.

Kubernetes Engine> Кластеры> Размер кластера

В частности, метод get (projectId = Нет, zone = None, clusterId = Нет, name = None , x__xgafv = Нет) возвращает объект, содержащий значение "currentNodeCount".

Kubernetes Engine> Рабочие нагрузки> Модули

Пример кода для перечисления модулей можно найти здесь: Кластеры доступа с использованием API Kubernetes

0 голосов
/ 22 января 2020

Вам необходимо:

  1. установить командную строку
  2. подключиться к вашему проекту
  3. подключиться к кластеру
  4. получить номер модуль внутри кластера

Установите командную строку

Вы можете использовать предпочитаемую командную строку или активную облачную оболочку вашего браузера (интерактивный интерфейс командной строки, интегрированный в Google Cloud Platform).

Вариант A) Используя свою собственную программу командной строки, вам необходимо установить на свой компьютер команду Google Cloud (gcloud) .

Option B) В противном случае если вы используете активную облачную оболочку, просто нажмите на кнопку активной облачной оболочки в верхней части страницы.

enter image description here

Подключитесь к своему проекту

(только для варианта A)

  • Вход в вашу платформу gcloud: gcloud auth login
$ gcloud auth login
Your browser has been opened to visit:

https://accounts.google.com/signin/oauth/oauthchooseaccount?client_id=65654645461.apps.googleusercontent.com&as=yJ_pR_9VSHEGFKSDhzpiw&destination=http%3A%2F%2Flocalhost%3A8085&approval_state=!ChRVVHYTE11IxY2FVbTIxb2xhbTk0SBIfczcxb2xyQ3hfSFVXNEJxcmlYbTVkb21pNVlhOF9CWQ%E2%88%99AJDr988AKKKKKky48vyl43SPBJ-gsNQf8w57Djasdasd&oauthgdpr=1&oauthriskyscope=1&xsrfsig=ChkAASDasdmanZsdasdNF9sDcdEftdfECwCAt5Eg5hcHByb3ZhbF9zdGF0ZRILZGVzdGluYXRpb24ASDfsdf1Eg9vYXV0aHJpc2t5c2NvcGU&flowName=GeneralOAuthFlow
  • Подключитесь к своему проекту: gcloud config set project your_project_id
$ gcloud projects list

PROJECT_ID              NAME              PROJECT_NUMBER
first-project-265905    My Project        117684542848
second-project-435504   test              895475526863

$ gcloud config set project first-project-265905

Подключение к кластеру

Подключившись к своему проекту, вам необходимо подключиться к кластеру.

gcloud get-credentials кластеров контейнеров your_cluster_name

$ gcloud container clusters list
NAME            LOCATION           MASTER_VERSION  MASTER_IP     MACHINE_TYPE  NODE_VERSION    NUM_NODES  STATUS
test-cluster-1  asia-northeast1-a  1.33.33-gke.24  45.600.23.72  f1-micro      1.13.11-gke.14  3          RUNNING

$ gcloud container clusters get-credentials test-cluster-1
Fetching cluster endpoint and auth data.
kubeconfig entry generated for test-cluster-1.

Получение числа узлов / модулей внутри кластера

внутри заданного пространства имен, выполните команду

$ kubectl get nodes
NAME                                          STATUS     ROLES     AGE       VERSION
gke-test-cluster-1-default-pool-d85b49-2545   NotReady       24m       v1.13.11-gke.14
gke-test-cluster-1-default-pool-d85b49-2dr0   NotReady       3h        v1.13.11-gke.14
gke-test-cluster-1-default-pool-d85b49-2f31   NotReady       1d        v1.13.11-gke.14

$ kubectl get pods
NAME      READY     STATUS    RESTARTS   AGE
busybox   0/1       Pending   0          44s
nginx     0/1       Pending   0          1m

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...