监控集群资源利用率

metrics-server是一个集群范围的资源使用情况的数据聚合器,作为一个应用部署在集群中
metrics-server从每个节点上kubelet API收集指标,通过kubernetes聚合器注册在master APIserver中

Metrics-Server默认是没有部署的,需要手工进行部署

GitHub地址:https://github.com/kubernetes-sigs/metrics-server/
yaml文件下载地址
wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml 

里面有两种模式可选:

1、HPA 模式可以实现pod水平扩展,可以增加pod的数量
2、VAP 模式可以实现Pod 可以横向扩展,可以增加pod的配置

修改yaml

vim  components.yaml

 86   image: lizhenliang/metrics-server:v0.3.7       #更换为国内的镜像下载地址
87 imagePullPolicy: IfNotPresent
88 args:
89 - --cert-dir=/tmp
90 - --secure-port=4443
91 - --kubelet-insecure-tls #跳过https(证书)校验
92 - --kubelet-preferred-address-types=InternalIP #使用IP进行连接kuberlet

kubectl describe node|grep InternalIP

修改完成后生效文件

kubectl apply -f components.yaml
kubectl get pods -n kube-system

查看metrics server是否向apiserver注册

kubectl get apiservice   #查看聚合成注册信息

如果有异常情况可以使用命令进行查看资源情况

kubectl describe apiservice v1beta1.metrics.k8s.io

查看node和pod资源消耗

kubectl top node      #不加节点名称默认是所有节点资源利用率
kubectl top pods #不加pod名称默认是全部pod的资源利用率
kubectl top pods nginx-f89759699-6n8qg #指定pod查看利用率
kubectl top pods -n kube-system #指定命名空间下的资源利用率

工作流程:kubectl top -->所有请求都请求apiserver -->代理metrics-server pod -->kubelet(cadvisor) -->通过cgroups中获取
apiserver聚合成:动态注册,安全代理,方便第三方应用接入,统一接入
cgroups 资源限制位置ls /sys/fs/cgroup/memory/kubepods/

k8s系统的组件日志

k8s Cluster里面部署的应用程序日志

- 标准输出

- 日志文件

1、标准输出路径
/var/log/docker/containers/<container-id>/<container-id>-json.log
2、查看容器标准输出日志
kubectl logs <pod名称>
kubectl logs -f <pod名称>
kubectl logs -f <pod名称> -c <容器名称>
3、容器内应用日志路径
/var/lib/kubelet/pods/<pod-id>/volumes/kubernetes.io~empty-dir/logs/acess.log

例子:

将日志文件通过数据卷挂着到宿主机目录,这样一来就可以在宿主机上统一查看日志了

mkdir /tmp/logs        #每个节点都要创建
kubectl apply -f pod.yaml
kubectl delete pod.yaml #创建错误删除
kubectl get pods -o wide 

vim pod.yaml

apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: web
image: lizhenliang/nginx-php
volumeMounts:
- name: logs
mountPath: /usr/local/nginx/logs #容器中的目录
volumes:
- name: logs
hostPath:
path: /tmp/logs #宿主机的目录
type: Directory

日志收集方案

1、deamonset方式在每个节点部署一个日志采集pod完成讲解的两个目录采集

2、sidecar在pod部署一个日志采集容器,通过数据卷共享业务容器日志目录

3-kubernetes监控与日志管理的更多相关文章

  1. Kubernetes 集群日志管理 - 每天5分钟玩转 Docker 容器技术(180)

    Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理.这是一个 Elasticsearch.Fluentd 和 Kibana 的组合.Elasticsearch ...

  2. Kubernetes 集群日志管理

    Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理.这是一个 Elasticsearch.Fluentd 和 Kibana 的组合.Elasticsearch ...

  3. Kubernetes 集群日志管理 Elasticsearch + fluentd(二十)

    目录 一.安装部署 Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理.这是一个 Elasticsearch.Fluentd 和 Kibana 的组合.Elas ...

  4. Kubernetes 集群日志管理【转】

    Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理.这是一个 Elasticsearch.Fluentd 和 Kibana 的组合.Elasticsearch ...

  5. 日志管理之 Docker logs - 每天5分钟玩转 Docker 容器技术(87)

    高效的监控和日志管理对保持生产系统持续稳定地运行以及排查问题至关重要. 在微服务架构中,由于容器的数量众多以及快速变化的特性使得记录日志和监控变得越来越重要.考虑到容器短暂和不固定的生命周期,当我们需 ...

  6. docker 日志管理

    高效的监控和日志管理对保持生产系统持续稳定地运行以及排查问题至关重要. 在微服务架构中,由于容器的数量众多以及快速变化的特性使得记录日志和监控变得越来越重要.考虑到容器短暂和不固定的生命周期,当我们需 ...

  7. 087、日志管理之 Docker logs (2019-05-09)

    参考https://www.cnblogs.com/CloudMan6/p/7749304.html   高效的监控和日志管理对保持生产系统只需稳定的运行以及排查问题至关重要.   在微服务架构中,由 ...

  8. Kubernetes容器集群管理环境 - Prometheus监控篇

    一.Prometheus介绍之前已经详细介绍了Kubernetes集群部署篇,今天这里重点说下Kubernetes监控方案-Prometheus+Grafana.Prometheus(普罗米修斯)是一 ...

  9. SQL Server中的事务日志管理(9/9):监控事务日志

    当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...

随机推荐

  1. C. News Distribution(并查集)

    In some social network, there are nn users communicating with each other in mm groups of friends. Le ...

  2. String painter (区间dp)

    There are two strings A and B with equal length. Both strings are made up of lower case letters. Now ...

  3. IIS上传文件最大限制问题

    IIS服务器文件最大限制默认是30M. 自定义方法:修改配置文件,路径是:C:\Windows\System32\inetsrv\Config\applicationHost.config 在requ ...

  4. 20190923-02Linux文件目录类 000 010

    pwd 显示当前工作目录的绝对路径 pwd:print working directory 打印工作目录 1.基本语法 pwd (功能描述:显示当前工作目录的绝对路径) 2.案例实操 (1)显示当前工 ...

  5. pytest封神之路第二步 132个命令行参数用法

    在Shell执行pytest -h可以看到pytest的命令行参数有这10大类,共132个 序号 类别 中文名 包含命令行参数数量 1 positional arguments 形参 1 2 gene ...

  6. latex 封面

    latex 封面 代码: \begin{titlepage} \heiti \vspace*{64pt} \begin{center} \fontsize{48pt}{0} XX大学\\ \vspac ...

  7. Java类加载机制()

    Java类加载机制(转载) 概述 在开始正文之前,我们先看两张图 .Java平台的理解?Java最显著的特性?Java是解释执行? 先看一下java程序的执行流程图 再看一下jvm的大致物理结构图 本 ...

  8. oracle数据处理之sql*loader(二)

    目录 SQL*Loader对不同文件及格式的处理方法 2.1 Excel文件 一般的Excel文件最大行数不超过65536行,说明数据处理量并不大,处理Excel的方式是将其另存为CSV格式文件,然后 ...

  9. [程序员代码面试指南]递归和动态规划-换钱的最少货币数(DP,完全背包)

    题目描述 给定arr,arr中所有的值都为正数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim,求组成aim的最少货币数. 解题思路 dp[i][j]表示只用第0 ...

  10. Java Object类方法解析

    Java Object类方法解析 在Java中Object是所有类的父类,任何类都默认继承Object,其提供的方法主要有以下几种: registerNatives() hashCode和equale ...