Kube-OVN Overlay 网络支持 IPsec 加密
本文档提供了在 Kube-OVN Overlay 网络中启用和禁用 IPsec 加密隧道流量的详细指南。由于 OVN 隧道流量通过物理路由器和交换机传输,这些设备可能位于不受信任的公共网络中或面临攻击风险,因此启用 IPsec 加密可以有效防止流量数据被监控或篡改。
目录
术语
注意事项
-
启用 IPsec 可能会导致网络中断几秒钟。
-
如果内核版本为 3.10.0-1160.el7.x86_64,启用 Kube-OVN 的 IPsec 功能可能会遇到兼容性问题。
先决条件
请执行以下命令检查当前操作系统内核是否支持 IPsec 相关模块。如果输出显示所有与 XFRM 相关的模块为 y 或 m,则表示支持 IPsec。
输出:
操作步骤
注意:除非另有说明,以下命令必须在集群主节点的 CLI 工具中执行。
启用 IPsec
-
修改 kube-ovn-controller 的配置文件。
-
执行以下命令编辑 kube-ovn-controller 的 YAML 配置文件。
-
按照以下说明修改指定字段。
字段说明:
- spec.template.spec.containers[0].args:在此字段下添加
- --enable-ovn-ipsec=true。 - spec.template.spec.containers[0].securityContext.runAsUser:将此字段的值更改为 0。
- spec.template.spec.containers[0].args:在此字段下添加
-
保存更改。
-
-
修改 kube-ovn-cni 的配置文件。
-
执行以下命令编辑 kube-ovn-cni 的 YAML 配置文件。
-
按照以下说明修改指定字段。
字段说明:
- spec.template.spec.containers[0].args:在此字段下添加
- --enable-ovn-ipsec=true。 - spec.template.spec.containers[0].volumeMounts:添加挂载路径,并将名为 ovs-ipsec-keys 的卷挂载到容器。
- spec.template.spec.volumes:在此字段下添加类型为 hostPath 的名为 ovs-ipsec-keys 的卷。
- spec.template.spec.containers[0].args:在此字段下添加
-
保存更改。
-
-
验证功能是否成功启用。
-
执行以下命令进入 kube-ovn-cni Pod。
-
执行以下命令检查安全关联连接的数量。如果有(节点数量 - 1)个连接处于活动状态,表示启用成功。
输出:
-
禁用 IPsec
-
修改 kube-ovn-controller 的配置文件。
-
执行以下命令编辑 kube-ovn-controller 的 YAML 配置文件。
-
按照以下说明修改指定字段。
字段说明:
- spec.template.spec.containers[0].args:将此字段
enable-ovn-ipsec的值更改为 false。 - spec.template.spec.containers[0].securityContext.runAsUser:将此字段的值更改为 65534。
- spec.template.spec.containers[0].args:将此字段
-
保存更改。
-
-
修改 kube-ovn-cni 的配置文件。
-
执行以下命令编辑 kube-ovn-cni 的 YAML 配置文件。
-
按照以下说明修改指定字段。
-
修改前的配置
字段说明:
- spec.template.spec.containers[0].args:将此字段
enable-ovn-ipsec的值更改为 false。 - spec.template.spec.containers[0].volumeMounts:移除此字段下名为 ovs-ipsec-keys 的挂载路径。
- spec.template.spec.volumes:移除此字段下名为 ovs-ipsec-keys 的卷,类型为 hostPath。
- spec.template.spec.containers[0].args:将此字段
-
修改后的配置
-
-
保存更改。
-
-
验证功能是否成功禁用。
-
执行以下命令进入 kube-ovn-cni Pod。
-
执行以下命令检查连接状态。如果没有输出,表示禁用成功。
-