在 Kubernetes 中,Metrics Server 是一个用于收集聚合容器级别指标的组件。它提供了 Kubernetes 各个节点上的 CPU 和内存指标,以及每个 Pod、每个容器的 CPU 和内存使用情况。
在本文中,我们将介绍如何在 Kubernetes 集群中部署和配置 Metrics Server,并且演示如何使用它。
部署 Metrics Server
首先,我们需要部署 Metrics Server 到 Kubernetes 集群中。可以使用以下命令:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
上述命令会从 GitHub 下载最新版本的 Metrics Server 部署文件。部署完成后,可以使用以下命令检查 Metrics Server 是否已经部署成功:
kubectl get deployment metrics-server -n kube-system
如果输出 NAME READY UP-TO-DATE AVAILABLE AGE
,就说明 Metrics Server 部署成功了。
配置 Metrics Server
Metrics Server 部署后,还需要进行一些配置以启用它。可以修改部署文件中的 args
参数来进行配置:
containers: - name: metrics-server image: k8s.gcr.io/metrics-server/metrics-server:v0.3.7 command: - /metrics-server - --metric-resolution=30s # 指定 Metrics Server 收集指标的时间分辨率,默认为 60s - --kubelet-insecure-tls # 允许 Metrics Server 使用不安全的 TLS 连接到 kubelet - --kubelet-preferred-address-types=InternalIP # 指定 Metrics Server 从 kubelet 获取指标使用的节点地址类型
其他参数可以参考 Metrics Server 的官方文档。
在配置好 Metrics Server 后,我们可以使用以下命令来查看节点上的指标:
kubectl top nodes
这个命令会输出如下内容:
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% worker-node1 129m 6% 736Mi 18% worker-node2 135m 6% 836Mi 21%
其中,CPU(cores)
表示每个节点的 CPU 使用情况,MEMORY(bytes)
表示每个节点的内存使用情况。
使用 Metrics Server
当 Metrics Server 部署和配置完毕后,我们就可以在 Kubernetes 集群中使用它了。
以下是一些常用的 Metrics Server 的使用场景:
查看 Pod 使用情况
我们可以使用以下命令来查看某个 Pod 的 CPU 和内存使用情况:
kubectl top pods [POD_NAME]
例如:
kubectl top pods nginx-app-0
这个命令会输出如下内容:
NAME CPU(cores) MEMORY(bytes) nginx-app-0 1m 11Mi
查看命名空间中所有 Pods 的使用情况
我们可以使用以下命令来查看指定命名空间中所有 Pods 的 CPU 和内存使用情况:
kubectl top pods -n [NAMESPACE]
例如:
kubectl top pods -n kube-system
这个命令会输出如下内容:
NAME CPU(cores) MEMORY(bytes) calico-node-2zb8c 222m 163Mi calico-node-8t5bv 132m 147Mi coredns-558bd4d5db-4j7cc 3m 7Mi coredns-558bd4d5db-d5zz9 3m 7Mi etcd-master-node 41m 37Mi kube-apiserver-master-node 211m 375Mi kube-controller-manager-master-node 91m 60Mi kube-proxy-bgddq 1m 22Mi kube-proxy-z2k2x 1m 16Mi kube-proxy-zwrmr 1m 17Mi kube-scheduler-master-node 12m 12Mi metrics-server-7cf6dfb77b-v7pnb 1m 11Mi
查看命名空间中所有 Deployments 的使用情况
我们可以使用以下命令来查看指定命名空间中所有 Deployments 的 CPU 和内存使用情况:
kubectl top deployments -n [NAMESPACE]
例如:
kubectl top deployments -n default
这个命令会输出如下内容:
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR nginx-deployment 3/3 3 3 20m nginx nginx:latest app=nginx
总结
在本文中,我们介绍了如何在 Kubernetes 集群中部署和配置 Metrics Server,并且演示了如何使用它来查看指标。Metrics Server 是 Kubernetes 中非常重要的指标收集组件,可以帮助我们更好地了解集群和应用程序的性能,以及进行问题排查和调优。希望本文能够为您提供一些帮助,让您能够更好地使用 Metrics Server。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65adc12dadd4f0e0ff73b982