Kubernetes监控与日志

艺帆风顺 发布于 2025-04-02 16 次阅读


基本资源概念

Pod: k8s最小部署单元,一组容器的集合

Deployment: 最常见的控制器,用于更高级别部署和管理Pod

Service:为一组Pod提供负载均衡,对外提供统一访问入口

Label:标签,附加到某个资源上,用于关联对象、查询和筛选

Namespaces:命名空间,将对象逻辑上隔离,也有利于权限控制

编辑

查看资源集群状态

查看master组件状态

kubectl get cs

编辑

查看node状态

kubectl get node

编辑

查看资源的详细:

kubectl describe

编辑

查看资源信息:

kubectl get #-o wide 、-o yaml

编辑

监控集群资源利用率

查看Node资源消耗

kubectl top node node name>

查看Pod资源消耗

kubectl top pod pod name>

编辑

执行时可能会提示错误:error:Metrics API not available

这是因为这个命令需要由metric-server服务提供数据,而这个服务默认没有安装,还需要手动部署下。

编辑

kubectl top执行流程

kubectl top -> apiserver -> metric-server -> kubelet(cadvisor) -> 容器

手动部署Metrics 

1、从网上新下载的需要将文件内的镜像改成国内的地址

sed -i 's/k8s.gcr.io/metrics-server/registry.cnhangzhou.aliyuncs.com/google_containers/g' 

Metrics Server部署默认使用证书

2、还要按照下列步骤修改成忽略认证

https://kubelet     自签证书

1、携带kubelet所用https的根证书及客户端证书

2、忽略证书认证

方法:

    增加一个kubelet-insecure-tls参数,这个参数作用是告诉metrics-server不验证kubele提供的https证书

编辑

然后apply

编辑

查看拉起的镜像

编辑

检查是否部署成功

    kubectl get apiservices |grep metricskubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes

    编辑

    如果状态True并能返回数据说明Metrics Server服务工作正常


    k8s Cluster(集群)里面部署的应用程序

    • 标准输出

       

    • 日志文件

    systemd守护进程管理的组件

    journalctl -u kubelet    #会发现有很多错误

    Pod部署的组件

    kubectl logs 组件名  -n kube-system

    编辑

    系统日志

    tail -f /var/log/messages

    查看容器标准输出日志

    kubectl logs 
    kubectl logs -f

    编辑

    标准输出在宿主机的路径

    /var/lib/docker/containers//-json.log

    日志文件,进入到终端日志目录查看

    kubectl exec -it -- bash    #进入容器终端

    编辑