【发布时间】:2022-11-09 15:05:22
【问题描述】:
我已经设置了在 Kubernetes 上运行的后端和前端服务。前端为www.<myDomain>.com,后端为api.<myDomain>.com
我需要公开和保护这两个服务。我希望使用一个入口。我想使用 let's encrypt + cert manager 的免费证书。我猜<myDomain>.com 的证书应该涵盖www. 和api.。
很正常的用例,对吧?但是当这些正常的东西放在一起时,我无法弄清楚组合的 yaml。我能够获得单一服务,www.<myDomain>.com 与 https 一起使用。当我尝试添加 api.<myDomain>.com 时,事情不起作用
我正在使用 GKE,但这似乎不是与平台相关的问题。现在创建入口需要很长时间。以下事件已被反复尝试
Error syncing to GCP: error running load balancer syncing routine: loadbalancer <some id here> does not exist: googleapi: Error 404: The resource 'projects/<project>/global/sslCertificates/<some id here>' was not found, notFound
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web-ingress
annotations:
kubernetes.io/ingress.class: gce
kubernetes.io/ingress.allow-http: "true"
cert-manager.io/issuer: letsencrypt-staging
spec:
tls:
- secretName: web-ssl
hosts:
- <myDomain>.com
rules:
- host: "www.<myDomain>.com"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: angular-service
port:
number: 80
- host: "api.<myDomain>.com"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: spring-boot-service
port:
number: 8080
【问题讨论】:
标签: kubernetes https kubernetes-ingress lets-encrypt cert-manager