【发布时间】:2019-02-15 07:49:39
【问题描述】:
我有一个使用 GKE Ingress(主版本 1.10.6-gke.2)作为负载平衡器的应用程序。最近 GKE 开始支持通过 BackendConfig 声明 IAP 支持。我遵循了 [1] 和 [2] 的文档。但是,现在 GKE 在创建我的 Ingress 时似乎挂起。
以下是我的服务、入口和后端配置的 yaml。
kubectl -n randall-test-1 get svc,ing,backendconfig -o yaml
apiVersion: v1
items:
- apiVersion: v1
kind: Service
metadata:
annotations:
beta.cloud.google.com/backend-config: '{"default": "airflow-backend-config"}'
service.alpha.kubernetes.io/app-protocols: '{"web":"HTTPS"}'
creationTimestamp: 2018-09-10T19:23:13Z
name: airflow
namespace: randall-test-1
resourceVersion: "2155724"
selfLink: /api/v1/namespaces/randall-test-1/services/airflow
uid: X-X-X-X-X
spec:
clusterIP: X.X.X.X
externalTrafficPolicy: Cluster
ports:
- name: web
nodePort: 30099
port: 8080
protocol: TCP
targetPort: web
selector:
app: airflow
sessionAffinity: None
type: NodePort
status:
loadBalancer: {}
- apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.allow-http: "false"
creationTimestamp: 2018-09-10T19:23:13Z
generation: 1
name: airflow
namespace: randall-test-1
resourceVersion: "2155721"
selfLink: /apis/extensions/v1beta1/namespaces/randall-test-1/ingresses/airflow
uid: X-X-X-X-X
spec:
backend:
serviceName: airflow
servicePort: 8080
tls:
- secretName: tls
status:
loadBalancer: {}
- apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
clusterName: ""
creationTimestamp: 2018-09-10T19:23:13Z
generation: 1
name: airflow-backend-config
namespace: randall-test-1
resourceVersion: "2155728"
selfLink: /apis/cloud.google.com/v1beta1/namespaces/randall-test-1/backendconfigs/airflow-backend-config
uid: X-X-X-X-X
spec:
iap:
enabled: true
oauthclientCredentials:
secretName: oauth2
kind: List
metadata:
resourceVersion: ""
selfLink: ""
挂起让我没有洞察力。
cluster@master0:~/kube-config$ kubectl -n randall-test-1 describe ing
Name: airflow
Namespace: randall-test-1
Address:
Default backend: airflow:8080 (X.X.X.X:8080)
TLS:
tls terminates
Rules:
Host Path Backends
---- ---- --------
* * airflow:8080 (X.X.X.X:8080)
Annotations:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ADD 6m loadbalancer-controller randall-test-1/airflow
但是,在 GKE 控制台中,我只得到 Creating ingress 作为状态超过 20 分钟的状态,但没有解决方案。我还在控制台中检查了我的Load Balancers,但什么也没看到。
任何想法发生了什么或我可以检查什么?
我还尝试仅使用 securityPolicy 来执行此操作,它应该将负载均衡器与 Cloud Armor 策略链接起来。这也不适用于类似的挂起。
[1]https://cloud.google.com/iap/docs/enabling-kubernetes-howto
[2]https://cloud.google.com/kubernetes-engine/docs/concepts/backendconfig
注意:交叉张贴在https://github.com/kubernetes/ingress-gce/issues/469
【问题讨论】:
-
您是否检查了活动 k8s master 中 kube-controller-manager 和 kube-apiserver 的日志。 GCP 的某些身份验证或 api 可能会失败。
标签: kubernetes google-kubernetes-engine