kubernetes集群编排——k8s资源监控

news2024/11/27 6:24:25

资源限制

上传镜像

[root@k8s2 limit]# vim limit.yaml
apiVersion: v1
kind: Pod
metadata:
  name: memory-demo
spec:
  containers:
  - name: memory-demo
    image: stress
    args:
    - --vm
    - "1"
    - --vm-bytes
    - 200M
    resources:
      requests:
        memory: 50Mi
      limits:
        memory: 100Mi
[root@k8s2 limit]# kubectl apply -f limit.yaml

[root@k8s2 limit]# kubectl get pod

limitrange

[root@k8s2 limit]# vim range.yaml
apiVersion: v1
kind: LimitRange
metadata:
  name: limitrange-memory
spec:
  limits:
  - default:
      cpu: 0.5
      memory: 512Mi
    defaultRequest:
      cpu: 0.1
      memory: 256Mi
    max:
      cpu: 1
      memory: 1Gi
    min:
      cpu: 0.1
      memory: 100Mi
    type: Container
[root@k8s2 limit]# kubectl apply -f range.yaml

[root@k8s2 limit]# kubectl describe limitranges

创建的pod自动添加限制

[root@k8s2 limit]# kubectl run demo --image nginx

[root@k8s2 limit]# kubectl describe pod demo

自定义限制的pod也需要在limitrange定义的区间内

[root@k8s2 limit]# kubectl apply -f limit.yaml

ResourceQuota

[root@k8s2 limit]# vim quota.yaml
apiVersion: v1
kind: ResourceQuota
metadata:
  name: mem-cpu-demo
spec:
  hard:
    requests.cpu: "2"
    requests.memory: 2Gi
    limits.cpu: "2"
    limits.memory: 2Gi
    pods: "3"
[root@k8s2 limit]# kubectl apply -f quota.yaml

[root@k8s2 limit]# kubectl describe resourcequotas

  1. 配额是针对namespace施加的总限额,命名空间内的所有pod资源总和不能超过此配额
  2. 创建的pod必须定义资源限制

metrics-server

官网:https://github.com/kubernetes-sigs/metrics-server

下载部署文件

[root@k8s2 metrics]# wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

修改部署文件

[root@k8s2 metrics]# vim components.yaml
- --kubelet-insecure-tls

image: metrics-server/metrics-server:v0.6.4

上传镜像到harbor

[root@k8s2 metrics]# kubectl apply -f components.yaml

[root@k8s2 metrics]# kubectl -n kube-system get pod

如有问题,可以查看日志

[root@k8s2 metrics]# kubectl -n kube-system logs metrics-server-5d54764497-7wmjg

[root@k8s2 metrics]# kubectl top node

[root@k8s2 metrics]# kubectl top pod -A --sort-by cpu

dashboard

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

下载部署文件

[root@k8s2 dashboard]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

上传所需镜像到harbor

部署

[root@k8s2 dashboard]# kubectl apply -f recommended.yaml

修改svc

[root@k8s2 dashboard]# kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard

[root@k8s2 dashboard]# kubectl -n kubernetes-dashboard get svc

集群需要部署metallb-system,如果没有可以使用NodePort方式

访问:https:192.168.92.101

授权

[root@k8s2 dashboard]# vim rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
[root@k8s2 dashboard]# kubectl apply -f rbac.yaml

获取token

[root@k8s2 dashboard]# kubectl -n kubernetes-dashboard create token kubernetes-dashboard

使用token登录网页

k9s

解压

[root@k8s2 ~]# tar zxf k9s_Linux_amd64.tar.gz

部署

[root@k8s2 ~]# mv k9s /usr/bin

启动

[root@k8s2 ~]# k9s

hpa

官网:https://kubernetes.io/zh-cn/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/

上传镜像

[root@k8s2 hpa]# vim hpa.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: php-apache
spec:
  selector:
    matchLabels:
      run: php-apache
  replicas: 1
  template:
    metadata:
      labels:
        run: php-apache
    spec:
      containers:
      - name: php-apache
        image: hpa-example
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: 500m
          requests:
            cpu: 200m
---
apiVersion: v1
kind: Service
metadata:
  name: php-apache
  labels:
    run: php-apache
spec:
  ports:
  - port: 80
  selector:
    run: php-apache
[root@k8s2 hpa]# kubectl apply -f hpa.yaml

[root@k8s2 hpa]# kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10

[root@k8s2 hpa]# kubectl get hpa

压测

[root@k8s2 hpa]# kubectl run -i --tty load-generator --rm --image=busybox --restart=Never -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://php-apache; done"

pod负载上升

[root@k8s2 ~]# watch -n1 kubectl top pod

[root@k8s2 ~]# kubectl get hpa

触发hpa扩容pod

结束压测后,默认等待5分钟冷却时间,pod会被自动回收

多项量度指标

[root@k8s2 hpa]# kubectl get hpa php-apache -o yaml > hpa-v2.yaml

修改文件,增加内存指标

[root@k8s2 hpa]# vim hpa-v2.yaml
  - resource:
      name: memory
      target:
        averageValue: 50Mi
        type: AverageValue
    type: Resource

[root@k8s2 hpa]# kubectl apply -f hpa-v2.yaml

[root@k8s2 hpa]# kubectl get hpa

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1188447.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kotlin系列之注解详解

目录 注解:file:JvmName 注解:JvmField 注解:JvmOverloads 注解:JvmStatic 注解:JvmMultifileClass 注解:JvmSynthetic 注解:file:JvmName file:JvmName(“XXX”) 放在类的最顶层&#x…

基于51单片机蓝牙智能控制风扇-proteus仿真-源程序

基于51单片机蓝牙智能控制风扇-proteus仿真-源程序 一、系统方案 1、本设计采用51单片机作为主控器。 2、DS18B20采集温度值送到液晶1602显示。 3、按键设置上下限,自动模式,低于下限,风扇不启动,下限到上限之间,风扇1…

开源知识库软件xwiki在Windows下的安装

文章目录 开源知识库软件-xwiki在windows上的部署0、参考文档1、前置环境准备1.1、Windows版本及系统配置1.2、JDK11安装1.3、Tomcat9安装1.4、MySQL5.7数据库的安装 2、xwiki安装3、配置3.1、修改配置支持对文档内容进行搜索 4、问题解决4.1、附件无法上传问题4.1、附件无法下…

快速搭建开源分布式任务调度系统DolphinScheduler并远程访问

使用Docker部署开源分布式任务调度系统DolphinScheduler 文章目录 使用Docker部署开源分布式任务调度系统DolphinScheduler前言1. 安装部署DolphinScheduler1.1 启动服务 2. 登录DolphinScheduler界面3. 安装内网穿透工具4. 配置Dolphin Scheduler公网地址5. 固定DolphinSchedu…

如何选择一个向量数据库|Qdrant Cloud v.s. Zilliz Cloud

随着向量数据库的热度不断攀升,越来越多人开始关注到这一赛道,传统数据库和检索系统也在快速集成专门的向量检索插件方面展开角逐。Qdrant 因其易用性和用户友好的开发者文档,面世不久即获得关注。 Qdrant 以 Rust 语言构建,提供 …

如何在OpenWRT上安装SFTP并实现公网远程文件传输

文章目录 前言 1. openssh-sftp-server 安装2. 安装cpolar工具3.配置SFTP远程访问4.固定远程连接地址 前言 本次教程我们将在OpenWRT上安装SFTP服务,并结合cpolar内网穿透,创建安全隧道映射22端口,实现在公网环境下远程OpenWRT SFTP&#xf…

基于FPGA的图像RGB转HSV实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1. RGB与HSV色彩空间 4.2. RGB到HSV转换原理 5.算法完整程序工程 1.算法运行效果图预览 将FPGA的仿真结果导入到matlab中: 2.算法运行软件版本 vivado2019.2 matlab2022a …

Leetcode-394 字符串解码(不会,复习)

此题不会!!!!!!!!!!!! 题解思路:元组思想:数字[字符串],每次遇到中括号意味着要重复数字次字符串…

conda清华源安装cuda12.1的pytorch

使用pytorch官方提供的conda command奇慢无比,根本装不下来(科学的情况下也这样) 配置一下清华源使用清华源装就好了 清华源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ 配置方法:conda config --…

OpenAI 工程师平均薪酬 92.5 万美元;SpaceX 明年将每两天发射一次丨 RTE 开发者日报 Vol.81

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

【Git企业开发】第六节.配置 Git和标签管理

文章目录 前言一、配置 Git 1.1 忽略特殊文件 1.2 给命令配置别名二、标签管理 2.1 理解标签 2.2 创建标签 2.3 操作标签 总结 前言 一、配置 Git 1.1 忽略特殊文件 在日常开发中,我们有些文件不想或者不应该提交到远端,…

HGHAC4.2.1开启DCS Failsafe Mode的步骤

瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:4.5.8 文档用途 本文档用于介绍hghac4.2.1版本开启dcs failsafe mode的步骤及验证方法 详细信息 一、新增功能说明 Hghac4.2.1封装自patroni3.…

嵌入式养成计划-51----ARM--ARM汇编指令--内存读写指令--程序状态寄存器传输指令--软中断指令--混合编程

一百二十七、内存读写指令 通过内存读写指令可以实现向内存中写入指定数据或者读取指定内存地址的数据 127.1 单寄存器内存读写指令 将一个寄存器中的数值写入到内存,或者从内存中读取数据放在某一个指定寄存器中 127.1.1 指令码和功能 1. 向内存中写&#xff…

求极限问题:x趋于0时的等价替换及其适用条件、洛必达法

x趋于0时的等价替换及其适用条件 等价无穷小的定义: 若 lim ⁡ β α 1 \lim\dfrac{\beta}{\alpha}1 limαβ​1,则 β \beta β 与 α \alpha α 是等价无穷下的,记作 α ∼ β \alpha \sim \beta α∼β. 即当两个函数相比取极限&…

数据结构与算法(Java版) | 万字详解算法的时间复杂度

下面我们用一个问题来引出算法的时间复杂度这一概念。 该问题是,怎么去衡量一个程序(或者算法)的执行时间呢?就拿我们刚刚讲的排序算法来说,排序算法这么多,你又如何知晓哪一个排序算法执行的时间谁长谁短…

【ElasticSearch系列-07】ES的开发场景和索引分片的设置及优化

ElasticSearch系列整体栏目 内容链接地址【一】ElasticSearch下载和安装https://zhenghuisheng.blog.csdn.net/article/details/129260827【二】ElasticSearch概念和基本操作https://blog.csdn.net/zhenghuishengq/article/details/134121631【三】ElasticSearch的高级查询Quer…

如何制作产品图册?教你一招,轻松制作

制作产品图册是许多企业都会做的一项工作,它可以帮助企业更好地展示自己的产品,提高品牌形象和销售业绩。但是,如何制作一本高质量的产品图册呢?今天,我就来分享一些实用的技巧和方法,帮助你轻松制作一本精…

java实现前后端分离文件下载

前言,这里用的是springbootvue前后端分离 首先我们把需要下载的文件放入到resource目录下面 RestController RequestMapping("/excelDown") Slf4j public class InvestExcelDownController {//下载模板PostMapping("/download")public void dow…

SOME/IP 协议介绍(三)参数和数据结构的序列化

参数和数据结构的序列化 序列化是基于接口规范定义的参数列表。为了允许服务接口的迁移,反序列化,代码应忽略附加在先前已知的参数列表末尾的参数;也就是说,忽略在用于生成或参数化反序列化代码的接口规范中未定义的参数。 接口…

java动态设置注解值

描述:在运行时根据需求更改注解中的值 一、步骤 1.定义类 public class CadreListQueryDTO extends CadreBaseQueryDTO {/*** 出国事由*/QueryField(field "A21.a2114",type QueryField.LIKE)private String a2114; }2.定义方法进行动态设置 /*** 动…