书籍来源:《CKA/CKAD应试指南:从Docker到Kubernetes完全攻略》
一边学习一边整理老师的课程内容及实验笔记,并与大家分享,侵权即删,谢谢支持!
附上汇总贴:CKA备考实验 | 汇总_热爱编程的通信人的博客-CSDN博客
如果想查看kubernetes集群里每个节点及每个pod的CPU负载、内存负载,需要安装监控,这里我们演示安装metric-server。
因为安装metrics-server的时候,所需要的镜像是http://k8s.gcr.io的,但是由于网络原因无法直接从http://k8s.gcr.io下载镜像,所以先从dockerio下载镜像,然后进行tag操作。
步骤1:在所有节点上下载镜像。
##########实操验证##########
[root@vms10 ~]# docker pull mirrorgooglecontainers/metrics-server-amd64:v0.3.6
v0.3.6: Pulling from mirrorgooglecontainers/metrics-server-amd64
e8d8785a314f: Pull complete
b2f4b24bed0d: Pull complete
Digest: sha256:c9c4e95068b51d6b33a9dccc61875df07dc650abbf4ac1a19d58b4628f89288b
Status: Downloaded newer image for mirrorgooglecontainers/metrics-server-amd64:v0.3.6
docker.io/mirrorgooglecontainers/metrics-server-amd64:v0.3.6
[root@vms10 ~]#
步骤2:在所有节点上进行tag操作,形成一个新镜像。
##########实操验证##########
[root@vms10 ~]# docker tag mirrorgooglecontainers/metrics-server-amd64:v0.3.6 k8s.gcr.io/metrics-server-amd64:v0.3.6
[root@vms10 ~]#
步骤3:在master上通过如下命令下载metric-server(以下操作都在master上进行)。
##########实操验证##########
[root@vms10 ~]# curl -Ls https://api.github.com/repos/kubernetes-sigs/metrics-server/tarball/v0.3.6 -o metrics-server-v0.3.6.tar.gz
[root@vms10 ~]#
步骤4:解压metrics-server-v0.3.6.tar.gz,并进入如下目录。
##########实操验证##########
[root@vms10 ~]# tar zxvf metrics-server-v0.3.6.tar.gz
... #省略大量内容
[root@vms10 ~]#
[root@vms10 ~]# cd kubernetes-sigs-metrics-server-d1f4f6f/deploy/1.8+/
[root@vms10 1.8+]#
[root@vms10 1.8+]# pwd
/root/kubernetes-sigs-metrics-server-d1f4f6f/deploy/1.8+
[root@vms10 1.8+]#
按下面的内容修改metrics-server-deployment.yaml。
##########实操验证##########
#增加以下粗体部分
containers:
- name: metrics-server
image: k8s.gcr.io/metrics-server-amd64:v0.3.6
imagePullPolicy: IfNotPresent
command:
- /metrics-server
- --metric-resolution=30s
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP
volumeMounts:
保存退出。
步骤5:运行当前目录所有文件。
##########实操验证##########
[root@vms10 1.8+]# kubectl apply -f .
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
Warning: rbac.authorization.k8s.io/v1beta1 ClusterRoleBinding is deprecated in v1.17+, unavailable in v1.22+; use rbac.authorization.k8s.io/v1 ClusterRoleBinding
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
Warning: rbac.authorization.k8s.io/v1beta1 RoleBinding is deprecated in v1.17+, unavailable in v1.22+; use rbac.authorization.k8s.io/v1 RoleBinding
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
Warning: apiregistration.k8s.io/v1beta1 APIService is deprecated in v1.19+, unavailable in v1.22+; use apiregistration.k8s.io/v1 APIService
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
serviceaccount/metrics-server created
deployment.apps/metrics-server created
service/metrics-server created
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
[root@vms10 1.8+]#
注意:在运行的时候,如果出现了Warning警告的话,直接忽略即可。
步骤6:查看metrics-server的pod运行状态。
##########实操验证##########
[root@vms10 1.8+]# kubectl get pods -n kube-system | grep metric
metrics-server-bcfb98c76-4q69h 1/1 Running 0 17s
[root@vms10 1.8+]#
稍等几分钟,可以通过kubectl top命令查看每个node及pod的资源消耗。
步骤7:查看节点的负载。
##########实操验证##########
[root@vms10 ~]# kubectl top nodes --use-protocol-buffers
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
vms10.rhce.cc 210m 10% 1361Mi 37%
vms11.rhce.cc 107m 5% 846Mi 23%
vms12.rhce.cc 85m 4% 830Mi 22%
[root@vms10 ~]#
注意:选项--use-protocol-buffers可以不写。
步骤8:查看pod的负载。
##########实操验证##########
[root@vms10 ~]# kubectl top pods -n kube-system --use-protocol-buffers
NAME CPU(cores) MEMORY(bytes)
calico-kube-controllers-7cc8dd57d9-b5x6t 2m 19Mi
calico-node-9z2qw 33m 99Mi
calico-node-hspxm 36m 83Mi
calico-node-rkchd 28m 90Mi
etcd-vms10.rhce.cc 12m 57Mi
kube-apiserver-vms10.rhce.cc 64m 366Mi
kube-controller-manager-vms10.rhce.cc 16m 58Mi
kube-proxy-6kmms 1m 22Mi
kube-proxy-c2qp2 1m 23Mi
kube-proxy-nbz4t 1m 24Mi
kube-scheduler-vms10.rhce.cc 2m 25Mi
metrics-server-bcfb98c76-4q69h 1m 13Mi
[root@vms10 ~]#
注意:在前面创建calico网络的时候,请务必把calico里的网段设置为和初始化时所指定的pod网络一致。我们在使用kubeadm init时指定了--pod-network-cidr=10.244.0.0/16,所以一定要修改calico的网络,这样metrics-server运行起来之后,它的IP是在10.244.0.0/16内的。
##########实操验证##########
[root@vms10 ~]# kubectl get pods -n kube-system -o wide | grep metri
metrics-server-bcfb98c76-4q69h 1/1 Running 0 3m28s 10.244.14.3 vms12.rhce.cc <none> <none>
[root@vms10 ~]#