2.3.3. 使用 CRI-O 为 Overlay 设置默认的最大容器根分区大小
每个容器的根分区显示底层主机的所有可用磁盘空间。按照以下说明,为所有容器的 root 磁盘设置最大分区大小。
要配置最大 Overlay 大小,以及其他 CRI-O 选项,如日志级别和 PID 限制,您可以创建以下 ContainerRuntimeConfig 自定义资源定义(CRD):
apiVersion: machineconfiguration.openshift.io/v1
kind: ContainerRuntimeConfig
metadata:
name: overlay-size
spec:
machineConfigPoolSelector:
matchLabels:
custom-crio: overlay-size
containerRuntimeConfig:
pidsLimit: 2048
logLevel: debug
overlaySize: 8G流程
创建配置对象:
$ oc apply -f overlaysize.yml
要将新的 CRI-O 配置应用到 worker 节点,请编辑 worker 机器配置池:
$ oc edit machineconfigpool worker
根据在
ContainerRuntimeConfigCRD 中设置的matchLabels名称添加custom-crio标签:apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfigPool metadata: creationTimestamp: "2020-07-09T15:46:34Z" generation: 3 labels: custom-crio: overlay-size machineconfiguration.openshift.io/mco-built-in: ""保存更改,然后查看机器配置:
$ oc get machineconfigs
新的
99-worker-generated-containerruntime和rendered-worker-xyz对象被创建:输出示例
99-worker-generated-containerruntime 4173030d89fbf4a7a0976d1665491a4d9a6e54f1 2.2.0 7m42s rendered-worker-xyz 4173030d89fbf4a7a0976d1665491a4d9a6e54f1 2.2.0 7m36s
创建这些对象后,监控机器配置池以了解要应用的更改:
$ oc get mcp worker
worker 节点将
UPDATING显示为True,以及机器数量、更新的数字和其他详情:输出示例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE worker rendered-worker-xyz False True False 3 2 2 0 20h
完成后,worker 节点会从
UPDATING转换回False,UPDATEDMACHINECOUNT数与MACHINECOUNT数匹配:输出示例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE worker rendered-worker-xyz True False False 3 3 3 0 20h
查看 worker 机器,您会看到新的 8 GB 最大大小配置适用于所有 worker:
输出示例
head -n 7 /etc/containers/storage.conf [storage] driver = "overlay" runroot = "/var/run/containers/storage" graphroot = "/var/lib/containers/storage" [storage.options] additionalimagestores = [] size = "8G"在容器内,您会看到 root 分区现在为 8 GB:
输出示例
~ $ df -h Filesystem Size Used Available Use% Mounted on overlay 8.0G 8.0K 8.0G 0% /