容器的资源需求、资源限制

requeste:需求,最低保障;
limits:资源限制,硬限额;

CPU:
对应1颗逻辑CPU,1颗=1000millicores,500m=0.5CPU
memory:
单位:Ti、Gi、Mi、Ki

pod定义资源使用:

pods.spec.containers.resources.[requeste|limits]
spec:contaners:- name: NAMEimage: IMAGE (stress-ng可以使用压测镜像测试)resources:requests:cpu: "500m"memory: "256Mi"limits:cpu: "1"memory: "512Mi"

Qos(自动归类):

  1. Guranteed:
    优先级最高,同时设置CPU和内存的requestes和limits。
    CPU requests=CPU limits
    memory requests=memory limits
  2. Burstable:
    优先级中等
    至少有一个容器设置CPU或内存资源的requests属性
  3. BestEffort:
    优先级最低
    没有任何一个容器设置requests或limits属性

如果节点资源不足,会有限终止BestEffort POS中的容器,将资源分配给优先级较高的POD
已占用资源与需求量的比例大的,将优先被终止,以比例划分

metrics-server

资源指标:metrics-server
自定义指标:prometheus,k8s-prometheus-adapter

安装metrics-server:

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml

建议使用如下地址yaml文件安装部署:

https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/metrics-server

需修改如下yaml文件内容:

  1. resources文件添加“nodes/stats”

  2. 查看结果:

[root@k8s-master metrics-server]# kubectl top node
NAME         CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
k8s-master   350m         17%    603Mi           68%
k8s-node01   117m         5%     584Mi           65%
[root@k8s-master metrics-server]# kubectl top pod
NAME                         CPU(cores)   MEMORY(bytes)
nginx-app-558fc78868-cnn79   0m           2Mi
nginx-app-558fc78868-xnsd8   0m           2Mi

prometheus安装

kubectl create ns prom
git clone https://github.com/iKubernetes/k8s-prom.git
kubectl apply -f node_exporter/
kubectl apply -f prometheus/
kubectl apply -f kube-state-metrics/
https://github.com/DirectXMan12/k8s-prometheus-adapter/tree/master/deploy/manifests

创建证书:
根据custom-metrics-apiserver-deployment.yaml的volumes.secretName创建secret证书

(umask 077; openssl genrsa -out serving.key 2048)
openssl req -new -key serving.key -out serving.csr -subj "/CN=serving"
openssl x509 -req -in serving.csr -CA ./ca.crt -CAkey ./ca.key -CAcreateserial -out serving.crt -days 3650
kubectl create secret generic cm-adapter-serving-certs --from-file=serving.crt=./serving.crt --from-file=serving.key=./serving.key -n custom-metrics

安装grafana

https://github.com/kubernetes-retired/heapster/blob/master/deploy/kube-config/influxdb/grafana.yaml
  1. 修改APIVersion版本为:apps/v1
  2. 添加selector

    修改grafana数据源:

下载grafana导入模板:

https://grafana.com/grafana/dashboards?search=kubernetes

pod自动伸缩:

HorizontalPodAutoscaler (hpa)

kubectl autoscale deployment myapp --min=1 --max=8 --cpu-percent=60
[root@k8s-master hpa]# cat myhpa_v2.yaml
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:name: myapp-hpa-v2
spec:scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: myappminReplicas: 1maxRepilcas: 10metrica:- type: Resourceresource:name: CPUtargetAverageUtilization: 55- type: Resourceresource:name: memorytargetAverageValue: 50Mi

K8s(八)资源需求、资源限制及使用node-exporter、prometheus、grafana对集群进行监控\pod自动伸缩hpz相关推荐

  1. 自动化运维之k8s——Kubernetes集群部署、pod、service微服务、kubernetes网络通信

    目录 一.Kubernetes简介 1.Kubernetes简介 2.kubernetes设计架构 3.Kubernetes核心组件 4.kubernetes设计结构 二.Kubernetes部署 1 ...

  2. k8s集群核心概念pod

    文章目录 k8s集群核心概念pod 1.pod介绍 什么是pod 网络: 存储: pod的使用 2.pod的生命周期 了解 Init 容器 使用 Init 容器 状态和策略 容器探针的类型 3.查看p ...

  3. 备份k8s_树莓派k8s集群安装kafka集群及监控

    安装准备 树莓派k8s集群 root@pi4-master01:~# kubectl get nodes -o wideNAME STATUS ROLES AGE VERSION INTERNAL-I ...

  4. 大数据数仓项目总结(一)需求、技术选型、框架版本、服务器、集群规模

    文章目录 一.需求描述 1)项目大致需求 2)需考虑的问题 二.项目框架及选型 1.技术选型 2.项目架构与数据流程 3.框架版本选择 1)Hadoop发行版本选择 2)Apache框架版本具体型号 ...

  5. K8S高可用集群架构部署 dashborad插件部署 Nginx实现动静分离 K8S在线升级

    K8S官方文档 注意:该集群每个master节点都默认由kubeadm生成了etcd容器,组成etcd集群.正常使用集群,etcd的集群不能超过一半为down状态. docker的namespace: ...

  6. K8s 从懵圈到熟练-集群伸缩原理

    作者 | 声东  阿里云技术专家 <关注公众号,回复 排查 即可下载电子书> <深入浅出 Kubernetes>一书共汇集 12 篇技术文章,帮助你一次搞懂 6 个核心原理,吃 ...

  7. Kubernates(k8s)工作负载之工作负载资源

    目录 Deployments 用例 创建 Deployment Pod-template-hash 标签 更新 Deployment 翻转(多 Deployment 动态更新) 更改标签选择算符 回滚 ...

  8. k8s资源限制——资源的配额管理(Resource Quotas)

    简介 在k8s集群中为了能够使系统正常稳定运行,通常会限制Pod的资源使用情况,在k8s集群中如果有一个程序出现异常,并占用大量的系统资源.如果未对该Pod进行资源限制的话,可能会影响其他的Pod. ...

  9. 【Kubernetes】k8s的安全管理详细说明【SA配置、k8s安装dashboard、资源限制(resource、limit、resourcequota)】

    文章目录 环境准备 token验证&&kubeconfig验证 role和clusterrole赋权 sa[Service Account] sa总结 1.service accoun ...

最新文章

  1. WPF DataGrid 绑定DataSet数据 自动生成行号
  2. 疫苗有效,先抛股票,今日官宣94.5%结果的Moderna高管早有信心
  3. 小功告成:ReadIE beta
  4. ASP.NET运行环境配置
  5. Zigbee中添加用户任务
  6. Siamese网络(孪生神经网络)详解
  7. 【转】Linux下c++调用自己编写的matlab函数:通过mcc动态链接库.so实现
  8. php递归 返回数组,php 递归 无限级分类并返回数组的例子
  9. VR全景可视化制作小程序功能模块源码v1.0.28
  10. android.view.VelocityTracker
  11. android绘制简单饼状图,Android 绘制饼状图
  12. 【网络安全系列】之新型勒索病毒WannaRen疑在国内大规模传播,威力不亚于新冠
  13. 细菌完成图+比较基因组分析添好文
  14. Hadoop搭建之Centos 7.0系统安装
  15. python爬虫微博评论图片_python爬虫爬取微博评论
  16. 2021年杭州值得去的46家规模互联网大厂公司全名简称
  17. 抖音现在做的竞价推广都是怎么操作的?
  18. Microsoft Word 插件开发——Word外接应用程序开发
  19. shell题库选择题_linux基础shell考试试卷习题.docx
  20. js onclick事件一闪而过解决

热门文章

  1. excel批量导入规则验证
  2. RF 执行测试用例的命令
  3. JavaSE01 Java概述
  4. 输入网址到网页显示的整个流程
  5. LaTeX 中更改单个页面页边距
  6. 平面设计:创建家具图标包
  7. Linux解决Ubuntu中vi编辑方向键不能移动光标的问题
  8. 【HTML思维导图】
  9. Access VBA 学习笔记 技巧
  10. linux屏幕触碰事件,touch事件中的touches、targetTouches和changedTouches详解