CentOS Stream 10: Deploy Metrics Server
Install and configure Metrics Server to collect resource metrics in a Kubernetes cluster on CentOS Stream 10.
May 24, 2026 • 8 min read
centoscentos-stream-10kubernetesk8scluster
Deploy Metrics Server to monitor CPU and Memory resources in Kubernetes Cluster.
This example is based on the environment like follows.
+----------------------+ +----------------------+
| [ ctrl.srv.world ] | | [ dlp.srv.world ] |
| Manager Node | | Control Plane |
+-----------+----------+ +-----------+----------+
eth0|10.0.0.25 eth0|10.0.0.30
| |
------------+--------------------------+-----------
| |
eth0|10.0.0.51 eth0|10.0.0.52
+-----------+----------+ +-----------+----------+
| [ node01.srv.world ] | | [ node02.srv.world ] |
| Worker Node#1 | | Worker Node#2 |
+----------------------+ +----------------------+
Step 1
Deploy Metrics Server.
[cent@ctrl ~]$ git clone https://github.com/kubernetes-sigs/metrics-server
[cent@ctrl ~]$ vi ./metrics-server/manifests/base/deployment.yaml
.....
.....
containers:
- name: metrics-server
image: gcr.io/k8s-staging-metrics-server/metrics-server:master
imagePullPolicy: IfNotPresent
args:
- --cert-dir=/tmp
- --secure-port=10250
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --metric-resolution=15s
<span class="color2"># line 29 : add</span>
<span class="color1">- --kubelet-insecure-tls</span>
[cent@ctrl ~]$ kubectl apply -k ./metrics-server/manifests/base/
# Warning: 'commonLabels' is deprecated. Please use 'labels' instead. Run 'kustomize edit fix' to update your Kustomization automatically.
serviceaccount/metrics-server created
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
service/metrics-server created
deployment.apps/metrics-server created
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
[cent@ctrl ~]$ kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-64c678449f-bts57 1/1 Running 2 3h40m
calico-node-9pl4d 1/1 Running 3 3h35m
calico-node-dc9mt 1/1 Running 2 3h36m
calico-node-n8szh 1/1 Running 2 3h40m
coredns-7c65d6cfc9-j7jb5 1/1 Running 2 3h41m
coredns-7c65d6cfc9-jxvwr 1/1 Running 2 3h41m
etcd-dlp.srv.world 1/1 Running 2 3h41m
kube-apiserver-dlp.srv.world 1/1 Running 2 3h41m
kube-controller-manager-dlp.srv.world 1/1 Running 2 3h41m
kube-proxy-lk27c 1/1 Running 2 3h35m
kube-proxy-wx6nm 1/1 Running 2 3h41m
kube-proxy-xfjd8 1/1 Running 2 3h36m
kube-scheduler-dlp.srv.world 1/1 Running 2 3h41m
metrics-server-75c666cb86-tlkhw 1/1 Running 0 31s
<span class="color2"># [metrics-server] pod has been deployed</span>
Step 2
To display CPU and Memory resources, run like follows.
[cent@ctrl ~]$ kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
dlp.srv.world 67m 0% 1831Mi 11%
node01.srv.world 32m 0% 1088Mi 6%
node02.srv.world 30m 0% 1155Mi 7%
[cent@ctrl ~]$ kubectl top pod -n kube-system
NAME CPU(cores) MEMORY(bytes)
calico-kube-controllers-64c678449f-bts57 2m 102Mi
calico-node-9pl4d 17m 199Mi
calico-node-dc9mt 17m 199Mi
calico-node-n8szh 15m 196Mi
coredns-7c65d6cfc9-j7jb5 1m 17Mi
coredns-7c65d6cfc9-jxvwr 1m 74Mi
etcd-dlp.srv.world 7m 108Mi
kube-apiserver-dlp.srv.world 15m 382Mi
kube-controller-manager-dlp.srv.world 5m 148Mi
kube-proxy-lk27c 1m 88Mi
kube-proxy-wx6nm 1m 88Mi
kube-proxy-xfjd8 1m 88Mi
kube-scheduler-dlp.srv.world 1m 83Mi
metrics-server-75c666cb86-tlkhw 3m 22Mi