kubernetes GKE:如何使用API获取节点和Pod的数量

gajydyqb  于 5个月前  发布在  Kubernetes
关注(0)|答案(4)|浏览(79)

目前,我从GoogleCloudPlatform管理控制台屏幕中获取各种信息,但将来我希望使用API获取。获取的信息如下。

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

字符串
请示教与每次信息采集对应的API。

o3imoua4

o3imoua41#

GKE UI底层调用Kubernetes API获取信息并在UI中显示。您可以使用kubectl查询Kubernetes API来获取该信息。

kubectl get nodes
kubectl get pods

字符串
如果在kubectl中打开verbose模式,它会显示它在kubernetes API服务器上调用了什么REST API。

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


用于节点和Pod的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


这里是doc关于如何配置Kubectl以连接GKE。
这里是kubernetes的doc,介绍了访问Kubernetes API的不同方法。
你也可以使用kubectl proxy来尝试一下。
记住调用上面的rest api,你需要使用证书或bearer token来验证kubernetes api服务器。

rmbxnbpk

rmbxnbpk2#

您需要:
1.安装命令行
1.连接到您的项目
1.连接到群集
1.检索集群内的Pod数量

安装命令行

您可以使用首选命令行,也可以使用浏览器的活动云 shell (集成到Google Cloud Platform的在线命令行界面)。
选项A)使用您自己的命令行程序,您需要在您的机器上安装Google Cloud command (gcloud)
选项B)否则,如果您使用活动云 shell ,只需点击页面顶部的活动云 shell 按钮。
x1c 0d1x的数据

连接到您的项目

(only(备选案文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配置设置项目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容器集群获取凭证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.

设置集群内节点/Pod数量

在给定的命名空间内运行命令

$ 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

nzk0hqpo

nzk0hqpo3#

谈到Python,Kubernetes Engine API可以在这种情况下使用。

Kubernetes Engine >集群>集群大小

具体来说,方法get(projectId=None,zone=None,clusterId=None,name=None,x__xgafv=None)返回一个包含“currentNodeCount“值的对象。

Kubernetes Engine >工作负载> Pod

可以在这里找到列出pod的代码示例:使用Kubernetes API访问集群

pqwbnv8z

pqwbnv8z4#

gcloud container node-pools describe node-pool-3 --cluster=stg | grep initialNodeCount: | cut -d ':' -f2

字符串
该解决方案仅使用gcloud API获取GKE中节点的计数。
在这个例子中,你可以看到一个命令行。
描述特定群集“stg”中的特定节点池“node-pool-3”
x1c 0d1x的数据

相关问题