如何使用kubectl
来判断广告连播当前使用了多少ephemeral storage?
在Kubernetes pod规范中,我可以指定CPU,内存和临时存储的资源请求和限制:
resources:
requests:
memory: "60Mi"
cpu: "70m"
ephemeral-storage: "2Gi"
limits:
memory: "65Mi"
cpu: "75m"
ephemeral-storage: "4Gi"
但是,要为临时存储设置好的请求和限制,我需要知道此值对于正在运行的Pod实际上是什么,我不知道。我可以使用kubectl top pod
获得CPU和内存使用率,但是据我所知,ephemeral storage usage is only actually calculated when making an actual eviction decision。
答案 0 :(得分:1)
纯粹的原始方法是使用disk usage(du)Unix命令行。
装入您的Pod:
$ kubectl exec -it <pod-id> sh
将目录更改为临时存储的安装点(如果使用卷安装):
$ mount # check mount points if you'd like
$ cd /mnt/of/ephemeral
$ du .
如果您不使用卷挂载:
$ du .
您还可以使用其他工具来获取指标:
cAdvisor也嵌入到kubelet代码中,暴露在/stats/summary
或/metrics
端点下。更多信息here。输出示例:
$ curl -k -H 'Authorization: Bearer <Redacted>' \
https://node-hostname:10250/stats/summary
{
"node": {
"nodeName": "node-hostname",
"systemContainers": [
{
"name": "kubelet",
...
"volume": [
{
"time": "2018-11-08T23:52:03Z",
"availableBytes": 1969168384,
"capacityBytes": 1969180672,
"usedBytes": 12288,
"inodesFree": 480748,
"inodes": 480757,
"inodesUsed": 9,
"name": "kube-proxy-token-pprwb"
}
],
"ephemeral-storage": {
"time": "2018-11-09T00:05:10Z",
"availableBytes": 31057477632,
"capacityBytes": 41567858688,
"inodesFree": 4873887,
"inodes": 5120000
}
...
}
类似地:
$ curl -k -H 'Authorization: Bearer <Redacted>' \
https://node-hostname:10250/stats/summary
# HELP apiserver_audit_event_total Counter of audit events generated and sent to the audit backend.
# TYPE apiserver_audit_event_total counter
apiserver_audit_event_total 0
# HELP apiserver_client_certificate_expiration_seconds Distribution of the remaining lifetime on the certificate used to authenticate a request.
# TYPE apiserver_client_certificate_expiration_seconds histogram
apiserver_client_certificate_expiration_seconds_bucket{le="0"} 0
apiserver_client_certificate_expiration_seconds_bucket{le="21600"} 0
apiserver_client_certificate_expiration_seconds_bucket{le="43200"} 0
...
有关K8s指标here的更多信息。