如何通过GCP Kubernetes Engine中的IAP,根据用户id将用户请求路由到特定的docker容器



我正试图为GCP Kubernetes Engine开发一个hello-world原型,该原型使用IAP为特定用户分配一个容器,并仅将该用户的所有请求路由到此容器。它是为了在完全隔离的环境中保护用户敏感信息。

按照@wilrof的建议,我遵循了"为GKE启用IAP",并在BackendConfig中添加了一个IAP块,如下所示;

apiVersion: cloud.google.com/v1  
kind: BackendConfig  
metadata:  
name: config-default
namespace: my-namespace  
spec:
iap:
enabled: true
oauthclientCredentials:
secretName: my-secret

当我运行"kubectl apply-f backendconfig.yaml"时,它抱怨在版本"cloud.google.com/v1"中没有匹配的"backendconfig"。我把第一行改为cloud.gooble.com/v1beta1,然后它说找不到名称空间"my namespace"。不知道从这里去哪里。

如评论中所述:

第一个指针是为GKE启用IAP,您可以启用IAP并使用Backendconfig设置入口以将其引导到服务/pod。


然后您更新了您的问题,以下是BackendConfig:的故障排除

注:GKE版本1.16.8-GKE.3及更高版本支持cloud.google.com/v1 CRD API版本。

所有较低的GKE版本都应该使用cloud.google.com/v1beta1。

  • 由于您尝试使用v1运行并获得no matches for kind "BackendConfig" in version "cloud.google.com/v1",我认为您运行的版本早于1.16.8-gke.3。

  • 至于错误namespaces "my-namespace" not found,请确保您的工作命名空间被称为"my namespace",记住kubernetes的默认命名空间是default


v1.15.1-gke.12:上的复制

  • 我首先尝试部署为v1,如您的backendconfig.yaml示例中所示:
$ kubectl apply -f backendconfig.yaml 
error: unable to recognize "backendconfig.yaml": no matches for kind "BackendConfig" in version "cloud.google.com/v1"
  • 更改为v1beta1并应用:
$ cat backendconfig.yaml 
apiVersion: cloud.google.com/v1beta1
kind: BackendConfig  
metadata:  
name: config-default
namespace: my-namespace  
spec:
iap:
enabled: true
oauthclientCredentials:
secretName: my-secret
$ kubectl apply -f backendconfig.yaml 
Error from server (NotFound): error when creating "backendconfig.yaml": namespaces "my-namespace" not found
  • 检查当前配置的命名空间:
owilliam@owilliam:~/GKE/backendconfig$ kubectl get namespaces
NAME              STATUS   AGE
default           Active   5m35s
kube-node-lease   Active   5m37s
kube-public       Active   5m37s
kube-system       Active   5m37s
  • 我将创建名称空间my-namespace并尝试再次应用:
$ kubectl create namespace my-namespace
namespace/my-namespace created
$ kubectl apply -f backendconfig.yaml 
backendconfig.cloud.google.com/config-default created

如果您还有任何问题,请添加评论,我们将进一步挖掘。

最新更新