监控集群资源利用率

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. 理解WEB系统

    网络应用及分类 BS架构:Browser/Server web应用的客户端不需要安装以及升级维护 跨平台 较方便CS架构:Client/Server 客户端应用则需要每个客户端安装和升级 一种系统对应 ...

  2. leetcode刷题-48旋转图像

    题目 给定一个 n × n 的二维矩阵表示一个图像. 将图像顺时针旋转 90 度. 思路 没有想到.看过解答后知道可以转置加翻转即可,且能达到最优的时间复杂度O(N^2). 实现 class Solu ...

  3. cannary

    canary是Linux为防止栈溢出的一种保护机制,接着我们分析glibc对canary的实现过程,首先给出跟canary相关的调用栈: security_init()  //在elf/rtld.c中 ...

  4. 记一次奇怪的cookie丢失

    .net给Image控件设置一个空图片路径的时候出现丢失cookie 比如说, img_path.ImageUrl ="../"+  ds.Tables[0].Rows[0][&q ...

  5. Composer 包版本的范围指定(版本约束)

    1. 包版本范围指定(自动下载版本约束范围中的最新版) 名称 实例 说明 不指定版本 根据当前Path环境变量中的php版本下载最合适的最新版 确切的版本 6.0.1 指定下载的具体版本号 范围 &g ...

  6. Jack Straws(POJ 1127)

    原题如下: Jack Straws Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5555   Accepted: 2536 ...

  7. robotframework安装与运行(ride.py1.7.4.2命令报错)(win10+python3.8.1)

    首先,robotframework必须在python的环境下运行 所以你的电脑里必须有python3.x的环境先. 上古时期的robotframework只支持python2,不过python2都已经 ...

  8. jmeter中接口测试出现乱码或不识别中文解决办法

    在查看结果是中出现乱码时:jmeter的bin目录下的jmeter.properties下最下面添加sampleresult.default.encoding=UTF-8后重新打开工具就好了 在接口的 ...

  9. [LeetCode]105. 从前序与中序遍历序列构造二叉树(递归)、108. 将有序数组转换为二叉搜索树(递归、二分)

    题目 05. 从前序与中序遍历序列构造二叉树 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 题解 使用HashMap记录当前子树根节点在中序遍历中的位置,方便每次 ...

  10. JavaScript中关于获取浏览器可视窗口的几个兼容性写法的理解

    1.浏览器可视窗口的概述: 浏览器可视区域不是网页的body的大小.可视区指的是浏览器减去上面菜单栏.工具栏,下面状态栏和任务栏,右边滚动条(如果有的话)后的中间网页内容的单页面积大小.而body大小 ...