alx*_*ndr 5 kubernetes kubectl
Kubernetes 仪表板能够显示每个节点的“当前运行的 Pod/Pod 容量”。但是当我尝试获取相同的信息时,kubectl
我必须运行两个命令:
kubectl describe node | grep -E (^Name:|^Non-terminated)
Run Code Online (Sandbox Code Playgroud)
其中列出了“节点上当前正在运行的 pod”,以及
kubectl get nodes -o=custom-columns=NAME:.metadata.name,CAPACITY:.status.capacity.pods
Run Code Online (Sandbox Code Playgroud)
显示节点的容量
有谁知道如何仅使用一个命令获得类似于下面的输出?
NAME CURRENT CAPACITY
node_1 7 15
node_2 8 15
node_3 15 15
Run Code Online (Sandbox Code Playgroud)
提前致谢!
ana*_*six 10
我发现以下内容有助于查看每个节点运行的 Pod 数量
kubectl get pods \
-A \
-o jsonpath='{range .items[?(@.spec.nodeName)]}{.spec.nodeName}{"\n"}{end}' \
| sort | uniq -c | sort -rn
Run Code Online (Sandbox Code Playgroud)
产生这样的输出
89 node1
88 node4
87 node2
87 node3
86 node5
Run Code Online (Sandbox Code Playgroud)
没有一个命令可以做到这一点。
可以通过组合这两个命令来编写脚本来执行此操作。
请注意,使用基于整数的指标(例如 Pod 数量)可能会产生很大的误导,因为 Pod 消耗的空间和 CPU 数量可能会有所不同。在达到节点 Pod 计数容量之前,您可能会用完 CPU 和内存。
您可以使用命令检查可用资源:kubectl top nodes
节点容量
节点的容量(CPU 数量和内存量)是节点对象的一部分。通常,节点在创建节点对象时注册自身并报告其容量。如果您进行 手动节点管理,那么您需要在添加节点时设置节点容量。
Kubernetes 调度程序确保节点上的所有 Pod 有足够的资源。它检查节点上容器的请求总和不大于节点容量。它包括由 kubelet 启动的所有容器,但不包括由容器运行时直接启动的容器 ,也不包括在容器外部运行的任何进程。
聚苯乙烯
在 Debian 上,第一个命令必须稍微修改才能工作:
kubectl describe node | grep -E "(^Name:|^Non-terminated)"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8385 次 |
最近记录: |