假设我想从客户端 Web 应用程序对 Kubernetes 对象进行操作。 该应用程序使用 OAuth2 将用户登录到 Google 并获取云平台身份验证范围。 现在,该应用可以调用 GKE API 等 Google Cloud API。 该应用现在可以枚举 GKE 集群:https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/list
我现在不明白的是如何调用 Kubernetes API。我需要连接到主服务器,进行身份验证并使用 Kubernetes 的 REST API。 所以,我有以下问题:
我已经研究过,我认为我可以通过调用 https://container.googleapis.com/v1/projects/XXX/locations/us-central1-a/clusters
API 并获取 endpoint
属性来获取主端点。主授权信息似乎在 masterAuth
中。我需要令牌思想...
我已尝试使用已知良好的令牌连接到主服务器,但浏览器的 fetch
函数使用 ERR_CERT_AUTHORITY_INVALID
拒绝了我的请求。
// Error: net::ERR_CERT_AUTHORITY_INVALID
const response = await fetch(
"https://IP/api/v1/pods/",
{
headers: new Headers({
"Authorization": "Bearer <token>",
"Content-Type": "application/json; charset=utf-8"
}),
}
);
我能够从 MasterAuth 获取证书颁发机构信息,但我不知道如何使用它进行 HTTP GET 调用。
所以,我最紧迫的问题是:给定主端点 API 和 MasterAuth
(clusterCaCertificate
和 clientCertificate
),我如何从浏览器调用 Kubernetes API。