第 13 章 使用调优插件配置系统控制和接口属性
在 Linux 中,管理员可通过 sysctl 在运行时修改内核参数。您可以使用调优 Container Network Interface(CNI)元插件修改接口级网络 sysctl。tuning CNI meta 插件在一个链中运行,主 CNI 插件如下所示。
主 CNI 插件分配接口,并将此接口在运行时传递给 tuning CNI meta 插件。您可以使用 tuning CNI meta 插件更改网络命名空间中的一些 sysctl 和几个接口属性,如 promiscuous 模式、all-multicast 模式、MTU 和 MAC 地址。
13.1. 使用 tuning CNI 配置系统控制
				以下流程将调整 CNI 配置为更改接口级网络 net.ipv4.conf.IFNAME.accept_redirects sysctl。这个示例启用接受和发送 ICMP 重定向的数据包。在 tuning CNI meta 插件配置中,接口名称由 IFNAME 令牌表示,并替换为运行时接口的实际名称。
			
流程
- 使用以下内容创建网络附加定义,如 - tuning-example.yaml:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 下面显示了一个 YAML 文件示例: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令来应用 YAML: - oc apply -f tuning-example.yaml - $ oc apply -f tuning-example.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - networkattachmentdefinition.k8.cni.cncf.io/tuningnad created - networkattachmentdefinition.k8.cni.cncf.io/tuningnad created- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用类似以下示例的网络附加定义,创建示例 - pod.yaml:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 指定配置的NetworkAttachmentDefinition的名称。
- 2
- runAsUser控制使用哪个用户 ID 运行容器。
- 3
- runAsGroup控制容器使用哪个主要组 ID。
- 4
- allowPrivilegeEscalation决定 pod 是否请求允许特权升级。如果未指定,则默认为 true。这个布尔值直接控制在容器进程中是否设置了- no_new_privs标志。
- 5
- capabilities允许特权操作,而不提供完整的 root 访问权限。此策略可确保从 pod 中丢弃了所有功能。
- 6
- runAsNonRoot: true要求容器使用 0 以外的任何 UID 运行。
- 7
- RuntimeDefault为 pod 或容器工作负载启用默认的 seccomp 配置集。
 
- 运行以下命令来应用 yaml: - oc apply -f examplepod.yaml - $ oc apply -f examplepod.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令验证 pod 是否已创建: - oc get pod - $ oc get pod- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - NAME READY STATUS RESTARTS AGE tunepod 1/1 Running 0 47s - NAME READY STATUS RESTARTS AGE tunepod 1/1 Running 0 47s- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令登录到 pod: - oc rsh tunepod - $ oc rsh tunepod- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 验证配置的 sysctl 标记的值。例如,通过运行以下命令查找 - net.ipv4.conf.net1.accept_redirects的值:- sysctl net.ipv4.conf.net1.accept_redirects - sh-4.4# sysctl net.ipv4.conf.net1.accept_redirects- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 预期输出 - net.ipv4.conf.net1.accept_redirects = 1 - net.ipv4.conf.net1.accept_redirects = 1- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
