2

我正在尝试为 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.google.com/v1beta1,然后它说找不到命名空间“my-namespace”。不知道从这里去哪里。

4

1 回答 1

0

如评论中所述:

第一个指针是为 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.11-gke.12 上的复制:

  • 我首先尝试按照您的backendconfig.yaml示例部署为 v1:
$ 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

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

于 2020-05-14T15:44:12.490 回答