当前位置: 首页 > news >正文

网站自适应 常用尺寸淘客推广方法

网站自适应 常用尺寸,淘客推广方法,国外数码印花图案设计网站,网站后台账号密码忘记了1 概述 KEDA#xff08;Kubernetes-based Event-Driven Autoscaler#xff0c;网址是https://keda.sh#xff09;是在 Kubernetes 中事件驱动的弹性伸缩器#xff0c;功能非常强大。不仅支持根据基础的CPU和内存指标进行伸缩#xff0c;还支持根据各种消息队列中的长度、…1 概述 KEDAKubernetes-based Event-Driven Autoscaler网址是https://keda.sh是在 Kubernetes 中事件驱动的弹性伸缩器功能非常强大。不仅支持根据基础的CPU和内存指标进行伸缩还支持根据各种消息队列中的长度、数据库中的数据统计、QPS、Cron 定时计划以及您可以想象的任何其他指标进行伸缩。KEDA支持的所有scaler可从如下网址里查询 https://keda.sh/docs/2.16/scalers该项目于2020年3月被 CNCF 接收并于2021年8月开始孵化最终在2023年8月宣布毕业目前已经非常成熟可放心在生产环境中使用。 本文介绍在华为云kubernetes中部署keda v2.16.1keda监听redis队列中的长度来伸缩目标deployment的副本数。 2 架构图 KEDA 并不是要替代HPA而是作为HPA的补充或者增强。实际上KEDA 经常与 HPA 一起协同工作。以下是 KEDA 官方的架构图 当要将工作负载的副本数缩到闲时副本数或从闲时副本数开始扩容时由KEDA通过修改工作负载的副本数实现闲时副本数小于 minReplicaCount包括0即可以缩到0。其他情况下的扩缩容过程都由Kubernetes HPA实现HPA被KEDA管理HPA使用External Metrics作为数据源而External Metrics实际的数据由KEDA提供。KEDA 各种Scalers的目的其实就是为HPA暴露External Metrics格式的数据KEDA会将各种外部事件转换为所需的External Metrics数据最终实现HPA读取这些External Metrics数据进行自动伸缩因此KEDA直接复用了HPA 已有的能力如果需要控制扩缩容的行为细节例如快速扩容、缓慢缩容可以直接通过配置 HPA 的 behavior 字段来实现要求 Kubernetes 版本 ≥1.18。 3 环境准备 3.1 华为云kubernetes集群 准备一个kubernetes集群如下图所示 如果你需要KEDA基于传统的CPU和内存来伸缩工作负载则需要为kubernetes集群开启metrics插件。 如果你需要KEDA基于传统的CPU和内存来伸缩工作负载则需要为kubernetes集群开启metrics插件。 如果你需要KEDA基于传统的CPU和内存来伸缩工作负载则需要为kubernetes集群开启metrics插件。 开启metrics插件只需要在华为云kubernetes控制台的插件中心里安装即可如下图 3.2 redis服务 准备一个redis实例如下图所示 4 部署 4.1 部署keda 为helm添加新的repo命令如下 helm repo add kedacore https://kedacore.github.io/charts helm repo update下载values.yaml命令如下 helm show values kedacore/keda values.yaml修改values.yaml文件中的容器镜像方便在国内环境拉取如下所示 image:keda:registry: docker.iorepository: imroc/kedatag: 2.16.1metricsApiServer:registry: docker.iorepository: imroc/keda-metrics-apiserver tag: 2.16.1webhooks:registry: docker.iorepository: imroc/keda-admission-webhookstag: 2.16.1部署keda命令如下所示 helm upgrade --install keda kedacore/keda \ --namespace keda --create-namespace \ -f values.yaml4.2 部署待被伸缩的目标deployment 创建一个零副本的服务如下所示 apiVersion: apps/v1 kind: Deployment metadata:name: php-apachenamespace: default spec:replicas: 0selector:matchLabels:run: php-apachetemplate:metadata:labels:run: php-apachespec:containers:- image: deis/hpa-exampleimagePullPolicy: Alwaysname: php-apacheports:- containerPort: 80protocol: TCPresources:limits:cpu: 100mrequests:cpu: 20m5 创建伸缩对象ScaledObject 创建如下对象 apiVersion: keda.sh/v1alpha1 kind: ScaledObject metadata:name: hpa-appnamespace: default spec:scaleTargetRef: # 扩容目标对象name: php-apachekind: DeploymentapiVersion: apps/v1minReplicaCount: 1 # 最小副本数maxReplicaCount: 6 # 最大副本数triggers: # 触发规则- metadata:address: redis-****.cn-south-1.dcs.myhuaweicloud.com:6379 # Redis地址listName: keda-hpa-demo-list # Redis的列表的key名称listLength: 10 # 触发伸缩的队列长度password: ********your-redis-password********type: redis # 事件源类型为redis6 往redis中的队列添加元素 队列名称为keda-hpa-demo-list往里面添加20个元素命令如下 RPUSH keda-hpa-demo-list value1 value2 value3 value4 value5 value6 value7 value8 value9 value10 RPUSH keda-hpa-demo-list value11 value12 value13 value14 value15 value16 value17 value18 value19 value20 LRANGE keda-hpa-demo-list 0 -17 伸缩现象 查看kubernetes event可见副本数量伸缩为2了。 kubectl get event31m Normal SuccessfulRescale horizontalpodautoscaler/keda-hpa-hpa-app New size: 2; reason: external metric s0-redis-keda-hpa-demo-list(LabelSelector{MatchLabels:map[string]string{scaledobject.keda.sh/name: hpa-app,},MatchExpressions:[]LabelSelectorRequirement{},}) above target仔细发现keda自动创建了HPA对象这个对象里的一些字段是来自如下所示 apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata:annotations:kubectl.kubernetes.io/last-applied-configuration: |{apiVersion:keda.sh/v1alpha1,kind:ScaledObject,metadata:{annotations:{},name:hpa-app,namespace:default},spec:{maxReplicaCount:6,minReplicaCount:1,scaleTargetRef:{apiVersion:apps/v1,kind:Deployment,name:php-apache},triggers:[{metadata:{address:redis-6482e5d4-6f37-4138-ab01-64f7ca6a4a6d.cn-south-1.dcs.myhuaweicloud.com:6379,listLength:10,listName:keda-hpa-demo-list,password:iloveredis2025},type:redis}]}}creationTimestamp: 2025-02-12T14:28:56Zlabels:app.kubernetes.io/managed-by: keda-operatorapp.kubernetes.io/name: keda-hpa-hpa-appapp.kubernetes.io/part-of: hpa-appapp.kubernetes.io/version: 2.16.1scaledobject.keda.sh/name: hpa-appname: keda-hpa-hpa-appnamespace: defaultownerReferences:- apiVersion: keda.sh/v1alpha1blockOwnerDeletion: truecontroller: truekind: ScaledObjectname: hpa-appuid: 795e92f1-da13-4281-a460-9cfe750ec753resourceVersion: 99768uid: 629c14c2-b0a0-4007-8c38-eaa104dc20a2 spec:maxReplicas: 6metrics:- external:metric:name: s0-redis-keda-hpa-demo-listselector:matchLabels:scaledobject.keda.sh/name: hpa-apptarget:averageValue: 10type: AverageValuetype: ExternalminReplicas: 1scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: php-apache status:conditions:- lastTransitionTime: 2025-02-12T14:29:11Zmessage: the HPA controller was able to get the targets current scalereason: SucceededGetScalestatus: Truetype: AbleToScale- lastTransitionTime: 2025-02-12T15:34:36Zmessage: the HPA was unable to compute the replica count: unable to get externalmetric default/s0-redis-keda-hpa-demo-list/LabelSelector{MatchLabels:map[string]string{scaledobject.keda.sh/name:hpa-app,},MatchExpressions:[]LabelSelectorRequirement{},}: unable to fetch metricsfrom external metrics API: rpc error: code Unknown desc error when gettingmetric values error getting scalers connection to redis failed: dial tcp: lookupredis-6482e5d4-6f37-4138-ab01-64f7ca6a4a6d.cn-south-1.dcs.myhuaweicloud.comon 169.254.1.1:53: no such hostreason: FailedGetExternalMetricstatus: Falsetype: ScalingActive- lastTransitionTime: 2025-02-12T14:29:11Zmessage: the desired count is within the acceptable rangereason: DesiredWithinRangestatus: Falsetype: ScalingLimitedcurrentMetrics:- type: currentReplicas: 2desiredReplicas: 2lastScaleTime: 2025-02-12T14:30:11Z同时还创建了external metrics对象如下所示 kubectl get apiservices | grep external.metrics.k8s.iokubectl get apiservice v1beta1.external.metrics.k8s.io -o yamlapiVersion: apiregistration.k8s.io/v1 kind: APIService metadata:annotations:meta.helm.sh/release-name: kedameta.helm.sh/release-namespace: kedacreationTimestamp: 2025-02-12T07:52:48Zlabels:app.kubernetes.io/component: operatorapp.kubernetes.io/instance: kedaapp.kubernetes.io/managed-by: Helmapp.kubernetes.io/name: v1beta1.external.metrics.k8s.ioapp.kubernetes.io/part-of: keda-operatorapp.kubernetes.io/version: 2.16.1helm.sh/chart: keda-2.16.1name: v1beta1.external.metrics.k8s.ioresourceVersion: 47073uid: 0428df85-50ed-4363-9799-f3c03dee88e9 spec:caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0************************DdBPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCggroup: external.metrics.k8s.iogroupPriorityMinimum: 100service:name: keda-operator-metrics-apiservernamespace: kedaport: 443version: v1beta1versionPriority: 100 status:conditions:- lastTransitionTime: 2025-02-12T13:26:19Zmessage: all checks passedreason: Passedstatus: Truetype: Availablekubectl get --raw /apis/external.metrics.k8s.io/v1beta1/namespaces/default/s0-redis-keda-hpa-demo-list?labelSelectorscaledobject.keda.sh%2Fname%3Dhpa-app | jq .可见keda namespace下的keda-operator-metrics-apiserver服务是kube-apiserver的指标类接口的后端也是keda各个scaler的前端网关。 8 小结 通过内置很多scaler的伸缩神器keda以redis队列的长度为依据对目标工作负载deployment进行伸缩开箱即用解决了以往的HPA Controller Prometheus Adaptor Prometheus Exporter的自定义流程。
http://www.hkea.cn/news/14283684/

相关文章:

  • 公司网站英文域名在哪查学校实验室网站建设现状
  • 浙江怎么制作网站网站页头图片
  • 做网站php企业营销网站建设公司哪家好
  • 宿迁做网站多少钱加强网络暴力治理
  • 网站建设链接怎么加上去网站开发获取用户微信号登录
  • 企业网站管理系统排名wordpress 加图片
  • 首钢建设集团山东公司网站申请网站建设经费
  • 秦皇岛做网站优化价格wordpress如何下载
  • 李光辉:营销型企业网站建设的指导思想是什么?腾讯云 云服务器
  • 公司做网站多软件开发流程图例子
  • 网站上线要准备什么网站开发语言 asp
  • eclipse做网站代码o2o平台名称有哪些
  • 晋城客运东站网站开发软件推广渠道
  • 345诛仙网站是谁做的服务号 wordpress
  • 网站开发合同的付款方式wordpress邮箱收不到邮件
  • 微信公司网站wordpress手机内容慢
  • 个人网站建设方案书 范文软文营销的作用
  • 民和网站建设公司大数据平台的整体搭建思路
  • 吉林省工伤保险网站网络营销技巧
  • 网站建设与制作实验报告icp备案综合查询网站
  • 高端型网站建设福州小程序定制
  • 菏泽官方网站网站建设要点
  • 成都网站制作东三环wordpress百度经验
  • 汕头站扩建招标上海网站备案在哪里
  • 职高门户网站建设标准新乡网站建设设计公司哪家好
  • 小企业网站建设的措施苏州公司网页制作
  • 做自己的卡盟网站wordpress主题圆角
  • 商务网站内容维护范围筑成建设集团网站
  • cpc引流做网站cpa推广软文代写
  • 湖南建设监理员报名网站免费的网页服务器