0
点赞
收藏
分享

微信扫一扫

【CKA认证真题】K8S运维利器揭秘,实时监控你的集群,让资源使用情况尽在掌握!

嘿,亲爱的Kubernetes小达人们!今天我们来谈谈kubectl top命令,这是一把了解你的集群内资源使用情况的瑞士军刀。跟着我一起简单学习,让你的K8S管理更得心应手!

【CKA认证真题】K8S运维利器揭秘,实时监控你的集群,让资源使用情况尽在掌握!_Server

Step 1:kubectl top是啥?

首先,让我们解密kubectl top。这个命令是Kubernetes提供的一个工具,能够让你实时监控你的Pods和Nodes的资源使用情况,包括CPU和内存。想要知道哪个Pod吃掉了所有的CPU资源?kubectl top命令绝对是你的得力助手!

Step 2:安装Metrics Server

在使用kubectl top之前,你需要确保你的集群中已经安装了Metrics Server。如果还没装,别担心,下面跟着我一步步跟着来就行。

什么是Metrics Server

Metrics ServerKubernetes 内置自动缩放管道的可扩展、高效的容器资源指标来源。Metrics ServerKubelets 收集资源指标,并通过 Metrics API Kubernetes apiserver 中公开它们,以供 Horizontal Pod AutoscalerVertical Pod Autoscaler 使用。Metrics API 也可以通过访问kubectl top,从而更容易调试自动缩放管道。

安装Metrics Server

  1. 先到Metrics Server项目地址,查询对应版本支持那个K8S版本。如下图:

【CKA认证真题】K8S运维利器揭秘,实时监控你的集群,让资源使用情况尽在掌握!_Server_02

  1. 由于我安装的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. 执行kubectl apply -f components.yaml命令部署。成功后如下图,这样就可以通过kubectl top 命令查看节点和pod的资源情况。

【CKA认证真题】K8S运维利器揭秘,实时监控你的集群,让资源使用情况尽在掌握!_Server_03

Step 3:kubectl top简单使用

现在,让我们开始使用kubectl top吧!

  • 查看Node资源使用情况:

kubectl top nodes

这会显示你集群中所有Node的资源使用情况,包括CPU和内存。

  • 查看Pod资源使用情况:

kubectl top pods

这会列出所有Namespace中的Pod资源使用情况,同样包括CPU和内存。

  • 查看特定Namespace中Pod资源使用情况:

kubectl top pods -n your-namespace

your-namespace替换为你关心的Namespace名称。

Step 4:kubectl top高级使用

除了基本用法外,kubectl top还支持更高级的用法,比如:

  • 按CPU或内存排序:

kubectl top pods --sort-by=cpu

通过这个命令,你可以按照CPU使用量进行排序,也可以替换为memory以按内存使用量排序。

  • 指定Pod名称查看详细信息:

kubectl top pod your-pod-name

your-pod-name替换为你关心的Pod的名称,以查看该Pod的详细资源使用情况。

有了以上的知识储备,我们来看看一道CKA的真题吧!

CKA真题

【CKA认证真题】K8S运维利器揭秘,实时监控你的集群,让资源使用情况尽在掌握!_top命令_04

中文解析

切换 k8s 集群环境:kubectl config use-context k8s

Task

找出标签是 name=cpu-user 的 Pod,并过滤出使用 CPU 最高的 Pod,然后把它的名字写在已经存在的 /opt/KUTR00401/KUTR00401.txt 文件里(注意他没有说指定namespace,所以需要使用 -A 指定所有 namespace)。

做题解答

  1. 切换 k8s 集群环境

kubectl config use-context k8s

  1. 通过管道符,一条命令把结果保存到文件中

kubectl top pod -l name=cpu-user --sort-by=cpu  --no-headers=true -A \
 | head -n 1 | awk '{print $2}' >> /opt/KUTR00401/KUTR00401.txt

结语

掌握kubectl top命令,就像是给你的Kubernetes集群装上了X光眼,让你随时随地了解资源的运行状况。赶紧试试吧,让你的K8S管理更加得心应手!

举报

相关推荐

0 条评论