网络服务
CoreDNS
CoreDNS 在启动服务器时默认部署。要禁用,请在配置文件中使用 disable: rke2-coredns 选项运行每个服务器。
如果您不安装 CoreDNS,您需要自己安装集群 DNS 提供程序。
CoreDNS 默认与 自动扩展器 一起部署。要禁用它或更改其配置,请使用 HelmChartConfig 资源。
NodeLocal DNSCache
NodeLocal DNSCache 通过在每个节点上运行 DNS 缓存代理来提高性能。要激活此功能,请应用以下 HelmChartConfig:
---
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: rke2-coredns
namespace: kube-system
spec:
valuesContent: |-
nodelocal:
enabled: true
Helm 控制器将使用新配置重新部署 CoreDNS.请注意,nodelocal 会修改节点的 iptables 以拦截 DNS 流量。因此,在不重新部署的情况下激活然后停用此功能,将导致 DNS 服务停止工作。
请注意,如果 kube-proxy 使用 ipvs 模式,则必须在该模式下部署 NodeLocal DNSCache。要在此模式下部署,请应用以下 HelmChartConfig:
---
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: rke2-coredns
namespace: kube-system
spec:
valuesContent: |-
nodelocal:
enabled: true
ipvs: true
在 kube-proxy 替代模式下使用 Cilium 的 NodeLocal DNS Cache
此功能从版本 v1.28.13+rke2r1、v1.29.8+rke2r1 和 v1.30.4+rke2r1 开始可用。
如果您选择的 CNI 是 Cilium 在 kube-proxy 替代模式,并希望使用 NodeLocal DNS Cache,则需要配置 Cilium 使用 本地重定向策略 (LRP) 将 DNS 流量路由到您的 NodeLocal 缓存。这是因为在此模式下,Cilium eBPF 路由绕过 iptables 规则,因此 NodeLocal 无法配置它们以将 DNS 流量路由到自身.
这分为两个步骤:
-
通过在 Cilium HelmChartConfig 中将
localRedirectPolicy标志设置为 true 来激活 Cilium 的本地重定向策略功能。这看起来像这样:--- # /var/lib/rancher/rke2/server/manifests/rke2-cilium-config.yaml --- apiVersion: helm.cattle.io/v1 kind: HelmChartConfig metadata: name: rke2-cilium namespace: kube-system spec: valuesContent: |- kubeProxyReplacement: true k8sServiceHost: <KUBE_API_SERVER_IP> k8sServicePort: <KUBE_API_SERVER_PORT> localRedirectPolicy: true -
配置
rke2-coredns图表以通过应用以下 HelmChartConfig 来设置其 LRP:--- apiVersion: helm.cattle.io/v1 kind: HelmChartConfig metadata: name: rke2-coredns namespace: kube-system spec: valuesContent: |- nodelocal: enabled: true use_cilium_lrp: true
Ingress 控制器
-
ingress-nginx
-
Traefik
|
ingress-nginx 控制器将在 2026 年 3 月终止服务(EOL),并在 RKE2 v1.36 中被弃用。 SUSE® Rancher Prime: RKE2 用户将在 RKE2 v1.32、v1.33、v1.34、v1.35 和 v1.36 的整个生命周期内继续获得支持和 CVE 修复(8+)。我们建议按照 从 Ingress-NGINX 迁移到 Traefik 的独立 RKE2 集群 指南切换到 Traefik。 |
ingress-nginx 是一个由 NGINX 提供支持的 Ingress 控制器,它使用 ConfigMap 来存储 NGINX 配置。
ingress-nginx 在启动服务器时默认部署。在其默认配置中,端口 80 和 443 将被 ingress 控制器绑定,这使得这些端口无法用于集群中的 HostPort 或 NodePort 服务。
可以通过创建 HelmChartConfig 清单 来指定配置选项,以自定义 rke2-ingress-nginx HelmChart 值。例如,位于 /var/lib/rancher/rke2/server/manifests/rke2-ingress-nginx-config.yaml 的 HelmChartConfig 具有以下内容,将 ConfigMap 中存储的 NGINX 配置的 use-forwarded-headers 设置为 "true":
# /var/lib/rancher/rke2/server/manifests/rke2-ingress-nginx-config.yaml
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: rke2-ingress-nginx
namespace: kube-system
spec:
valuesContent: |-
controller:
config:
use-forwarded-headers: "true"
有关更多信息,请参阅官方 ingress-nginx Helm 配置参数。
Traefik is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. It simplifies networking complexity while designing, deploying, and running applications.
要使用 Traefik,请在配置文件中使用 ingress-controller: traefik 选项启动每个服务器。
- 可以通过创建 HelmChartConfig 清单 来指定配置选项,以自定义
rke2-traefikHelmChart 值。例如,位于/var/lib/rancher/rke2/server/manifests/rke2-traefik-config.yaml的 HelmChartConfig 具有以下内容,将日志级别更改为 "DEBUG"。
# /var/lib/rancher/rke2/server/manifests/rke2-traefik-config.yaml
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: rke2-traefik
namespace: kube-system
spec:
valuesContent: |-
logs:
general:
level: "DEBUG"
要查看所有可配置选项,请访问图表的 values.yaml。
要禁用 ingress 控制器,请在配置文件中使用 ingress-controller: none 选项启动每个服务器。
网关 API
网关 API 是一组 Kubernetes 资源,提供动态基础设施配置和高级流量路由。虽然传统的 Ingress API 仍然受到支持(并且没有计划被弃用),但网关 API 提供了一种更具表现力、角色导向和可扩展的服务暴露管理方式。
要在 SUSE® Rancher Prime: RKE2 中利用网关 API,您必须使用 Traefik。请使用以下 HelmChartConfig 来启用网关 API:
# /var/lib/rancher/rke2/server/manifests/rke2-traefik-config.yaml
---
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: rke2-traefik
namespace: kube-system
spec:
valuesContent: |-
providers:
kubernetesGateway:
enabled: true
# experimentalChannel: true (read warning below)
Traefik 与 网关 API v1.4 兼容。
|
Gateway API resources
Prior to the April 2026 releases (v1.33.11+rke2r1, v1.34.7+rke2r1 and v1.35.4+rke2r1), Gateway API CRDs are removed if traefik is disabled after previously having been enabled. When using an affected release, avoid disabling traefik or uninstalling the traefik-crds AddOn if your cluster contains Gateway API resources that you do not want removed. |
|
如果您需要对实验性网关 API 资源的支持,例如 TCPRoute,您必须从官方 网关 API 发布 安装 experimental-install.yaml 并在 rke2-traefik 图表值中使用选项 |