往期精彩:
kubectl top
是一个用于查看 Kubernetes
集群中资源使用情况的命令。它可以显示节点或Pod的CPU、内存和存储的使用情况。该命令要求正确配置Metrics Server
并在服务器上工作。
什么是Metrics Server
Metrics Server
是 Kubernetes
内置自动缩放管道的可扩展、高效的容器资源指标来源。Metrics Server
从 Kubelets
收集资源指标,并通过 Metrics API
在 Kubernetes apiserver
中公开它们,以供 Horizontal Pod Autoscaler
和Vertical Pod Autoscaler
使用。Metrics API
也可以通过访问kubectl top
,从而更容易调试自动缩放管道。
安装Metrics Server
- 先到Metrics Server项目地址,查询对应版本支持那个K8S版本。如下图:
- 由于我安装的k8S版本是1.28.2,所以,需要下载上图的1.21+的版本。执行如下的命令:
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability-1.21+.yaml
- 1
- 修改components.yaml配置文件,把镜像的地址修改阿里云镜像,并添加一个参数
kubelet-insecure-tls
,如下
containers:
- args:
- --cert-dir=/tmp
- --secure-port=10250
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --metric-resolution=15s
- --kubelet-insecure-tls
image: registry.aliyuncs.com/google_containers/metrics-server:v0.7.0
imagePullPolicy: IfNotPresent
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 执行
kubectl apply -f components.yaml
命令部署。成功后如下图,这样就可以通过kubectl top
命令查看节点和pod的资源情况。
kubectl top基本用法
详细的用法可以通过kebectl top pod|node -h
。 以下列举工作中常用的命令:
- 查看集群中所有节点资源使用情况:
kubectl top nodes
- 1
- 查看集群中某个节点资源使用情况
kubectl top nodes k8s-node1
- 1
- 查询集群中所有Pod资源使用情况:
kubectl top pods -A
- 1
-A 是列举所有命名空间的pod,默认是default名空间
- 查询集群中所有Pod资源情况,并安装CPU利用进行排序:
kubectl top pods -A --sort-by=cpu
- 1
sort-by: 支持两个参数 cpu和memory
- 通过lebel值查询Pod资源情况
kubectl top pod -l k8s-app=kube-dns -A
- 1
CKA真题
切换 k8s 集群环境:
kubectl config use-context k8s
Task:
找出标签是name=cpu-user
的Pod,并过滤出使用CPU
最高的 Pod,然后把它的名字写在已经存在的/opt/KUTR00401/KUTR00401.txt
文件里(注意他没有说指定namespace,所以需要使用-A
指定所有 namespace)。
我先在K8S环境新建了两个Pod模拟高CPU的应用,如下图:
解题思路:
#切换集群
kubectl config use-context k8s
# 通过管道符,一条命令把结果保存到文件中
kubectl top pod -l name=cpu-user \
--sort-by=cpu --no-headers=true -A \
| head -n 1 | awk '{print $2}' >> \
/opt/KUTR00401/KUTR00401.txt
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- -A:列出所有的命名空间的Pod
- –no-headers=true:返回的结果没有表头,如下图
往期精彩:
kubectl top
是一个用于查看 Kubernetes
集群中资源使用情况的命令。它可以显示节点或Pod的CPU、内存和存储的使用情况。该命令要求正确配置Metrics Server
并在服务器上工作。
什么是Metrics Server
Metrics Server
是 Kubernetes
内置自动缩放管道的可扩展、高效的容器资源指标来源。Metrics Server
从 Kubelets
收集资源指标,并通过 Metrics API
在 Kubernetes apiserver
中公开它们,以供 Horizontal Pod Autoscaler
和Vertical Pod Autoscaler
使用。Metrics API
也可以通过访问kubectl top
,从而更容易调试自动缩放管道。
安装Metrics Server
- 先到Metrics Server项目地址,查询对应版本支持那个K8S版本。如下图:
- 由于我安装的k8S版本是1.28.2,所以,需要下载上图的1.21+的版本。执行如下的命令:
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability-1.21+.yaml
- 1
- 修改components.yaml配置文件,把镜像的地址修改阿里云镜像,并添加一个参数
kubelet-insecure-tls
,如下
containers:
- args:
- --cert-dir=/tmp
- --secure-port=10250
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --metric-resolution=15s
- --kubelet-insecure-tls
image: registry.aliyuncs.com/google_containers/metrics-server:v0.7.0
imagePullPolicy: IfNotPresent
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 执行
kubectl apply -f components.yaml
命令部署。成功后如下图,这样就可以通过kubectl top
命令查看节点和pod的资源情况。
kubectl top基本用法
详细的用法可以通过kebectl top pod|node -h
。 以下列举工作中常用的命令:
- 查看集群中所有节点资源使用情况:
kubectl top nodes
- 1
- 查看集群中某个节点资源使用情况
kubectl top nodes k8s-node1
- 1
- 查询集群中所有Pod资源使用情况:
kubectl top pods -A
- 1
-A 是列举所有命名空间的pod,默认是default名空间
- 查询集群中所有Pod资源情况,并安装CPU利用进行排序:
kubectl top pods -A --sort-by=cpu
- 1
sort-by: 支持两个参数 cpu和memory
- 通过lebel值查询Pod资源情况
kubectl top pod -l k8s-app=kube-dns -A
- 1
CKA真题
切换 k8s 集群环境:
kubectl config use-context k8s
Task:
找出标签是name=cpu-user
的Pod,并过滤出使用CPU
最高的 Pod,然后把它的名字写在已经存在的/opt/KUTR00401/KUTR00401.txt
文件里(注意他没有说指定namespace,所以需要使用-A
指定所有 namespace)。
我先在K8S环境新建了两个Pod模拟高CPU的应用,如下图:
解题思路:
#切换集群
kubectl config use-context k8s
# 通过管道符,一条命令把结果保存到文件中
kubectl top pod -l name=cpu-user \
--sort-by=cpu --no-headers=true -A \
| head -n 1 | awk '{print $2}' >> \
/opt/KUTR00401/KUTR00401.txt
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- -A:列出所有的命名空间的Pod
- –no-headers=true:返回的结果没有表头,如下图
评论记录:
回复评论: