第 1 章 使用调优插件配置系统控制和接口属性
在 Linux 中,管理员可通过 sysctl 在运行时修改内核参数。您可以使用调优 Container Network Interface(CNI)元插件修改接口级网络 sysctl。tuning CNI meta 插件在一个链中运行,主 CNI 插件如下所示。
主 CNI 插件分配接口,并将此接口在运行时传递给 tuning CNI meta 插件。您可以使用 tuning CNI meta 插件更改网络命名空间中的一些 sysctl 和几个接口属性,如 promiscuous 模式、all-multicast 模式、MTU 和 MAC 地址。
1.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