云容器引擎CCE弹性伸缩

CCE弹性伸缩介绍

CCE的弹性伸缩能力分为如下两个维度:

  • 工作负载弹性伸缩:即调度层弹性,主要是负责修改负载的调度容量变化。例如,HPA是典型的调度层弹性组件,通过HPA可以调整应用的副本数,调整的副本数会改变当前负载占用的调度容量,从而实现调度层的伸缩。
  • 节点弹性伸缩:即资源层弹性,主要是集群的容量规划不能满足集群调度容量时,会通过弹出ECS或CCI等资源的方式进行调度容量的补充。

两个维度的弹性组件与能力可以分开使用,也可以结合在一起使用,并且两者之间可以通过调度层面的容量状态进行解耦。

CCE弹性伸缩组件介绍

工作负载弹性伸缩组件介绍

  • HPA:Kubernetes内置组件,实现Pod水平自动伸缩的功能,即Horizontal Pod Autoscaling。在kubernetes社区HPA功能的基础上,增加了应用级别的冷却时间窗和扩缩容阈值等功能。
  • CustomedHPA:华为自研的弹性伸缩增强能力,主要面向无状态工作负载进行弹性扩缩容。能够基于指标(CPU利用率、内存利用率)或周期(每天、每周、每月或每年的具体时间点)。

节点弹性伸缩组件介绍

  • Autoscaler:Kubernetes社区开源组件,节点水平伸缩组件,提供了独有的调度、弹性优化、成本优化的功能。

CCE弹性伸缩实践

1、创建CCE集群

进入华为云控制台,搜索CCE进入云容器引擎CCE控制台界面


选择CCE Standard 集群购买创建

基础配置界面:计费模式选择按需计费,集群名称自行设置,企业项目默认default,集群版本这里默认1.25版本,集群规模50节点,高可用关闭

这里为测试环境配置,生产环境按自有业务选择配置

网络配置界面:网络模型选择VPC网络,虚拟私有云选择自己创建的VPC,容器网段这里选择自动设置网段

这里为测试环境配置,生产环境按自有业务选择配置

高级配置界面:默认不配置

这里为测试环境配置,生产环境按自有业务选择配置

选择下一步进行插件配置

插件配置界面:默认不配置

这里为测试环境配置,生产环境按自有业务选择配置

选择下一步进行规格确认

确认好集群配置,勾选“我已阅读并知晓上述使用说明”,点击提交创建

等待创建成功

2、创建节点池

创建集群完毕后等待集群状态为运行中,选择创建节点池

基础配置界面:节点池名称自行设置,我这里默认名称,节点数量2

这里为测试环境配置,生产环境按自有业务选择配置

计算配置界面:计费模式按需计费,可用区随机分配,节点类型选择弹性云服务器虚拟机,节点规格c7.xlarge.2 4vCPUs|8GiB,容器引擎选择Containerd,操作系统选择公共镜像Huawei Cloud EulerOS 2.0,密码自行设置

这里为测试环境配置,生产环境按自有业务选择配置

存储配置界面:默认不配置

这里为测试环境配置,生产环境按自有业务选择配置

网络配置界面:节点子网自行选择,安全组自行选择,我这里默认,勾选“我确认安全组已设置准确的安全组规则以确保节点之间能正常通信。”

这里为测试环境配置,生产环境按自有业务选择配置

高级配置界面:默认不配置

这里为测试环境配置,生产环境按自有业务选择配置

选择下一步进行规格确认

确认好节点池配置,勾选“我已阅读并知晓上述使用说明和《云容器引擎服务声明》”,点击提交创建

等待创建成功

3、创建有状态负载MySQL

选择工作负载,有状态负载,创建工作负载

基本信息界面:负载类型有状态负载,负载名称mysql,命名空间默认default,实例数量1个,时区同步不开启

这里为测试环境配置,生产环境按自有业务选择配置

容器配置界面:容器名称mysql,镜像选择mysql,镜像版本5.7,环境变量MYSQL_ROOT_PASSWORD、MYSQL_DATABASE、MYSQL_USER、MYSQL_PASSWORD。其余默认不配置。

这里为测试环境配置,生产环境按自有业务选择配置

实例间发现服务配置界面:Service名称自行配置,我这里默认,端口配置端口名称自行配置,服务端口3306,容器端口3306

这里为测试环境配置,生产环境按自有业务选择配置

服务配置和高级配置界面:默认不配置

这里为测试环境配置,生产环境按自有业务选择配置

选择创建负载等待创建成功

4、创建无状态负载WordPress

选择工作负载,无状态负载,创建工作负载

基本信息界面:负载类型无状态负载,负载名称wordpress,命名空间默认default,实例数量2个,时区同步不开启

这里为测试环境配置,生产环境按自有业务选择配置

容器配置界面:容器名称wordpress,镜像选择wordpress,镜像版本php7.1,环境变量WORDPRESS_DB_HOST(前往有状态负载mysql访问方式复制访问地址)、WORDPRESS_DB_USER、WORDPRESS_DBPASSWORD、WORDPRESS_DB_NAME。其余默认不配置。

这里为测试环境配置,生产环境按自有业务选择配置

服务配置界面:Service名称自行设置,访问类型选择节点访问(提前给节点绑定公网EIP),服务亲和选择集群级别,端口配置协议选择TCP,容器端口80,服务端口80,节点端口自动生成

这里为测试环境配置,生产环境按自有业务选择配置

高级配置界面:默认不配置

这里为测试环境配置,生产环境按自有业务选择配置

选择创建负载等待创建成功

5、验证wordpress配置成功

浏览器输入节点弹性EIP加端口登录wordpress配置(提前放通节点安全组端口)

5、安装Autoscaler插件,创建CA策略

选择插件中心,安装CCE集群弹性引擎

默认配置安装

这里为测试环境配置,生产环境按自有业务选择配置

等待安装成功

选择策略,节点伸缩策略,创建节点伸缩策略

策略名称自行设置,关联节点池选择已创建节点池,规则自行设置

这里为测试环境配置,生产环境按自有业务选择配置

等待创建成功

6、进行CA节点弹性伸缩

进行弹性扩容

选择节点管理,弹性伸缩

打开弹性伸缩

选择工作负载,将创建的wordpress负载实例增加实例

查看节点池状态

扩容成功

进行弹性缩容

选择工作负载,将创建的wordpress负载实例改回2个实例

选择节点管理,弹性伸缩

设置缩容条件为2分钟CPU与内存低于50%进行缩容

这里为测试环境配置,生产环境按自有业务选择配置

等待2分钟,查看节点池状态

缩容成功

7、安装metrics-server插件,创建HPA策略

选择插件中心,安装Kubernetes Metrics Server

默认配置安装

这里为测试环境配置,生产环境按自有业务选择配置

等待安装成功

选择策略,HPA策略,创建HPA策略

策略名称自行设置,命名空间默认即可,关联创建的wordpress负载,实例范围1-10,伸缩配置系统默认,系统策略CPU利用率,期待值30%,容忍值20%-40%,内存利用率,期待值30%,容忍值20%-40%

这里为测试环境配置,生产环境按自有业务选择配置

等待创建成功

8、进行HPA工作负载弹性伸缩

弹性扩容

查看现有实例数

进入wordpress容器实例中

运行“i=0 ;while true ; do i=i+1 ; done”命令

等待一段时间,扩容成功

弹性缩容

查看现有实例数

停止命令

等待一段时间,缩容成功

9、安装cce-hpa-controller,创建CustomedHPA策略

选择插件中心,安装CCE容器弹性引擎

默认配置安装

这里为测试环境配置,生产环境按自有业务选择配置

等待安装成功

选择策略,CustomedHPA策略,创建CustomedHPA策略

策略名称自行设置,命名空间默认即可,关联创建的wordpress负载,实例范围1-10,冷却时间1分钟,策略规则设置CPU利用率大于30%,增加1个实例

这里为测试环境配置,生产环境按自有业务选择配置

等待创建成功

10、进行CustomedHPA工作负载弹性伸缩

弹性扩容

查看现有实例数

进入wordpress容器实例中

运行“i=0 ;while true ; do i=i+1 ; done”命令

等待一段时间,扩容成功

弹性缩容

查看现有实例数

停止命令

等待一段时间,缩容成功

11、进行周期定时节点弹性伸缩

选择策略,节点伸缩策略,创建节点伸缩策略

策略名称自行设置,关联创建的节点池,设置每天18:28分增加一个节点

这里为测试环境配置,生产环境按自有业务选择配置

等待一段时间,扩容成功

12、进行周期定时工作负载弹性伸缩

选择策略,CustomedHPA策略,创建CustomedHPA策略

策略名称自行设置,命名空间默认即可,关联创建的wordpress负载,实例范围1-10,冷却时间1分钟,设置每天18:33分增加一个节点

这里为测试环境配置,生产环境按自有业务选择配置

等待一段时间,扩容完成

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

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

相关文章

数据结构进阶篇 之 【堆的应用】(堆排序,TOP-K问题)详细讲解

所有人都关心我飞的高不高,只有我妈关心我翅膀硬不硬 一、堆的应用 1. 堆排序 1.1 建堆 1.2 利用堆删除思想来进行排序 2.TOP-K问题 二、完结撒❀ –❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀-正文开始-❀–❀–❀–❀–❀–❀–❀–❀–…

如何快速有效地压缩图片大小?这款在线工具可保证图片质量

当你需要上传或发送大量图片时,大体积的图片文件往往会让我们感到困扰,如何快速有效的压缩图片大小成了比较关键的问题,在图片压缩时,我们还需要担心的就是会不会对图片质量有损害,想要做到图片无损压缩就需要用到一些…

go和Java该如何选择?

今天,每个企业都需要一个软件应用程序,从初创公司到大型公司如果你想以最有效的方式运行业务,你必须把它列在网上。竞争并没有就此结束 但重要的是您能够以多简单、多快速的方式创建软件应用程序-这是引领竞争的正确方式。 选择最适合您的软…

MegaSeg Pro for Mac v6.3.1 注册激活版 音视频DJ混音工具

MegaSeg Pro for Mac是一款专业的DJ和广播自动化软件,旨在为音乐专业人士提供强大的音乐播放和演播功能。这款软件具有多种功能,包括强大的音乐库管理,支持导入和组织大量音乐文件,可以轻松管理你的音乐收藏。它支持广泛的音频格式…

WPF学习笔记-FlowDocument流文档基础知识和基本操作

文章目录 概述一、块元素和内联元素1.1 块元素(Block类)1.2 内联元素(Inline类)二、Paragraph元素2.1 基本属性设置2.2 将内联元素Inline添加到Inlines中2.3 设置中西文字体不一样 三、Table元素3.1 添加新的Table3.2 添加列3.3 添…

深度学习系列-python实现-初步学习构建神经网络

深度学习系列-python实现-初步学习构建神经网络 前言1.在Keras中加载MNIST数据集2.构建简单的神经网络模型3.训练模型4.模型的预测和评估5.总结 前言 在数字时代,数据已经成为了一种无处不在的资源。从商业分析到科学研究,从人工智能到机器学习&#xf…

固态硬盘一年不通电数据就没了吗?丢失了怎么办

随着数字化时代的到来,数据的安全性和持久性变得尤为重要。作为现代电子设备中常见的存储设备,固态硬盘(SSD)以其高效、快速的特点受到广大用户的青睐。然而,有关固态硬盘长时间不通电后数据会丢失的担忧也时常困扰着用…

报错:AttributeError: module ‘numpy‘ has no attribute ‘unit8‘解决

错误问题: 解决方法: 哥们姐们仔细一点吧这个unit8是打错了,无非就是uint8写成了unit8 应该是【uint8】,以后敲代码仔细点哦

从零开始学数据分析之数据分析概述

当今世界对信息技术的依赖程度在不断加深,每天都会有大量的数据产生,我们经常会感到数据越来越多,但是要从中发现有价值的信息却越来越难。 这里所说的信息,可以理解为对数据集处理之后的结果,是从数据集中提炼出的可用…

【Leetcode】top 100 二分查找

35 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。 基础写法!!!牢记…

清华学霸引爆“长文本”大战,大模型的应用前景清晰了吗?

文 | 智能相对论 作者 | 沈浪 Long-LLM(长文本大模型)时代似乎来得有些突然,而引爆这场热潮的,竟是一家由清华学霸牵头的本土AI初创企业。 前不久,月之暗面(Moonshot AI)公司宣布旗下对话式 …

linux 环境安装配置

安装java17 1.下载安装包 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz 2.解压到自定义目录/usr/local/java mkdir /usr/local/java tar zxvf jdk-17_linux-x64_bin.tar.gz -C /usr/local/java 3.配置环境变量 echo export PATH$PATH:/…

金三银四面试题(十):Java基础问题(1)

这部分面试题多用于面试的热身运动,对很多找实习和准备毕业找工作的小伙伴至关重要。 访问修饰符 在 Java 中,提供了四种访问权限控制: public private protected 以及什么都不写(default) 修饰符当前类同包子包其他…

SSM学习——Spring AOP与AspectJ

Spring AOP与AspectJ 概念 AOP的全称为Aspect-Oriented Programming,即面向切面编程。 想象你是汉堡店的厨师,每一份汉堡都有好几层,这每一层都可以视作一个切面。现在有一位顾客想要品尝到不同风味肉馅的汉堡,如果按照传统的方…

【java】关于String、StringBuffer和StringBuilder的那些事

在之前的文章中我们曾简单介绍过String这个引用类型变量,其实它还有许多特性,还有StringBuffer和StringBuilder这两个方法在字符串操作中也有非常重要的地位,接下来就由小编带大家梳理一下吧👊 目录 一、String 1、构造方法 2、…

独立开发者用微信小程序赚钱

微信小程序能实现赚钱,赚多赚少的问题。 本人就上线了一款小程序 ,集结者assemble ,现在上了广告了,收益不是很多,但胜在持续,税后收入,也还在持续推广中。 开发小程序赚大钱得找到变现模式&a…

0基础学习Mybatis系列数据库操作框架——目录结构

大纲 配置的修改代码的修改Main.java文件所在包下新增org.example.model包新增org.example.mapper包 单元测试 在《0基础学习Mybatis系列数据库操作框架——最小Demo》一文中,我们用最简单的方法组织出一个Mybatis应用项目。为了后续构建更符合日常开发环境的项目&a…

归并排序和分治

归并排序 归并排序是利用归并的思想实现的排序方法,该算法采用经典的分治策略(分治法将问题分成一些小的问题然后递归求解,而治的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 分而治之 可以看到这种结构…

书生浦语全链条开源开放体系

开放了高质量语料数据 预训练 微调 评测 评测框架 部署 智能体 例如把openlab对于计算机视觉的封装

LeetCode-894. 所有可能的真二叉树【树 递归 记忆化搜索 动态规划 二叉树】

LeetCode-894. 所有可能的真二叉树【树 递归 记忆化搜索 动态规划 二叉树】 题目描述:解题思路一:分治,递归解题思路二:动态规划。关键思路是如果构造节点数目为 n 的真二叉树,此时可以从节点数目序列为 [(1,n−2),(3,…