GCP:如何为 Python 测试代码设置 GKE 的用户 ID,首先使用我的 GCP 用户 ID?

GCP: how to set user id for GKE for Python test code, first with my GCP userid?

我正在调整我客户的测试代码,使其在 GKE 之外的应用程序上运行良好。但是 运行在 GKE 集群内访问端点 IP,我得到:

{"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"forbidden: User \"system:anonymous\" cannot post path \"/\"","reason":"Forbidden","details":{},"code":403}

我知道当它投入生产时我需要一个服务帐户,但现在我只是想在登录时从命令行运行:

gcloud auth login

我该怎么做?我尝试将我的登录 ID 绑定到授权角色,但似乎没有成功。

system:anonymous 表示未经身份验证的用户正试图从您的集群中获取资源,这是被禁止的。您需要在 GKE 集群上创建 RBAC 配置文件。

如@Gari singh 所述,您可能正在尝试访问 Kube API 端点,而不是您应用程序的端点。要从您的应用程序访问端点,您需要连接到 pod 上的应用程序 运行ning。

从您的应用访问端点的步骤:

要将您的应用程序部署到您创建的 GKE 集群,您需要两个 Kubernetes 对象。

  1. 用于定义您的应用程序的部署。

  2. 定义如何访问您的应用程序的服务。

部署应用程序:

该应用程序有一个处理网络请求的前端服务器。您在名为 deployment.yaml 的新文件中定义 运行 前端所需的集群资源。这些资源被描述为部署。您使用 Deployments 创建和更新 ReplicaSet 及其关联的 Pods.

部署服务:

服务提供对一组 Pods 的单点访问。虽然可以访问单个 Pod,但 Pods 是短暂的,只能通过使用服务地址可靠地访问。在您的应用程序中,该服务定义了一个负载均衡器以从单个 IP 地址访问应用程序 Pods。此服务在 service.yaml 文件中定义。使用命令 kubectl get services.

获取服务的外部 IP 地址

查看部署的应用程序:

使用上一步中的外部 IP 地址在网络浏览器中加载应用程序,并查看您的 运行ning 应用程序:http://EXTERNAL_IP

或者,您可以对服务的外部 IP 地址进行 curl 调用:curl External_IP。这将是您的应用程序端点。

参考Deploying a language-specific-app and exposing applications using services获取信息。