我正在尝试使用 AWS 复制我们在裸机基础设施中设置的内容。诚然,我并不精通 K8S,但我的一位同事已经开始在 AWS 中使用它,所以我一直在捎带他所做的一些工作。他能够回答我的大部分问题,但这个问题似乎让我们有点难过。
在我们的裸机设置中,大约有 20k 个具有单独 SSL 证书的唯一站点。在对几个站点和证书进行小规模测试时,它可以工作。但是,在全尺寸范围内,它不会。
我能够编写脚本将证书导入 K8S 并从中创建一个 voyager 入口配置 yaml 文件,但是当我尝试应用它时,我收到以下错误消息:
bash-5.0# kubectl apply -f generated-ingress.yaml
The Ingress "generated-ingress" is invalid: metadata.annotations: Too long: must have at most 262144 characters
看来是入口配置太大了。
生成的入口看起来像这样:
---
apiVersion: voyager.appscode.com/v1beta1
kind: Ingress
metadata:
name: generated-ingress
namespace: default
spec:
tls:
- secretName: ssl-cert-eample-domain.com
hosts:
- example-domain.com
# Repeated for each domain using SSL
rules:
- host: '*'
http:
paths:
- backend:
serviceName: the-backend
servicePort: '80'
- host: example-domain.com
http:
paths:
- backend:
serviceName: the-backend
servicePort: '80'
headerRules:
- X-HTTPS YES
# Repeated for each domain using SSL
仅供参考X-HTTPS
,我们的后端需要标头才能正确使用https
而不是http
. 如果可以为所有 SSL 连接指定它,而不是为每个单独的域指定它,那就太好了,使配置更精简。
无论如何,有没有办法增加配置的限制?或者有没有更好的方法来配置大量 SSL 证书的入口?