是否可以通过curl执行kubectl命令?

时间:2020-03-13 09:13:49

标签: kubernetes

是否可以通过简单地点击GKE kube master api以获得一些资源并返回json来执行kubectl命令,从而实现卷曲?

2 个答案:

答案 0 :(得分:2)

Kubernetes是一个完全基于API的系统,要与Kubernetes API进行交互,您需要一个ServiceAccount(通过集群角色和RoleBinding获得)。

在这里您可以找到Google Kubernetes Engine API的文档:https://cloud.google.com/kubernetes-engine/docs/reference/rest

作为旁注,可能会有用: https://kubernetes.io/docs/tasks/administer-cluster/access-cluster-api/#accessing-the-kubernetes-api

答案 1 :(得分:0)

Kubernetes是基于REST API的,可以通过curl调用。

https://kubernetes.io/docs/tasks/administer-cluster/access-cluster-api/#accessing-the-kubernetes-api

Kubectl在内部确实会卷曲到Kubernetes API,可以通过运行以下命令并搜索curl来验证它,并且您可以执行相同的curl命令。在下面的示例中,kubectl使用证书进行身份验证并针对Kubernetes API执行curl。

kubectl get nodes --v=10

curl -k -v -XGET  -H "Accept: application/json;as=Table;v=v1beta1;g=meta.k8s.io, application/json" -H "User-Agent: kubectl/v1.17.0 (darwin/amd64) kubernetes/70132b0" 'https://127.0.0.1:32768/api/v1/nodes?limit=500'

但是要调用Kubernetes REST API,您可以使用客户端证书或JWT承载令牌。建议使用具有承载令牌的服务帐户从吊舱与Kubernetes API通信。

Kubernetes API