首页 文章

需要一个带有SSL教程的Kubernetes 1.2 Ingress裸机控制器

提问于
浏览
2

在获取SSL终止Ingress和基于nginx的控制器上运行的最接近的教程是裸机(例如Digital Ocean):

https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx

但它留下了许多无法解释的假设 .

我的入口要求很简单:

所有主机的端口80的

  • 默认后端:

  • 文件访问 location ^~ /.well-known/acme-challenge/ ,允许我的LetsEncrypt证书续订工作
    99948

  • 404
    99949

  • 301

  • 基于子域的路由到端口443上的不同后端服务

  • 每个子域指向一个不同的SSL密钥/证书(由我的LetsEncrypt生成,并作为秘密存储在K8S中我想?)

我认为需要的是:

  • 关于编写Ingress规则的完整文档

  • 我可以为每个后端单独配置SSL证书(在端口443上)吗?

  • / "path"这是主持人的收获?

  • 更新Ingress规则

  • 我使用什么nginx控制器? nginx的? nginx的-α? nginx-ingress docker container - 这些控制器的文档在哪里?

  • 是否有一个基本控制器映像,我可以覆盖nginx.conf模板,该模板由来自API服务器的Ingress更改填充?

  • 如何将SSL密钥和证书存储为秘密?

1 回答

  • 5

    嘘我的答案适用于https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx

    所有主机的端口80的默认后端:404位置/.well-known/acme-challenge/

    使用Ingress规则是不可能的

    301位置/

    这已经得到支持了 . 如果服务器包含SSL证书,它将自动重定向到 https

    基于子域的路由到端口443上的不同后端服务,每个子域指向不同的SSL密钥/证书(由我的LetsEncrypt生成,并作为秘密存储在K8S中,我想?)

    您需要创建多个Ingress规则,每个子域一个 . 每个规则可以使用不同的秘密名称(这将创建多个服务器,每个子域一个)

    我认为需要的是:

    关于编写Ingress规则的完整文档

    http://kubernetes.io/docs/user-guide/ingress/

    (我不知道id除了go代码之外还有其他信息)

    我可以为每个后端单独配置SSL证书(在端口443上)吗?对于主持人而言,这是“路径”吗?

    更新Ingress规则我使用的nginx控制器是什么? nginx的? nginx的-α? nginx-ingress docker container - 这些控制器的文档在哪里?

    这取决于您的需求,如果您想构建自定义Ingress控制器,您可以使用 nginx-alpha 作为参考 . 如果 nginx-ingress 在示例中不明确,请打开一个问题,并提及示例中可以改进的内容,或者它已丢失

    是否有一个基本控制器映像,我可以覆盖nginx.conf模板,该模板由来自API服务器的Ingress更改填充?

    不可以 . 原因是模板与填充模板的go代码相关联 . 也就是说,您可以构建自定义映像来更改模板,但这需要您部署映像以测试更改

    如何将SSL密钥和证书存储为机密?

    是的,像这样的秘密http://kubernetes.io/docs/user-guide/ingress/#tls

    有关 letsencrypt 支持,请查看此评论https://github.com/kubernetes/kubernetes/issues/19899#issuecomment-184059009

    这是一个完整的例子https://gist.github.com/aledbf/d88c7f7d0b8d4d032035b14ab0965e26 added to examples in #766

相关问题