kubernetes监控

kubernetets容器资源限制

Kubernetes采用request和limit两种限制类型来对资源进行分配

request(需求资源):即运行Pod的节点必须满足运行Pod的最基本需求才能运行Pod

limit(资源限额):即运行Pod期间,可能内存使用量会增加,可以在yaml文件中设定最多能使用多少内存配置资源限额

资源类型:

CPU的单位是核心数,内存的单位是字节;

一个容器申请0.5个CPU,就相当于申请1个CPU的一半,你也可以加个后缀m表示千分之一的概念;比如说100m的CPU,100豪的CPU和0.1个CPU是一样的

内存单位:

K、M、G、T、P、E             #通常以1000为换算标准

Ki、Mi、Gi、Ti、Pi、Ei        #通常以1024为换算标准

##内存限制示例

如果容器超过设定的内存限制,则会被终止;如果可重新启动,则与所有其他类型的运行时故障一样,kubelet将重新启动它;如果一个容器超过其内存请求,那么当节点内存不足时,它的Pod可能被逐出

##cpu限制示例

##调度失败是因为申请的CPU资源超出集群节点所能提供的资源;但CPU使用率过高,不会被杀死pod

##为namespace设置资源限制

##LimitRange在namespace中施加的最小和最大内存限制只有在创建和更新Pod时才会被应用,改变LimitRange不会对之前创建的Pod造成影响

##为namespace设置资源配额

##命名空间下的资源超出配额后将不能再运行pod

##以上创建的ResourceQuota对象将在default命名空间中添加以下限制:每个容器必须设置内存需求(memory request)、内存限额(memory limit)、cpu需求(cpu request)和cpu限额(cpu limit)

##为Namespace配置Pod配额

##设置Pod配额以限制可以在namespace中运行的Pod数量

kubernetes资源监控

Metrics-Server

Metrics-Server是集群核心监控数据的聚合器,用来替换之前的heapster

容器相关的Metrics主要来自于kubelet内置的cAdvisor服务,有了Metrics-Server之后,用户就可以通过标准的Kubernetes API来访问到这些监控数据

Metrics API只可以查询当前的度量数据,并不保存历史数据;Metrics API URI为/apis/metrics.k8s.io/,在k8s.io/metrics维护;必须部署metrics-server才能使用该API,metrics-server通过调用Kubelet Summary API获取数据

Metrics Server并不是kube-apiserver的一部分,而是通过Aggregator这种插件机制,在独立部署的情况下同kube-apiserver一起统一对外服务的

kube-aggregator其实就是一个根据URL选择具体的API后端的代理服务器

Metrics-server属于Core metrics(核心指标),提供API metrics.k8s.io,仅提供Node和Pod的CPU和内存使用情况,而其他Custom Metrics(自定义指标)由Prometheus等组件来完成

资源下载:https://github.com/kubernetes-incubator/metrics-server

Metrics-server部署:

##下载资源文件

##准备资源文件中所需镜像并上传至私有仓库

##更改资源文件中的镜像指向私有仓库后应用,此时出现以上错误

##由于Pod需要监听1000以下的端口时需要root权限,则修改资源文件中的容器使用端口号

##重新应用文件又有新的X509证书类错误

##启用集群全部节点的TLS Bootstrap证书签发,并重启kubelet服务

##签发所有节点的证书

##以上设置完成后,metrics-server的pod即可成功就绪并运行

Metric Server支持一个参数--kubelet-insecure-tls,可以跳过证书检查,然而官方也明确了这种方式不推荐生产使用

至此Metrics-server即部署完成,测试其监控效果

Dashboard

Dashboard可以给用户提供一个可视化的Web界面来查看当前集群的各种信息;用户可以用Kubernetes Dashboard部署容器化的应用、监控应用的状态、执行故障排查任务以及管理Kubernetes各种资源

网址:https://github.com/kubernetes/dashboard

下载部署文件:https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml

##准备镜像

##应用资源文件

##将dashboard服务的类型修改为loadbalancer,以便在集群外部访问;裸金属环境下外

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值