摘要
本文内容转自网络,个人学习记录使用,请勿传播
查看集群资源状况
1 | # 查看master组件状态: |
监控集群资源利用率
1 | # 查看node资源消耗 |
执行时会提示错误:
error: Metrics API not available
这是因为这个命令需要由
metric-server
服务提供数据,而这个服务默认没有安装,需要手动部署
Metrics Server
Metrics Server
是一个集群范围的资源使用情况的数据聚合器。作为一个应用部署在集群中。Metric server
从每个节点上Kubelet API
收集指标,通过Kubernetes
聚合器注册在Master APIServer
中。为集群提供Node、Pods资源利用率指标
部署
1 | wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml |
增加一个kubelet-insecure-tls参数,这个参数作用是告诉metrics-server不验证kubelet提供的https证书
检查是否部署成功
1 | kubectl get apiservices |grep metrics |
如果状态True并能返回数据说明Metrics Server服务工作正常。
工作流程
1 | kubectl top -> kube-apiserver -> metrics-server(聚合器) -> kubelet(https的api)/cadvisor(容器资源指标采集器) |
管理k8s集群组件日志
查看kubelet日志
1 | # systemd守护进程管理的组件: |
查看通过pod部署的核心组件日志
- Master组件:apiserver、controller-manager、scheduler、etcd(第三方)
- Node组件:kubelet(systemd部署,其他都是容器化部署)、kube-proxy
1 | kubectl logs kube-proxy-btz4p -n kube-system |
查看其它系统日志
1 | tail -f /var/log/messages |
管理k8s集群应用日志
1 | # 查看容器标准输出日志 |
查看日志的工作流程
1 | kubectl logs -> kube-apiserver -> kubelet -> docker -> xxx-json.log(接管容器标准输出) |
查看pod详情
1 | kubectl get pods -o wide |
容器的标准输出在宿主机的存放位置
1 | /var/lib/docker/containers/<container-id>/<container-id>-json.log |
容器中应用日志可以使用emptyDir
数据卷将日志文件持久化到宿主机上
1 | /var/lib/kubelet/pods/<pod-id>/volumes/kubernetes.io~empty-dir/logs/access.log |