6.7. 为外部流量配置 IPsec 加密
作为集群管理员,要使用 IPsec 加密外部流量,您必须为网络基础架构配置 IPsec,包括提供 PKCS#12 证书。因为这个流程使用 Butane 创建机器配置,所以必须安装 butane 命令。
应用机器配置后,Machine Config Operator 会重新引导集群中受影响的节点,以推出新机器配置。
先决条件
-
安装 OpenShift CLI (
oc) 。 -
您已在本地计算机上安装了
butane工具。 - 在集群中安装了 NMState Operator。
-
以具有
cluster-admin权限的用户身份登录集群。 - 您有一个 IPsec 端点的现存的 PKCS#12 证书,以及一个 PEM 格式的 CA 证书。
-
您在集群中的
Full或External模式中启用了 IPsec。 -
您必须在 OVN-Kubernetes 网络插件的
ovnKubernetesConfig.gatewayConfig规格中将routingViaHost参数设置为true。
流程
使用 NMState Operator 节点网络配置策略创建 IPsec 配置。如需更多信息,请参阅 Libreswan 作为 IPsec VPN 实现。
要识别 IPsec 端点的集群节点的 IP 地址,请输入以下命令:
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为
ipsec-config.yaml的文件,其中包含 NMState Operator 的节点网络配置策略,如下例所示。有关NodeNetworkConfigurationPolicy对象的概述,请参阅 Kubernetes NMState 项目。NMState IPsec 传输配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NMState IPsec 隧道配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要配置 IPsec 接口,请输入以下命令:
oc create -f ipsec-config.yaml
$ oc create -f ipsec-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
提供以下证书文件以添加到每个主机上的网络安全服务(NSS)数据库中。这些文件在后续步骤中作为 Butane 配置的一部分导入。
-
left_server.p12:IPsec 端点的证书捆绑包 -
ca.pem:您使用签名证书的证书颁发机构
-
创建机器配置以将证书添加到集群中:
要为 control plane 和 worker 节点创建 Butane 配置文件,请输入以下命令:
注意您在配置文件中指定的 Butane 版本应与 OpenShift Container Platform 版本匹配,并且始终以
0结尾。例如:4.20.0。有关 Butane 的信息,请参阅"使用 Butane 创建机器配置"。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要将您在上一步中创建的 Butane 文件转换为机器配置,请输入以下命令:
for role in master worker; do butane -d . 99-ipsec-${role}-endpoint-config.bu -o ./99-ipsec-$role-endpoint-config.yaml done$ for role in master worker; do butane -d . 99-ipsec-${role}-endpoint-config.bu -o ./99-ipsec-$role-endpoint-config.yaml doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow
要将机器配置应用到集群,请输入以下命令:
for role in master worker; do oc apply -f 99-ipsec-${role}-endpoint-config.yaml done$ for role in master worker; do oc apply -f 99-ipsec-${role}-endpoint-config.yaml doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要当 Machine Config Operator (MCO) 更新每个机器配置池中的机器时,它会逐一重启每个节点。在外部 IPsec 连接可用前,您必须等待所有节点更新。
输入以下命令检查机器配置池状态:
oc get mcp
$ oc get mcpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 成功更新的节点具有以下状态:
UPDATED=true、UPDATING=false、DEGRADED=false。注意默认情况下,MCO 会一次在一个池中更新一个机器,从而导致迁移总时间随着集群大小的增加而增加。
要确认 IPsec 机器配置已被成功推出,请输入以下命令:
确认创建 IPsec 机器配置:
oc get mc | grep ipsec
$ oc get mc | grep ipsecCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
80-ipsec-master-extensions 3.2.0 6d15h 80-ipsec-worker-extensions 3.2.0 6d15h
80-ipsec-master-extensions 3.2.0 6d15h 80-ipsec-worker-extensions 3.2.0 6d15hCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确认 control plane 节点的 IPsec 扩展的应用程序。示例输出将显示
2。oc get mcp master -o yaml | grep 80-ipsec-master-extensions -c
$ oc get mcp master -o yaml | grep 80-ipsec-master-extensions -cCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确认计算节点的 IPsec 扩展的应用程序。示例输出将显示
2。oc get mcp worker -o yaml | grep 80-ipsec-worker-extensions -c
$ oc get mcp worker -o yaml | grep 80-ipsec-worker-extensions -cCopy to Clipboard Copied! Toggle word wrap Toggle overflow