lxcfs-webhook

Automatically deploy LXCFS while mounted to the container
设计
https://kubeservice.cn/2021/04/27/k8s-lxcfs-overview/
动机
Pod 容器内资源可见性:让Pod的资源视角真实、准确
❓是否有个发现:Pod
中限定了CPU
、MEM
等资源大小,然而登入的POD
中查询资源,却还是Node
总的资源大小?
对于业务上云, java(识别内存资源
开辟堆
大小)、golang(识别CPU个数
开启runtime线程个数
) 等语言,在OOM
、GC
方面的问题,有时常发生的原因
利用lxcfs将容器
中读取出来的CPU
、MEM
、disk
、swaps
的信息是宿主机的信息,与容器实际分配和限制的资源量相同。 解决低层通过os.syscall
获得的资源信息一致
依赖
- Kubernetes: >=
1.16.0
- cert-manager (v1.2+) is installed.
- helm v3 is installed.
部署
- 创建webhook证书
kubectl apply -f ./hack/deployment/certs/ .
- 创建lxcfs daemonset.yaml
kubectl apply -f ./hack/deployment/lxcfs/ .
- 创建webhook
kubectl apply -f ./hack/deployment/webhook/ .
使用
设置
对需要namespaces
添加 webhook label
kubectl label namespace default lxcfs-admission-webhook=enabled
验证
kubectl apply -f ./hack/examples/httpd-test.yaml
License
