kubernetes - 带有内部负载平衡器的 Google Identity Aware 代理
问题描述
是否可以在内部负载均衡器之上添加 IAP?在我的设置中,我有:
- 根据https://cloud.google.com/iap/docs/enabling-kubernetes-howto#enabling_iap发布和配置 oauth 屏幕
- 我的内部域的证书
- 使用 backendConfig 设置 Kubernetes 服务(根据https://cloud.google.com/iap/docs/enabling-kubernetes-howto#add-iap-to-backendconfig)
- 在 Kubernetes 中运行的应用程序
- 使用正确的 ssl 证书创建内部负载均衡器的 Kubernetes Ingress
在我的本地机器上,我有 /etc/hosts 指向负载均衡器。我能够在访问应用程序时进行身份验证,但随后我得到“您无权访问”页面而不是我的应用程序。
在我的 GCP 控制台中,我看不到 IAP 页面上列出的内部负载平衡器。我只能看到外部负载平衡器。
根据本文档https://cloud.google.com/iap/docs/concepts-overview#your_abilities,HTTPS ILB 似乎支持 IAP。
GCP 是否支持带 IAP 的 iLB?
我的 k8s 配置
apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
name: config-default
namespace: default
spec:
iap:
enabled: true
oauthclientCredentials:
secretName: my-secret
-------------------------------
apiVersion: v1
kind: Service
metadata:
name: ilb-service
annotations:
cloud.google.com/backend-config: '{"default": "config-default"}'
cloud.google.com/neg: '{"ingress": true}'
labels:
app: hello
spec:
type: NodePort
selector:
app: hello
ports:
- port: 80
targetPort: 8080
protocol: TCP
name: host1
- port: 443
targetPort: 8080
protocol: TCP
name: host2
--------------------------------
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ilb-demo-ingress
namespace: default
annotations:
kubernetes.io/ingress.class: "gce-internal"
kubernetes.io/ingress.allow-http: "false"
ingress.gcp.kubernetes.io/pre-shared-cert: "titan-testing-ilb"
kubernetes.io/ingress.regional-static-ip-name: "my-internal-address"
spec:
defaultBackend:
service:
name: ilb-service
port:
number: 443
-------------------------------------------
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-app
spec:
selector:
matchLabels:
app: hello
replicas: 3
template:
metadata:
labels:
app: hello
spec:
containers:
- name: hello
image: "us-docker.pkg.dev/google-samples/containers/gke/hello-app:2.0"
ports:
- containerPort: 8080
protocol: TCP
解决方案
推荐阅读
- angular-material-5 - 禁用控件状态时,角度材质输入将占位符移动到顶部
- python - 在 TensorFlow Estimator API 中设置分段学习率
- ember.js - 如何初始化 Ember 模型 ID?
- javascript - 如何在 React Native 中将 flexbox 用于文本组件?水平环绕,垂直增量
- vba - 当另一个文本框在报告中增加其大小时如何停止增加文本框的大小
- ssl - 支持社区版的 TLS
- python - 如何按每一行处理大json文件并有效地转换为csv?
- python - 在文本后搜索 BeautifulSoup,需要从表行中获取所有数据
- python - 将浮点值列表传递给函数时出错
- c# - 通过 Apache Kafka 发送 .csv 等文件