我正在尝试为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.comv1 "中没有匹配的种类 "BackendConfig"。我将第一行改为cloud.google.comv1beta1,然后它说没有找到命名空间 "my-namepace"。不知道该从哪里下手。
正如评论中提到的。
然后你更新了你的问题,这里是故障处理的问题。BackendConfig
:
说明:: GKE 版本 1.16.8-gke.3 及以上版本支持 cloud.google.comv1 CRD API 版本。
所有较低的 GKE 版本都应该使用 cloud.google.comv1beta1。
由于您尝试使用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
例。$ 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
如果你仍有任何问题,请添加评论,我们将进一步挖掘。