Jay*_* K. 3 ssl https kubernetes kubernetes-ingress nginx-ingress
我正在开发一个动态部署 kubernetes 资源的应用程序,我希望能够为所有这些资源提供一个共享的 SSL 证书。在任何给定时间,所有服务都有路径*.*.*.example.com
。
我听说 cert-manager 会自动配置/重新配置证书,但如果开销太大,我不一定需要自动配置。该解决方案还需要能够处理这些嵌套的 url 子域。
关于最简单的方法有什么想法吗?
看看nginx-ingress,它是一个 Kubernetes 入口控制器,它基本上可以在 Kubernetes 上运行Nginx反向代理/网络服务器/负载均衡器。
nginx-ingress 是围绕Ingress资源构建的。它将监视 Ingress 对象并管理配置映射中的 nginx 配置。您可以通过 Kubernetes Ingress 资源规则和nginx 特定注释定义强大的流量路由规则、缓存、url 重写等。
这是带有一些路由的 Ingress 的示例。你可以用它做更多的事情,它确实支持通配符域路由。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /$1
cert-manager.io/cluster-issuer: letsencrypt-prod
name: my-ingress
spec:
rules:
- host: app1.domain.com
http:
paths:
- backend:
serviceName: app1-service
servicePort: http
path: /(.*)
- host: app2.sub.domain.com
http:
paths:
- backend:
serviceName: app2-service
servicePort: http
path: /(.*)
tls:
- hosts:
- app1.domain.com
secretName: app1.domain.com-tls-secret
- hosts:
- app2.sub.domain.com
secretName: app2.sub.domain.com-tls-secret
Run Code Online (Sandbox Code Playgroud)
注释部分非常重要。上面表示 nginx-ingress 应该管理这个 Ingress 定义。此注释部分允许指定额外的 nginx 配置,在上面的示例中,它指定了一个 url 重写目标,可用于重写规则部分中的 url。
请参阅此社区帖子以在 GKE 上安装 nginx-ingress。
您会注意到注释还有一个特定于证书管理器的注释,如果安装了该注释,它将指示证书管理器根据该tls
部分定义的主机和机密颁发证书。
将cert-manager与 nginx-ingress 结合使用,这并不复杂,您可以设置自动证书创建/更新。
很难通过部署动态应用程序了解您的设置的确切性质。但是实现配置的一些可能的方法是:
粒度越细,控制越多,但移动部件也越多。我不认为这是一个问题。对于最后两个选项,它实际上取决于您的动态应用程序部署的性质。
归档时间: |
|
查看次数: |
5546 次 |
最近记录: |