Sam*_*Sam 4 kubernetes kubelet
我在虚拟机上运行 Kubernetes 集群。安装座的简要概述如下:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 4.5G 15G 24% /
/dev/mapper/vg001-lv--docker 140G 33G 108G 23% /var/lib/docker
Run Code Online (Sandbox Code Playgroud)
如您所见,我添加了一个额外的磁盘来存储 docker 映像及其卷。但是,查询节点容量时,返回以下内容
Capacity:
cpu: 12
ephemeral-storage: 20145724Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 65831264Ki
nvidia.com/gpu: 1
pods: 110
Run Code Online (Sandbox Code Playgroud)
ephemeral-storage是20145724Ki20G,指挂载在 的磁盘/。
Kubelet如何计算它的ephemeral-storage?它只是查看可用磁盘空间吗/?或者它正在查看另一个文件夹,例如/var/log/containers?
这是一篇类似的文章,用户最终屈服于增加安装在 的磁盘/。
小智 9
一些理论
默认情况下Capacity,Allocatable对于标准 kubernetes 环境中的临时存储,源自文件系统(安装到 /var/lib/kubelet)。这是 kubelet 目录的默认位置。
nodefs:节点的主文件系统,用于本地磁盘卷、emptyDir、日志存储等。例如,nodefs包含/var/lib/kubelet/.imagefs:容器运行时用于存储容器映像和容器可写层的可选文件系统。Kubelet 自动发现这些文件系统并忽略其他文件系统。Kubelet 不支持其他配置。
来自Kubernetes 网站有关卷的信息:
卷的存储介质(例如磁盘或 SSD)
emptyDir由保存 kubelet 根目录(通常为 )的文件系统的介质决定/var/lib/kubelet。
可以通过提供以下内容来配置 kubelet 目录的位置:
--root-dir字符串默认值:/var/lib/kubelet
apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
nodeRegistration:
kubeletExtraArgs:
root-dir: "/data/var/lib/kubelet"
Run Code Online (Sandbox Code Playgroud)
要自定义 kubelet,您可以 在同一配置文件中添加或
KubeletConfiguration分隔。然后可以将该文件传递到 .ClusterConfigurationInitConfiguration---kubeadm init
使用 kubeadm 引导 kubernetes 集群时,Capacity报告的kubectl get node等于挂载的磁盘容量/var/lib/kubelet
但是,Allocatable将报告为:
Allocatable= Capacity-10% nodefs使用标准 kubeadm 配置,因为kubelet 具有以下默认硬驱逐阈值:
nodefs.available<10%可以在kubelet 初始化期间配置:
-eviction-hardmapStringString 默认值:imagefs.available<15%,memory.available<100Mi,nodefs.available<10%
例子
我为 Kubernetes 设置了一个测试环境,其中包含一个主节点和两个工作节点(worker-1 和worker-2)。
两个工作节点都有相同容量的卷:50Gb。
此外,我在路径 处为 Worker-1 节点安装了第二个容量为 20Gb 的卷 /var/lib/kubelet。然后我用 kubeadm 创建了一个集群。
结果
从worker-1节点:
skorkin@worker-1:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 49G 2.8G 46G 6% /
...
/dev/sdb 20G 45M 20G 1% /var/lib/kubelet
Run Code Online (Sandbox Code Playgroud)
和
Capacity:
cpu: 2
ephemeral-storage: 20511312Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 4027428Ki
pods: 110
Run Code Online (Sandbox Code Playgroud)
临时存储的大小与安装在 /var/lib/kubelet 的卷相同。
从worker-2节点:
skorkin@worker-2:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 49G 2.7G 46G 6% /
Run Code Online (Sandbox Code Playgroud)
和
Capacity:
cpu: 2
ephemeral-storage: 50633164Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 4027420Ki
pods: 110
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4670 次 |
| 最近记录: |