本文主要记录k8s
中源码中一些函数实现。持续更新。
函数批量调用
1 | // pkg/controller/replicaset/replica_set.go |
FindTailLineStartIndex
1 | // pkg/util/tail/tail.go |
并行拉取镜像
最大并行镜像拉取数量:
特性状态: Kubernetes v1.27 [alpha]
当 serializeImagePulls 被设置为 false 时,kubelet 默认对同时拉取的最大镜像数量没有限制。 如果你想限制并行镜像拉取的数量,可以在 kubelet 配置中设置字段 maxParallelImagePulls。 当 maxParallelImagePulls 设置为 n 时,只能同时拉取 n 个镜像, 超过 n 的任何镜像都必须等到至少一个正在进行拉取的镜像拉取完成后,才能拉取。
当启用并行镜像拉取时,限制并行镜像拉取的数量可以防止镜像拉取消耗过多的网络带宽或磁盘 I/O。
你可以将 maxParallelImagePulls 设置为大于或等于 1 的正数。 如果将 maxParallelImagePulls 设置为大于等于 2,则必须将 serializeImagePulls 设置为 false。 kubelet 在无效的 maxParallelImagePulls 设置下会启动失败。
1 |
|
串行镜像拉取
1 | // pkg/kubelet/images/puller.go |
REF:
1.pkg/controller/replicaset/replica_set.go
2.vendor/k8s.io/utils/integer/integer.go
3.pkg/util/tail/tail.go
4.pkg/kubelet/images/puller.go
5.https://kubernetes.io/zh-cn/docs/concepts/containers/images/#maximum-parallel-image-pulls
6.pkg/kubelet/images/image_manager.go