Calico 支持对 IPv4 和 IPv6 流量进行 WireGuard 加密,可以通过 FelixConfiguration 资源中的参数独立启用。
操作系统 | 内核版本 |
---|---|
Linux | 5.6 及以上版本默认安装 |
Ubuntu 20.04 | 5.4.0-135-generic |
Kylin Linux Advanced Server V10 - SP3 | 4.19.90-52.22.v2207.ky10.x86_64 |
操作系统 | 内核版本 |
---|---|
openEuler | 4.18.0-147.5.2.13.h996.eulerosv2r10.x86_64 |
CentOS 7 | 3.10.0-1160.el7.x86_64 |
Redhat 8.7 | 4.18.0-425.3.1.el8.x86_64 |
Kylin Linux Advanced Server V10 - SP2 | 4.19.90-24.4.v2101.ky10.x86_64 |
Kylin Linux Advanced Server V10 - SP1 | 4.19.90-23.8.v2101.ky10.x86_64 |
Kylin Linux Advanced Server V10 | 4.19.90-11.ky10.x86_64 |
术语 | 说明 |
---|---|
wireguardEnabled | 启用 IPv4 流量在 IPv4 下层网络上进行加密。 |
wireguardEnabledV6 | 启用 IPv6 流量在 IPv6 下层网络上进行加密。 |
使用 Calico 网络插件时,请确保 natOutgoing
参数设置为 true
,以支持 WireGuard 加密。默认情况下,创建集群时该参数已正确配置,无需额外配置。
WireGuard 支持对 IPv4 和 IPv6 流量进行加密;如果需要对两种类型的流量进行加密,则必须分别进行配置。有关详细的参数配置,请参阅 Felix 配置文档,配置 wireguardEnabled
和 wireguardEnabledV6
两个参数。
如果 WireGuard 未默认安装,请参阅 WireGuard 安装指南 进行手动安装,尽管在某些情况下可能会出现 WireGuard 模块的手动安装失败。
跨节点的容器间流量将被加密,包括从一个主机到另一个主机的网络流量;但是,在同一节点的 Pods 之间及 Pod 与其宿主节点之间的通信将不会被加密。
启用或禁用 IPv4 和 IPv6 加密。
注意:以下命令必须在节点所在的 Master 节点的 CLI 工具中执行。
仅启用 IPv4 加密
仅启用 IPv6 加密
启用 IPv4 和 IPv6 加密
同时禁用 IPv4 和 IPv6 加密
方法 1:在 CLI 工具中执行命令以禁用加密。
方法 2:修改 felixconfiguration 配置文件以禁用加密。
执行以下命令以打开 felixconfiguration 配置文件。
将 wireguardEnabled
和 wireguardEnabledV6
参数设置为 false 以禁用 WireGuard 加密。
完成 Calico WireGuard 加密配置后,执行以下命令确认 WireGuard 加密状态。如果 IPv4 和 IPv6 加密均已启用,Status
字段下存在 wireguardPublicKey
或 wireguardPublicKeyV6
表示成功激活;如果 IPv4 和 IPv6 加密均已禁用,则这些字段不会包含 wireguardPublicKey
或 wireguardPublicKeyV6
,表示成功停用。
输出:
本文使用 IPv4 流量验证作为示例;IPv6 流量验证与 IPv4 类似,此处不再重复。
配置 WireGuard 加密后,检查路由信息,节点之间的流量优先使用 wireguard.cali 接口进行消息转发。
在节点上捕获数据包以观察跨节点流量。
测试表明 IPv4 类型流量通过 wireguard.cali 接口转发。