RKE 将以 DaemonSet 的形式部署 Ingress Controller,并使用 ,因此在部署控制器的每个节点上都会打开 80443端口。

Ingress Controller 使用的镜像在系统镜像中。对于每个 Kubernetes 版本,都有与 Ingress Controller 相关联的默认镜像,这些镜像可以通过更改system_images中的镜像标签来覆盖默认设置。

如果只想在特定的节点上部署 Ingress Controller ,可以在dns部分设置一个node_selectornode_selector中的标签需要与要部署 Ingress Controller 的节点上的标签相匹配。

  1. ingress:
  2. provider: none

Kubernetes 中有 NGINX 选项:、命令行 extra_args和。

在配置具有 TLS 终止功能的 ingress 对象时,必须为其提供用于加密/解密的证书。与其在每次配置 ingress 时明确定义证书,不如设置一个默认使用的自定义证书。

在使用通配符证书的环境中,设置默认证书特别有用,因为该证书可以应用在多个子域中。

先决条件

  • 你将使用的 PEM 编码证书作为默认证书。
  1. 运行以下命令,从你的 PEM 编码证书中生成一个 Kubernetes 密钥,用mycert.certmycert.key代替你的证书。

    1. kubectl -n ingress-nginx create secret tls ingress-default-cert --cert=mycert.cert --key=mycert.key -o yaml --dry-run=true > ingress-default-cert.yaml
  2. ingress-default-cert.yml的内容嵌入到 RKE 的文件中:

  3. 可选: 如果想将默认证书应用到已经存在的集群中的入口,必须删除 NGINX 入口控制器 pods,让 Kubernetes 使用新配置的调度新的 pods。