国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

挖掘Kubernetes 彈性伸縮:利用 KEDA實現基于事件驅動的自動縮放器

云計算 云原生
在本文中,我們利用KADA實現了基于事件的彈性伸縮,更加緊密的擁抱業務,基于服務的“事件”實現伸縮,使得伸縮更加合理,高效。但事實上,針對像Mysql 這類有狀態服務伸縮,如何實現伸縮過程中的數據一致性及可用性是需要各個服務需要考慮的問題,但我相信在不久的將來,有狀態服務的伸縮也可以像現如今的無狀態服務一樣順滑。

簡介與總結

前兩篇關于HPA的文章,我們了解到HPA的實現原理,通過對服務CPU的metrics的監控實現了Deployment的彈性伸縮,我們本篇文章來實現基于事件驅動的HPA,基于事件可以讓HPA更“理解”業務,實現更加基于業務的彈性伸縮。接下來就讓我們一探究竟吧~

KEDA是什么?

KEDA(Kubernetes Event-driven Autoscaling)是云原生計算基金會孵化項目,是一個Kubernetes基于事件驅動的自動縮放器。借助 KEDA,可以根據需要處理的事件數量來驅動 Kubernetes 中任何容器的擴展。KEDA是一個單一用途的輕量級組件,可以部署到任何 Kubernetes 集群中。KEDA 與標準 Kubernetes 組件(例如Horizontal Pod Autoscaler)一起可以擴展K8S功能。借助 KEDA,您可以明確映射要使用事件驅動規模的應用程序,而其他應用程序繼續運行。這讓 KEDA 成為一個靈活且安全的選項,可以與任意數量的任何其他 Kubernetes 應用程序或框架一起運行。下圖展示了 KEDA 如何與 Kubernetes Horizontal Pod Autoscaler、外部事件源和 Kubernetes 的etcd結合使用數據存儲:

圖片圖片

概述: KEDA 使用三個組件來完成其任務:

  • Scaler:連接到外部服務(例如,MYsql)并獲取指標(例如,表的數據量)
  • Operator(代理):負責“激活”一個 Deployment/Stafulset 并創建一個 Horizontal Pod Autoscaler 對象
  • Metrics Adapter:將來自外部源的指標呈現給 Horizontal Pod Autoscaler KEDA Operator 由一個控制器組成,該控制器實現“協調循環”,并充當激活和停用部署以從零擴展或從零擴展的代理。這是由安裝 KEDA 時運行的 KEDA-operator 容器實現的。ScaledObject它通過創建(HPA)對資源的創建做出“反應”并創建Horizontal Pod Autoscaler。

看到這里就大致了解到了KEDA的主要工作是通過獲取各個服務具體的“指標”暴露給HPA以實現彈性擴展。

最佳實踐

描述

上面了解到了KEDA的架構,我們接下來通過安裝Mysql和KEDA,然后創建一個自定義資源 ScaledObject實現對Mysql"事件"的監控,并將指標暴露給HPA,以實現彈性伸縮,接下來就動手試試吧~

安裝KEDA

在K8S集群中部署KEDA,因為我的K8S的版本是1.23,安裝KEDA2.9版本(具體版本配套關系詳見官網keda.sh:

#Including admission webhooks
#kubectl apply --server-side -f https://github.com/kedacore/keda/releases/download/v2.9.3/keda-2.9.3.yaml

查看keda 狀態

# kubectl get po -n keda
NAME                                               READY   STATUS    RESTARTS   AGE
keda-admission-webhooks-5f7cdd4745-7zhxn           1/1     Running   0          4d9h
keda-metrics-apiserver-5c55d5d55f-gwv29            1/1     Running   0          4d9h
keda-operator-c8d6bd9bb-ct978                      1/1     Running   0          4d9h
keda-operator-metrics-apiserver-769bb99569-knh7g   1/1     Running   0          4d9h

安裝Mysql

# helm repo add bitnami https://charts.bitnami.com/bitnami
#helm pull bitnami/mysql
#tar -xf mysql-9.3.3.tgz

#vim mysql/value.yaml
global:
  imageRegistry: ""
  ## E.g.
  ## imagePullSecrets:
  ##   - myRegistryKeySecretName
  ##
  imagePullSecrets: []
  storageClass: "nfs-storage"  ##配置自己的存儲配置,其余可暫不配置

# 開始安裝mysql
#helm install mysql ./mysql -n mysql --create-namespace

# kubectl get po -n mysql
NAME           READY   STATUS    RESTARTS        AGE
mysql-0        1/1     Running   1 (5h29m ago)   5h31m

創建ScaledObject

(詳細描述可參考鏈接)

# cat mysql-example.yaml 
apiVersion: v1
kind: Secret
metadata:
  name: mysql-secrets
  namespace: mysql
type: Opaque
data:
  mysql_conn_str: cm9vdDptcXZkRmFtUWlXQHRjcChteXNxbC5teXNxbC5zdmMuY2x1c3Rlci5sb2NhbDozMzA2KS90ZXN0X2Ri # mysql的connectionString格式 user:password@tcp(mysql:3306)/stats_db base64編碼值
---
apiVersion: keda.sh/v1alpha1
kind: TriggerAuthentication
metadata:
  name: keda-trigger-auth-mysql-secret
  namespace: mysql
spec:
  secretTargetRef:
  - parameter: connectionString
    name: mysql-secrets
    key: mysql_conn_str
---
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: mysql-scaledobject
  namespace: mysql
spec:
  scaleTargetRef:
    kind: statefulset   #擴容的控制器的類型,默認是deployment
    name: mysql
  triggers:
  - type: mysql
    metadata:
      queryValue: "4"   #在 HPA 中用作targetValue或targetAverageValue(取決于觸發指標類型)的閾值。(這個值可以是浮點數)
      query: "SELECT COUNT(*) FROM test;"   #應返回單個數值的 MySQL 查詢,此為本次測試的enent
    authenticationRef:
      name: keda-trigger-auth-mysql-secret

#創建ScaledObject
#kubectl apply -f mysql-example.yaml

#查看ScaledObject
# kubectl get scaledobject -n mysql
NAME                 SCALETARGETKIND       SCALETARGETNAME   MIN   MAX   TRIGGERS   AUTHENTICATION                   READY   ACTIVE   FALLBACK   AGE
mysql-scaledobject   apps/v1.statefulset   mysql                         mysql      keda-trigger-auth-mysql-secret   True    True     False      4h54m

#同時也會創建HPA
# kubectl get hpa -n mysql
NAME                          REFERENCE           TARGETS     MINPODS   MAXPODS   REPLICAS   AGE
keda-hpa-mysql-scaledobject   statefulset/mysql   3/4 (avg)   1         100       1          4h54m

測試

上面的配置中我們以test表中的行數作為"事件",并且閾值為4

#select * from test;
+----+------------+-----------+------------+-------------------+------+----------+
| id | created_at | update_at | panel_name | link              | icon | tag_name |
+----+------------+-----------+------------+-------------------+------+----------+
|  6 | NULL       | NULL      | kubesre    | www.kubesre.com/  | ECS  |          |
|  7 | NULL       | NULL      | kubesre    | www.kubesre.com/  | ECS  |          |
|  8 | NULL       | NULL      | kubesre    | www.kubesre.com/  | ECS  |          |
+----+------------+-----------+------------+-------------------+------+----------+

#添加數據
mysql> INSERT INTO `test` VALUES (1, NULL, NULL, 'kubesre', 'www.kubesre.com/', 'ECS', '');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO `test` VALUES (2, NULL, NULL, 'kubesre', 'www.kubesre.com/', 'ECS', '');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO `test` VALUES (3, NULL, NULL, 'kubesre', 'www.kubesre.com/', 'ECS', '');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO `test` VALUES (4, NULL, NULL, 'kubesre', 'www.kubesre.com/', 'ECS', '');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO `test` VALUES (5, NULL, NULL, 'kubesre', 'www.kubesre.com/', 'ECS', 'Pod');
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+----+------------+-----------+------------+-------------------+------+----------+
| id | created_at | update_at | panel_name | link              | icon | tag_name |
+----+------------+-----------+------------+-------------------+------+----------+
|  1 | NULL       | NULL      | kubesre    | www.kubesre.com/  | ECS  |          |
|  2 | NULL       | NULL      | kubesre    | www.kubesre.com/  | ECS  |          |
|  3 | NULL       | NULL      | kubesre    | www.kubesre.com/  | ECS  |          |
|  4 | NULL       | NULL      | kubesre    | www.kubesre.com/  | ECS  |          |
|  5 | NULL       | NULL      | kubesre    | www.kubesre.com/  | ECS  | Pod      |
|  6 | NULL       | NULL      | kubesre    | www.kubesre.com/  | ECS  |          |
|  7 | NULL       | NULL      | kubesre    | www.kubesre.com/  | ECS  |          |
|  8 | NULL       | NULL      | kubesre    | www.kubesre.com/  | ECS  |          |
+----+------------+-----------+------------+-------------------+------+----------+

# kubectl get hpa -n mysql
NAME                          REFERENCE           TARGETS     MINPODS   MAXPODS   REPLICAS   AGE
keda-hpa-mysql-scaledobject   statefulset/mysql   4/4 (avg)   1         100       2          4h56m

# kubectl get po -n mysql
NAME           READY   STATUS    RESTARTS        AGE
mysql-0        1/1     Running   1 (5h45m ago)   5h47m
mysql-1        0/1     Running   0               55s
由于我集群本身的原因,mysql-1 沒有起來,但是我們看到了今天實驗目的已經成功

結論

在本文中,我們利用KADA實現了基于事件的彈性伸縮,更加緊密的擁抱業務,基于服務的“事件”實現伸縮,使得伸縮更加合理,高效。但事實上,針對像Mysql 這類有狀態服務伸縮,如何實現伸縮過程中的數據一致性及可用性是需要各個服務需要考慮的問題,但我相信在不久的將來,有狀態服務的伸縮也可以像現如今的無狀態服務一樣順滑~

責任編輯:武曉燕 來源: 云原生運維圈
相關推薦

2023-12-21 11:53:34

KubernetesKEDA云原生

2025-05-06 03:10:00

KEDASpringRocketMQ

2022-11-03 08:02:06

KEDA自動縮放云平臺

2023-02-27 08:00:00

KEDA云計算Kubernetes

2023-11-02 08:01:22

2022-09-30 09:16:58

HPACronHPA策略

2019-12-05 09:34:29

KubernetesHPA集群

2022-09-15 08:04:54

k8skubernetes

2022-04-07 09:30:00

自動化LinodeKubernetes

2015-06-29 11:29:08

2009-04-16 17:30:00

可伸縮管理集成

2023-10-07 09:37:53

2023-11-28 09:17:05

Linux編程

2025-06-09 07:30:00

Kubernetes節點自動伸縮集群

2025-04-02 08:55:13

人工智能帖子生成器事件驅動

2016-05-19 13:20:42

彈性伸縮自動擴容騰訊云

2023-02-07 07:25:36

Spring事件驅動

2023-08-22 11:00:16

云計算容器微服務

2012-11-28 11:07:36

IBMdW

2012-06-27 14:40:57

事件驅動擴展
點贊
收藏

51CTO技術棧公眾號

91在线亚洲| 九七影院97影院理论片久久| 成人晚上爱看视频| 2014国产精品| 美女扒开腿让男人桶爽久久动漫| 精品视频偷偷看在线观看| 免费网站看v片在线a| 疯狂做受xxxx欧美肥白少妇| 亚洲国产日韩欧美在线观看| 国产精品综合一区二区| 蜜桃麻豆www久久国产精品| 99久久精品费精品国产| 91大神在线播放精品| 久久99成人| 久久精品视频一| 日韩黄色在线| 久久影院资源网| 精品国产亚洲日本| 久久久精品一区二区三区| 新片速递亚洲合集欧美合集| 亚洲国产精品一区二区三区| 日本中文字幕视频在线| 欧美亚洲丝袜传媒另类| 污视频在线观看免费| 婷婷综合在线观看| 日韩三级电影网| 在线观看日韩国产| 一级毛片视频在线| 日韩一区二区三区免费看 | 五月激情综合网| 最近中文字幕mv2018在线高清 | 久草在线资源站资源站| 日韩写真欧美这视频| 国产精品剧情一区二区在线观看| 欧美日韩国产首页| 欧美78videosex性欧美| 精品福利视频一区二区三区| 菠萝蜜视频在线观看www入口| 日韩激情av在线免费观看| av在线日韩| 欧美激情中文字幕在线| 网红女主播少妇精品视频| 国产a∨精品一区二区三区不卡| 第一会所sis001亚洲| av免费观看久久| 九色|91porny| 搡女人真爽免费午夜网站| 亚洲在线观看免费| 在线观看美女网站大全免费| 亚洲国产小视频| 中文字幕av一区二区三区四区| 国产精品日韩欧美综合| 久久亚洲图片| 日韩欧美黄色大片| 一本久道久久综合中文字幕| 精品精品导航| 麻豆国产精品va在线观看不卡 | 欧美h版在线| 蜜桃臀一区二区三区| 成人永久看片免费视频天堂| 999sesese| 欧美人与禽zozo性伦| 竹内纱里奈兽皇系列在线观看| 久久中文久久字幕| 欧美黄色精品| 特级西西人体www高清大胆| 国产精品入口麻豆九色| av男人的天堂在线| 深夜福利日韩在线看| 99久久亚洲精品蜜臀| 成年人深夜视频| 午夜精品一区二区三区免费视频| 678在线观看视频| 欧美一性一乱一交一视频| av不卡免费看| 亚洲 激情 在线| 亚洲第一区在线| 视频一区欧美| 国产成人亚洲综合无码| 欧美午夜电影在线| 欧美专区视频| 久久久久免费网| 国产精品视频一二三| 亚洲电影视频在线| 国产国语videosex另类| 成人午夜视频免费看| 男人的天堂av高清在线| 免费成人高清视频| 天堂va蜜桃一区二区三区漫画版 | 国产在线观看黄| 九九热精品视频在线播放| 久久精品盗摄| 最新在线你懂的| 不卡中文字幕av| 久久99久久99精品免视看婷婷 | 亚洲视频在线一区二区| 成人小电影网站| 国产欧美日韩一区| 亚洲老司机在线| 欧美天堂一区二区| 日本一区二区三区在线视频 | 成人18网站| 亚洲欧美在线免费观看| 激情欧美一区| 一级毛片免费视频| 欧美疯狂做受xxxx高潮| 久久精品国产亚洲高清剧情介绍| 美国成人av| 26uuu亚洲伊人春色| 国产九色精品成人porny| 菠萝菠萝蜜在线观看| 成人免费网站在线看| 国产精品久久影院| 亚洲青青久久| 欧美一级特黄aaaaaa在线看片| 欧美乱熟臀69xxxxxx| 亚洲欧美一级二级三级| 自拍偷拍电影| 国产精品激情av电影在线观看| 国产午夜精品久久久久久免费视| 成人综合网站| 免费毛片网站在线观看| 国产一区二区三区直播精品电影| 免费看欧美美女黄的网站| av免费看在线| 国产嫩草一区二区三区在线观看| 狠狠躁夜夜躁人人爽天天天天97| 欧美xxav| eeuss影院www在线播放| 国产精品jizz视频| 欧美日韩一级视频| 免费看黄裸体一级大秀欧美| 二区三区在线观看| 亚洲电影一二三区| 日韩成人在线网站| 成人亚洲精品久久久久软件| 国产精品偷拍| 91大学生片黄在线观看| 久久精品一本久久99精品| 国产色产综合产在线视频| 成人av影音| 国产一二区视频| 91午夜在线播放| 欧美精品自拍偷拍动漫精品| 丝袜亚洲另类欧美综合| 乱人伦视频在线| 国产伦精品一区二区三区四区视频_| 中文字幕日韩av电影| 久久久亚洲高清| 青草久久视频| 亚洲有码转帖| 欧美黄色直播| 亚洲一区999| 国产精品女同一区二区三区| 成人亚洲一区二区| 成人av黄色| 黄页免费在线观看视频| 国产91成人video| 在线视频欧美精品| 欧美aⅴ一区二区三区视频| 欧美综合社区国产| 亚欧黄色av| 欧美一区二区视频17c| 亚洲毛茸茸少妇高潮呻吟| 国产性做久久久久久| 欧洲乱码伦视频免费| 麻豆网站在线免费观看| 真人抽搐一进一出视频| 8090成年在线看片午夜| 欧洲一区二区三区免费视频| 九九视频精品免费| 麻豆精品99| 蜜桃视频网站在线观看| 欧美网站免费观看| 成人亚洲激情网| 精品无码久久久久久国产| 国产精品久久久久精k8| 亚洲国产精品一区| 亚洲高清影院| 激情福利在线| 国产老熟妇精品观看| 成人天堂噜噜噜| 一区二区三区精品99久久| 亚洲.国产.中文慕字在线| 九九视频精品免费| 欧美午夜精彩| 忘忧草在线www成人影院| 116美女写真午夜一级久久| 手机看片福利永久国产日韩| 欧美肥臀大乳一区二区免费视频| 欧美日韩综合不卡| 久久嫩草精品久久久精品| 中文字幕日韩一区二区不卡| 午夜久久中文| 一二三中文字幕在线| av日韩在线看| 99久久久精品免费观看国产| 久久视频这里只有精品| 91精品国产欧美一区二区| 国产精品国产成人国产三级|