首页 / 产品更新 / DigitalOcean Kubernetes路由代理:Kubernetes 静态路由管理的高效解决方案

DigitalOcean的新型 DOKS(DigitalOcean Kubernetes)路由代理是一个用于在 Kubernetes 工作节点上配置静态路由的托管组件。它直接响应了用户对其前身——静态路由操作员的反馈,并引入了新功能以增强路由的灵活性。尽管 DOKS 路由代理是一个托管组件,但对用户而言,它并不会产生任何额外费用。

DOKS 路由代理的关键特性

1、通过自定义资源管理静态路由

DOKS 路由代理使用户能够使用专门的 Kubernetes 自定义资源在其 Kubernetes 工作节点上配置 IP 路由。这对于 VPN 设置或通过特定网关节点传输出口流量尤其有用。

示例配置:

apiVersion: networking.doks.digitalocean.com/v1alpha1
kind: Route
metadata:
  name: basic
spec:
  destinations:
    - "1.2.3.4/5"  # 要通过指定网关路由的网络
  gateways:
    - "10.114.0.3"  # 网关 IP

2、支持多个网关和 ECMP

路由代理支持多个网关,并自动配置 ECMP(等价多路径)路由以在它们之间分配流量。

示例配置:

apiVersion: networking.doks.digitalocean.com/v1alpha1
kind: Route
metadata:
  name: basic
spec:
  destinations:
    - "1.2.3.4/5"
  gateways:
    - "10.114.0.3"
    - "10.114.0.4"

ECMP 的工作原理:

ECMP 根据源/目的 IP 和端口的哈希值,将流量分布在多个网关上。如果某个网关出现故障,Linux 内核将停止向其发送流量。路由代理每 30 秒对网关进行一次 ping 操作,以检测故障并在网关恢复时重新建立流量传输。注意:确保在网关上允许 ICMP 流量,以便健康检查能够正常进行。

3、覆盖默认路由

路由代理允许用户覆盖默认路由,而不会中断集群连接——这是最受请求的功能之一。

示例配置:

apiVersion: networking.doks.digitalocean.com/v1alpha1
kind: Route
metadata:
  name: basic
spec:
  destinations:
    - "0.0.0.0/0"  # 默认路由
  gateways:
    - "10.114.0.3"
    - "10.114.0.4"

为了防止对 Kubernetes 组件造成影响,路由代理确保关键控制平面端点、元数据服务和 DNS 服务器通过工作节点 Droplet 的默认网关保持直接连接。

4、节点选择用于路由

路由可以使用 Kubernetes 标签选择器应用于特定节点,从而允许对网络配置进行细粒度的控制。

示例配置:

apiVersion: networking.doks.digitalocean.com/v1alpha1
kind: Route
metadata:
  name: basic
spec:
  destinations:
    - "1.2.3.4/5"
  gateways:
    - "10.114.0.3"
  nodeSelector:
    nodeSelectorTerms:
      - matchExpressions:
          - key: doks.digitalocean.com/node-pool
            operator: In
            values:
              - "worker-pool"

启用 DOKS 路由代理

路由代理可以通过 doctl 或 DigitalOcean API 启用或禁用。

示例命令:

doctl kubernetes cluster create --enable-routing-agent ...
doctl kubernetes cluster update --enable-routing-agent ...

对于 API 用户,字段结构如下:

{
  "name": "prod-cluster-01",
  "region": "nyc3",
  "routing_agent": {
    "enabled": true
  }
}

静态出口 IP 的使用

借助 DOKS 路由代理和自行管理的 VPC 网关 Droplet,用户可以配置静态出口 IP,确保来自 Kubernetes 工作负载的出站流量源自可预测的 IP 地址。

为何这很重要:

  • 允许列表: 通过允许列表已知 IP 来保护外部服务。
  • 合规性: 为满足监管要求,保持一致的出口 IP。

即将推出:完全托管的 NAT网关

我们还在开发一个完全托管的 NAT 网关,它将提供一个更简单的解决方案,用于实现静态出口 IP。此功能在我们的路线图上,将于今年晚些时候推出。

简化静态路由管理

DOKS 路由代理简化了 Kubernetes 中的静态路由管理,提供了以下功能:

  • 使用 Kubernetes 自定义资源创建自定义路由
  • 使用 ECMP 在多个网关之间分配负载
  • 覆盖默认路由而不中断集群连接
  • 使用标签选择器进行节点特定路由

这些功能对于 VPN 设置、自定义出口路由和自行管理的 VPC 网关尤其有用。 如果需要了解 DigitalOcean Kubernetes 托管服务的更多产品细节,请联系我们

QQ 交流群:611945524
关注我们的公众号,获取最新内容推送

最新发布

相关阅读