K8s(八)资源需求、资源限制及使用node-exporter、prometheus、grafana对集群进行监控\pod自动伸缩hpz
容器的资源需求、资源限制
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(自动归类):
- Guranteed:
优先级最高,同时设置CPU和内存的requestes和limits。
CPU requests=CPU limits
memory requests=memory limits - Burstable:
优先级中等
至少有一个容器设置CPU或内存资源的requests属性 - 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文件内容:
resources文件添加“nodes/stats”
查看结果:
[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
- 修改APIVersion版本为:apps/v1
- 添加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相关推荐
- 自动化运维之k8s——Kubernetes集群部署、pod、service微服务、kubernetes网络通信
目录 一.Kubernetes简介 1.Kubernetes简介 2.kubernetes设计架构 3.Kubernetes核心组件 4.kubernetes设计结构 二.Kubernetes部署 1 ...
- k8s集群核心概念pod
文章目录 k8s集群核心概念pod 1.pod介绍 什么是pod 网络: 存储: pod的使用 2.pod的生命周期 了解 Init 容器 使用 Init 容器 状态和策略 容器探针的类型 3.查看p ...
- 备份k8s_树莓派k8s集群安装kafka集群及监控
安装准备 树莓派k8s集群 root@pi4-master01:~# kubectl get nodes -o wideNAME STATUS ROLES AGE VERSION INTERNAL-I ...
- 大数据数仓项目总结(一)需求、技术选型、框架版本、服务器、集群规模
文章目录 一.需求描述 1)项目大致需求 2)需考虑的问题 二.项目框架及选型 1.技术选型 2.项目架构与数据流程 3.框架版本选择 1)Hadoop发行版本选择 2)Apache框架版本具体型号 ...
- K8S高可用集群架构部署 dashborad插件部署 Nginx实现动静分离 K8S在线升级
K8S官方文档 注意:该集群每个master节点都默认由kubeadm生成了etcd容器,组成etcd集群.正常使用集群,etcd的集群不能超过一半为down状态. docker的namespace: ...
- K8s 从懵圈到熟练-集群伸缩原理
作者 | 声东 阿里云技术专家 <关注公众号,回复 排查 即可下载电子书> <深入浅出 Kubernetes>一书共汇集 12 篇技术文章,帮助你一次搞懂 6 个核心原理,吃 ...
- Kubernates(k8s)工作负载之工作负载资源
目录 Deployments 用例 创建 Deployment Pod-template-hash 标签 更新 Deployment 翻转(多 Deployment 动态更新) 更改标签选择算符 回滚 ...
- k8s资源限制——资源的配额管理(Resource Quotas)
简介 在k8s集群中为了能够使系统正常稳定运行,通常会限制Pod的资源使用情况,在k8s集群中如果有一个程序出现异常,并占用大量的系统资源.如果未对该Pod进行资源限制的话,可能会影响其他的Pod. ...
- 【Kubernetes】k8s的安全管理详细说明【SA配置、k8s安装dashboard、资源限制(resource、limit、resourcequota)】
文章目录 环境准备 token验证&&kubeconfig验证 role和clusterrole赋权 sa[Service Account] sa总结 1.service accoun ...
最新文章
- WPF DataGrid 绑定DataSet数据 自动生成行号
- 疫苗有效,先抛股票,今日官宣94.5%结果的Moderna高管早有信心
- 小功告成:ReadIE beta
- ASP.NET运行环境配置
- Zigbee中添加用户任务
- Siamese网络(孪生神经网络)详解
- 【转】Linux下c++调用自己编写的matlab函数:通过mcc动态链接库.so实现
- php递归 返回数组,php 递归 无限级分类并返回数组的例子
- VR全景可视化制作小程序功能模块源码v1.0.28
- android.view.VelocityTracker
- android绘制简单饼状图,Android 绘制饼状图
- 【网络安全系列】之新型勒索病毒WannaRen疑在国内大规模传播,威力不亚于新冠
- 细菌完成图+比较基因组分析添好文
- Hadoop搭建之Centos 7.0系统安装
- python爬虫微博评论图片_python爬虫爬取微博评论
- 2021年杭州值得去的46家规模互联网大厂公司全名简称
- 抖音现在做的竞价推广都是怎么操作的?
- Microsoft Word 插件开发——Word外接应用程序开发
- shell题库选择题_linux基础shell考试试卷习题.docx
- js onclick事件一闪而过解决