国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

k8s 1.23.10 動(dòng)態(tài)POD擴(kuò)縮容(HPA )

這篇具有很好參考價(jià)值的文章主要介紹了k8s 1.23.10 動(dòng)態(tài)POD擴(kuò)縮容(HPA )。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

為什么要自動(dòng)擴(kuò)縮容?

再K8S中擴(kuò)容分為兩種:

一、Node層面:

二、Pods層面:

自動(dòng)擴(kuò)縮容的方案有哪些

Kubernetes HPA (Horizontal Pod Autoscaling)

Kubernetes KPA (Knative Pod Autoscaler)

Kubernetes VPA (Vertical Pod Autoscaler)

基于HPA進(jìn)行POD的擴(kuò)縮容

kube-apiserver 配置:

安裝metrcs-server與addon-resizer

創(chuàng)建一個(gè)用于測(cè)試hpa的鏡像 Dockerfile

使用Deployment部署一個(gè) php-apache 服務(wù)

創(chuàng)建HPA-基于CPU

測(cè)試擴(kuò)容-CPU

創(chuàng)建HPA-基于內(nèi)存

同時(shí)基于內(nèi)存與CPU


HPA官方文檔地址:官方文檔地址

為什么要自動(dòng)擴(kuò)縮容?

? ? 在實(shí)際的業(yè)務(wù)場(chǎng)景中,我們經(jīng)常會(huì)遇到某個(gè)服務(wù)需要擴(kuò)容的場(chǎng)景(例如:測(cè)試對(duì)服務(wù)器壓測(cè),電商平臺(tái)秒殺、大促活動(dòng)、或由于資源緊張、工作負(fù)載降低等都需要對(duì)服務(wù)實(shí)例數(shù)量擴(kuò)容操作)。

再K8S中擴(kuò)容分為兩種:

一、Node層面:

? ? ? ? 再使用kubenetes 集群經(jīng)常問(wèn)道的一個(gè)問(wèn)題是,我應(yīng)該保持多大的節(jié)點(diǎn)規(guī)模來(lái)滿足應(yīng)用需求呢?cluster-autoscaler 的出現(xiàn)解決了這個(gè)問(wèn)題,可以通過(guò)cluster-autoscaler 實(shí)現(xiàn)節(jié)點(diǎn)級(jí)別的動(dòng)態(tài)添加與刪除,動(dòng)態(tài)調(diào)整容器資源池,應(yīng)對(duì)峰值流量

二、Pods層面:

? ? ? ??一般會(huì)使用Deployment中的 replicas參數(shù),設(shè)置多個(gè)副本集來(lái)保證服務(wù)的高可用,但是這是一個(gè)固定的值,比如我們?cè)O(shè)置10個(gè)副本,就會(huì)啟動(dòng)10個(gè)pod 同時(shí) running 來(lái)提供服務(wù)。

? ? ? ? 如果這個(gè)服務(wù)平時(shí)流量很少的時(shí)候,也是10個(gè)pod同時(shí)running,就會(huì)造成資源浪費(fèi),而流量突然暴增時(shí),又出現(xiàn)了10個(gè)pod 不夠用的情況。針對(duì)這種情況怎么辦》 就需要自動(dòng)擴(kuò)縮容。

自動(dòng)擴(kuò)縮容的方案有哪些

Kubernetes HPA (Horizontal Pod Autoscaling)

? ? 通過(guò)此功能,只需要簡(jiǎn)單的配置,便可以利用監(jiān)控指標(biāo)(CPU、內(nèi)存、磁盤(pán)、自定義等) 自動(dòng)的擴(kuò)容或者縮容服務(wù)中的POD數(shù)量,當(dāng)業(yè)務(wù)需求增加時(shí),系統(tǒng)將無(wú)縫地自動(dòng)增加適量的pod容器,提升系統(tǒng)穩(wěn)定性。

Kubernetes KPA (Knative Pod Autoscaler)

? ? 基于請(qǐng)求數(shù)對(duì)POD自動(dòng)擴(kuò)縮容,KPA的主要限制在于它不支持基于CPU的自動(dòng)擴(kuò)縮容。

Kubernetes VPA (Vertical Pod Autoscaler)

? ? 垂直 Pod 自動(dòng)擴(kuò)縮容,VPA會(huì)基于Pod的資源使用情況自動(dòng)為集群設(shè)置資源占用的限制,從而讓集群將Pod 調(diào)度到有足夠資源的最佳節(jié)點(diǎn)上。VPA也會(huì)保持最初容器定義中資源request 和 limit的占比。

? ? 它會(huì)根據(jù)容器資源使用率自動(dòng)設(shè)置POD 的CPU 和內(nèi)存的 requests,從而允許再節(jié)點(diǎn)上進(jìn)行適當(dāng)?shù)恼{(diào)度,以便為每個(gè)Pod 提供適當(dāng)?shù)目捎玫墓?jié)點(diǎn)。它既可以縮小過(guò)度請(qǐng)求資源的容器,也可以根據(jù)其使用情況隨時(shí)提升資源的容量。

基于HPA進(jìn)行POD的擴(kuò)縮容

? ? K8S的HPA controller 已經(jīng)實(shí)現(xiàn)了一套簡(jiǎn)單的自動(dòng)擴(kuò)縮容邏輯,默認(rèn)情況下,每30s檢測(cè)一次指標(biāo),只要檢測(cè)到了配置HPA的目標(biāo)值,則會(huì)計(jì)算出預(yù)期的工作負(fù)載的副本數(shù),再進(jìn)行擴(kuò)容操作。同時(shí)為了避免過(guò)于頻繁的擴(kuò)縮容,默認(rèn)再 5min 內(nèi)沒(méi)有重新擴(kuò)縮容的情況下,才會(huì)觸發(fā)擴(kuò)縮容。

? ? HPA 本身的算法相對(duì)比較保守,可能并使用與很多場(chǎng)景。例如,一個(gè)快速流量突發(fā)場(chǎng)景,如果正處在5min內(nèi)的HPA穩(wěn)定器,這個(gè)時(shí)候很具HPA的策略,會(huì)導(dǎo)致無(wú)法擴(kuò)容(通過(guò)實(shí)驗(yàn)擴(kuò)容是很快速的,并非等了5分鐘,但是縮容等了5分鐘,這個(gè)時(shí)間是可以更改的)

kube-apiserver 配置:

注意這個(gè)是 k8s 在 1.17 的新特性,如果是 1.16 版本的可以不用添加,1.17 以后要添加。這個(gè)參 數(shù)的作用是 Aggregation 允許在不修改 Kubernetes 核心代碼的同時(shí)擴(kuò)展 Kubernetes API。?

vim kube-apiserver.yaml
- --enable-aggregator-routing=true   #添加該行內(nèi)容

k8s 1.23.10 動(dòng)態(tài)POD擴(kuò)縮容(HPA )

重新更新ApiServer 配置(?。?!):

#查看下配置
ps -ef |grep ? enable-aggregator-routing

#不存在則更新下
kubectl apply -f /etc/kubernetes/manifests/kube-apiserver.yaml
kubectl delete pods kube-apiserver -n kube-system

#再次查看配置
ps -ef |grep ? enable-aggregator-routing

k8s 1.23.10 動(dòng)態(tài)POD擴(kuò)縮容(HPA )

安裝metrcs-server與addon-resizer

kubectl  apply -f metrics.yaml
kubectl  get  pod  -n kube-system
metrics-server-7f546bc689-7m2zm            2/2     Running   0

?metrics.yaml:

#RBAC授權(quán)
#集群綁定角色到SA賬號(hào)
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: metrics-server:system:auth-delegator
  labels:
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: system:auth-delegator
subjects:
- kind: ServiceAccount
  name: metrics-server
  namespace: kube-system
---
#角色綁定SA賬號(hào)
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: metrics-server-auth-reader
  namespace: kube-system
  labels:
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: extension-apiserver-authentication-reader
subjects:
- kind: ServiceAccount
  name: metrics-server
  namespace: kube-system
---
#定義SA賬號(hào)
apiVersion: v1
kind: ServiceAccount
metadata:
  name: metrics-server
  namespace: kube-system
  labels:
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
---
#定義集群權(quán)限
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: system:metrics-server
  labels:
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
rules:
- apiGroups:
  - ""
  resources:
  - pods
  - nodes
  - nodes/stats
  - namespaces
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - "extensions"
  resources:
  - deployments
  verbs:
  - get
  - list
  - update
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: system:metrics-server
  labels:
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: system:metrics-server
subjects:
- kind: ServiceAccount
  name: metrics-server
  namespace: kube-system
---

#ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
  name: metrics-server-config
  namespace: kube-system
  labels:
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: EnsureExists
data:
  NannyConfiguration: |-
    apiVersion: nannyconfig/v1alpha1
    kind: NannyConfiguration
---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: metrics-server
  namespace: kube-system
  labels:
    k8s-app: metrics-server
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
    version: v0.4.1
spec:
  selector:
    matchLabels:
      k8s-app: metrics-server
      version: v0.4.1
  template:
    metadata:
      name: metrics-server
      labels:
        k8s-app: metrics-server
        version: v0.4.1
    spec:
      priorityClassName: system-cluster-critical
      serviceAccountName: metrics-server
      containers:
      - name: metrics-server
        image: rancher/metrics-server:v0.4.1-amd64  #dockerhub鏡像
        imagePullPolicy: IfNotPresent
        command:
        - /metrics-server
        - --metric-resolution=30s
        - --kubelet-preferred-address-types=InternalIP
        - --kubelet-insecure-tls
        - --cert-dir=/tmp
        - --secure-port=4443   
        ports:
        - containerPort: 4443
          name: https
          protocol: TCP
      - name: metrics-server-nanny
        image: k8s.gcr.io/addon-resizer:1.8.4    #
        imagePullPolicy: IfNotPresent
        resources:
          limits:
            cpu: 100m
            memory: 300Mi
          requests:
            cpu: 5m
            memory: 50Mi
        env:
          - name: MY_POD_NAME
            valueFrom:
              fieldRef:
                fieldPath: metadata.name
          - name: MY_POD_NAMESPACE
            valueFrom:
              fieldRef:
                fieldPath: metadata.namespace
        volumeMounts:
        - name: metrics-server-config-volume
          mountPath: /etc/config
        command:
          - /pod_nanny
          - --config-dir=/etc/config
          - --cpu=300m
          - --extra-cpu=20m
          - --memory=200Mi
          - --extra-memory=10Mi
          - --threshold=5
          - --deployment=metrics-server
          - --container=metrics-server
          - --poll-period=300000
          - --estimator=exponential
          - --minClusterSize=2
      volumes:
        - name: metrics-server-config-volume
          configMap:
            name: metrics-server-config
      tolerations:
        - key: "CriticalAddonsOnly"
          operator: "Exists"
        - key: node-role.kubernetes.io/master
          effect: NoSchedule
---
apiVersion: v1
kind: Service
metadata:
  name: metrics-server
  namespace: kube-system
  labels:
    addonmanager.kubernetes.io/mode: Reconcile
    kubernetes.io/cluster-service: "true"
    kubernetes.io/name: "Metrics-server"
spec:
  selector:
    k8s-app: metrics-server
  ports:
  - port: 443
    protocol: TCP
    targetPort: https
---
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
  name: v1beta1.metrics.k8s.io
  labels:
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
spec:
  service:
    name: metrics-server
    namespace: kube-system
  group: metrics.k8s.io
  version: v1beta1
  insecureSkipTLSVerify: true
  groupPriorityMinimum: 100
  versionPriority: 100

查看POD與Node資源使用情況

#查看ingress-nginx名稱(chēng)空間下的pod資源使用
kubectl  top  pod  -n  ingress-nginx 
NAME                                        CPU(cores)   MEMORY(bytes)   
ingress-nginx-controller-5cd767794b-qqrms   3m           91Mi  

#查看node節(jié)點(diǎn)的資源使用
kubectl  top  node
NAME           CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
test-master    207m         5%     3923Mi          53%       
test-slave-1   187m         4%     5096Mi          69%

創(chuàng)建一個(gè)用于測(cè)試hpa的鏡像 Dockerfile

FROM php:5-apache
ADD index.php /var/www/html/index.php
RUN chmod a+rx index.php

# index.php 文件內(nèi)容
<?php
  $x = 0.0001;
  for ($i = 0; $i <= 1000000;$i++) {
    $x += sqrt($x);
  }
  echo "OK!";
?>


#構(gòu)建Docker 鏡像
docker build -t k8s.gcr.io/hpa-example:v1 .
docker save -o hpa-example.tar.gz k8s.gcr.io/hpa-example:v1 

可以把鏡像傳到 k8s 的工作節(jié)點(diǎn),通過(guò) docker load -i hpa-example.tar.gz 進(jìn)行解壓:
docker load -i hpa-example.tar.gz

使用Deployment部署一個(gè) php-apache 服務(wù)?php-apache.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:
      nodeName: test-slave-1   #再指定節(jié)點(diǎn)上創(chuàng)建Pod
      containers:
      - name: php-apache
        image: k8s.gcr.io/hpa-example:v1
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: 500m   #最大使用0.5核CPU
            memory: 200Mi
          requests:
            cpu: 200m   #調(diào)用節(jié)點(diǎn)最小要有 0.2核CPU
            memory: 200Mi
---
apiVersion: v1
kind: Service
metadata:
    name: php-apache
    labels:
      run: php-apache
spec:
  ports:
  - port: 80
  selector:
   run: php-apache

更新資源清單文件

kubectl  apply -f php-apache.yaml
#查看pod狀態(tài)
kubectl  get pod |grep   php-apache
NAME                          READY   STATUS    RESTARTS   AGE
php-apache-5cbf8c9567-cfq6q   1/1     Running   0          5s

創(chuàng)建HPA-基于CPU

php-apache 服務(wù)正在運(yùn)行,使用 kubectl autoscale 創(chuàng)建自動(dòng)縮放器,實(shí)現(xiàn)對(duì) php-apache 這個(gè)Deployment創(chuàng)建的Pod 自動(dòng)擴(kuò)縮容下面的命令將會(huì)創(chuàng)建一個(gè)HPA,HPA將會(huì)根據(jù)CPU。內(nèi)存等資源指標(biāo)增加或者減少副本數(shù),創(chuàng)建一個(gè)可以實(shí)現(xiàn)如下目的的HPA:

1) 讓副本數(shù)維持再1-10 個(gè)之間 (這里副本數(shù)指的是通過(guò)Deployment 部署 pod 的副本數(shù))

2) 將所有 pod 的平均CPU 使用率位置在 50% (通過(guò) kubectl run 運(yùn)行的Pod 如果是200毫核,這意味著平均CPU利用率為100毫核)

為 php-apache 這個(gè) deployment 創(chuàng)建一個(gè)HPA

#基于CPU
kubectl  autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10

參數(shù)解析:

--cpu-percent=50 標(biāo)識(shí)CPU使用率不超過(guò)50%

--min=1 最少一個(gè)pod

--max=10 最多是個(gè)pod

驗(yàn)證HPA是否創(chuàng)建成功

kubectl get hpa

k8s 1.23.10 動(dòng)態(tài)POD擴(kuò)縮容(HPA )

?注:由于我們沒(méi)有向服務(wù)器發(fā)送任何請(qǐng)求,因此當(dāng)前 CPU 消耗為 0%(TARGET 列顯示了由相應(yīng) 的 deployment 控制的所有 Pod 的平均值)

測(cè)試擴(kuò)容-CPU

#運(yùn)行一個(gè)pod
kubectl run v1 -it --image=busybox --image-pull-policy=IfNotPresent /bin/sh

#登錄到容器之后,執(zhí)行如下命令
while true; do wget -q -O- http://php-apache.default.svc.cluster.local; done


#在一分鐘左右的時(shí)間內(nèi),我們通過(guò)執(zhí)行以下命令來(lái)看到更高的 CPU 負(fù)載
kubectl  top pod 
NAME                          CPU(cores)   MEMORY(bytes)   
php-apache-5cbf8c9567-cfq6q   502m         8Mi             
v1                            6m           0Mi      

#查看hpa
kubectl  get hpa
NAME         REFERENCE               TARGETS    MINPODS   MAXPODS   REPLICAS   AGE
php-apache   Deployment/php-apache   251%/50%   1         10        1          6m39s

#查看POD數(shù)量
[root@test-master ~]# kubectl  top  pod 
NAME                          CPU(cores)   MEMORY(bytes)   
php-apache-5cbf8c9567-2g9rh   111m         9Mi             
php-apache-5cbf8c9567-c46mw   102m         8Mi             
php-apache-5cbf8c9567-cfq6q   105m         8Mi             
php-apache-5cbf8c9567-d7clq   106m         8Mi             
php-apache-5cbf8c9567-hcjqt   112m         8Mi             
php-apache-5cbf8c9567-jhmx7   105m         8Mi             
php-apache-5cbf8c9567-rnkxf   112m         8Mi             
php-apache-5cbf8c9567-tkhfr   108m         8Mi 

#停止壓測(cè)觀察5分鐘后pod是否縮容

[root@test-master ~]# kubectl  top  pod 
NAME                          CPU(cores)   MEMORY(bytes)   
php-apache-5cbf8c9567-cfq6q   1m           8Mi             
v1                            0m           0Mi   

創(chuàng)建HPA-基于內(nèi)存

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: hpa-v2
spec:
  minReplicas: 1
  maxReplicas: 10
  scaleTargetRef: 
    apiVersion: apps/v1
    kind: Deployment
    name: php-apache
  metrics:
  - resource:
      name: memory
      target:
        type: Utilization
        averageUtilization: 50
    type: Resource
kubectl  exec -it php-apache-7d8fdb687c-b78m9 -- /bin/bash
#進(jìn)行壓測(cè)
dd if=/dev/zero of=/tmp/a

同時(shí)基于內(nèi)存與CPU-定義擴(kuò)縮容策略

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: hpa-v2
spec:
  minReplicas: 1
  maxReplicas: 10
  scaleTargetRef: 
    apiVersion: apps/v1
    kind: Deployment
    name: php-apache
  metrics:
  - resource:
      name: memory
      target:
        type: Utilization
        averageUtilization: 50
    type: Resource
  - resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 50
    type: Resource
  #定義擴(kuò)縮容策略
  behavior:
    #縮容策略(縮容是每5分鐘縮容1個(gè)pods)
    scaleDown:
      policies:
      - type: pods
        value: 1
        periodSeconds: 300  #單位是秒
    #擴(kuò)容策略(觸發(fā)擴(kuò)容時(shí),立即新增9(900%*100%)倍的副本數(shù),即立即擴(kuò)容pod到當(dāng)前的10倍的pod數(shù)量)
    scaleUp:
      policies:
      - type: percent
        value: 900%

擴(kuò)展:

其他參數(shù)參考官方文檔: controller-manager啟動(dòng)文件hpa參數(shù)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-455747.html

--horizontal-pod-autoscaler-initial-readiness-delay=30s,這是首次探測(cè)Pod是否Ready的延時(shí)時(shí)間,默認(rèn)30s
--horizontal-pod-autoscaler-cpu-initialization-period=10s,設(shè)置首次采集pod的CPU使用率延遲時(shí)間,默認(rèn)5分鐘

--horizontal-pod-autoscaler-downscale-stabilization=1m0s,這個(gè)配置可以讓系統(tǒng)更平滑的進(jìn)行縮容操作,默認(rèn)值5min

到了這里,關(guān)于k8s 1.23.10 動(dòng)態(tài)POD擴(kuò)縮容(HPA )的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • k8s擴(kuò)縮容與滾動(dòng)更新

    k8s擴(kuò)縮容與滾動(dòng)更新

    使用kubectl run創(chuàng)建 應(yīng)用 端口暴露出去 使用kubectl? create 創(chuàng)建應(yīng)用 端口暴露出去 run 與 create 區(qū)別: run 為一次性的創(chuàng)建運(yùn)行,刪除后不會(huì)自動(dòng)生成,沒(méi)有 pod 控制器 create 創(chuàng)建的,刪除后還會(huì)自動(dòng)生成,有 pod 控制器,擁有副本集控制 scale 應(yīng)用 默認(rèn)情況下 應(yīng)用只會(huì)運(yùn)行一個(gè)副

    2024年02月12日
    瀏覽(46)
  • 基于k8s Deployment的彈性擴(kuò)縮容及滾動(dòng)發(fā)布機(jī)制詳解

    基于k8s Deployment的彈性擴(kuò)縮容及滾動(dòng)發(fā)布機(jī)制詳解

    k8s第一個(gè)重要設(shè)計(jì)思想:控制器模式。k8s里第一個(gè)控制器模式的完整實(shí)現(xiàn):Deployment。它實(shí)現(xiàn)了k8s一大重要功能:Pod的“水平擴(kuò)展/收縮”(horizontal scaling out/in)。該功能從PaaS時(shí)代開(kāi)始就是一個(gè)平臺(tái)級(jí)項(xiàng)目必備編排能力。 若你更新了Deployment的Pod模板(如修改容器的鏡像),則

    2024年02月03日
    瀏覽(26)
  • k8s---pod的水平自動(dòng)伸縮HPA

    k8s---pod的水平自動(dòng)伸縮HPA

    HPA:Horizontal Pod Autoscaling是pod的水平自動(dòng)伸縮。是k8s自帶的模塊 pod占用CPU的比率到達(dá)一定的閾值會(huì)觸發(fā)伸縮機(jī)制。 replication controller:副本控制器。控制pod的副本數(shù) deployment controller:節(jié)點(diǎn)控制器。部署pod hpa控制副本的數(shù)量以及控制如何部署pod hpa基于kube-controller-manager服務(wù)。周

    2024年01月24日
    瀏覽(25)
  • HPA (Horizontal Pod Autoscaler) In K8s

    沒(méi)準(zhǔn)正在建設(shè)中哈哈哈 作為一位城市觀察者和設(shè)計(jì)師,我想借助Kubernetes的HPA機(jī)制思想來(lái)描述城市紅綠燈自動(dòng)調(diào)節(jié)的場(chǎng)景。 在這個(gè)故事中,我們的城市面臨著日益增長(zhǎng)的交通流量和擠塞問(wèn)題。為了應(yīng)對(duì)這一挑戰(zhàn),城市決定引入智能化紅綠燈系統(tǒng),以更好地管理交通流量和提高

    2024年02月07日
    瀏覽(42)
  • 第15關(guān) K8s HPA:自動(dòng)水平伸縮Pod,實(shí)現(xiàn)彈性擴(kuò)展和資源優(yōu)化

    第15關(guān) K8s HPA:自動(dòng)水平伸縮Pod,實(shí)現(xiàn)彈性擴(kuò)展和資源優(yōu)化

    ------ 課程視頻同步分享在今日頭條和B站 大家好,我是博哥愛(ài)運(yùn)維,這節(jié)課帶來(lái)k8s的HPA 自動(dòng)水平伸縮pod( 視頻后面有彩蛋 : ) )。 我們知道,初始Pod的數(shù)量是可以設(shè)置的,同時(shí)業(yè)務(wù)也分流量高峰和低峰,那么怎么即能不過(guò)多的占用K8s的資源,又能在服務(wù)高峰時(shí)自動(dòng)擴(kuò)容pod的

    2024年02月05日
    瀏覽(30)
  • 24-k8s的附件組件-Metrics-server組件與hpa資源pod水平伸縮

    24-k8s的附件組件-Metrics-server組件與hpa資源pod水平伸縮

    ? ? ? ? Metrics-Server組件目的:獲取集群中pod、節(jié)點(diǎn)等負(fù)載信息; ? ? ? ? hpa資源目的:通過(guò)metrics-server獲取的pod負(fù)載信息,自動(dòng)伸縮創(chuàng)建pod; 參考鏈接: 資源指標(biāo)管道 | Kubernetes https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/metrics-server GitHub - kubernetes-sigs/metrics-server:

    2024年02月21日
    瀏覽(26)
  • Kuibernetes 如何根據(jù)不同業(yè)務(wù)場(chǎng)景調(diào)節(jié) HPA 擴(kuò)縮容靈敏度

    在 K8s?1.18 之前,HPA 擴(kuò)容是無(wú)法調(diào)整靈敏度的: 對(duì)于縮容,由? kube-controller-manager ?的? --horizontal-pod-autoscaler-downscale-stabilization-window ?參數(shù)控制縮容時(shí)間窗口,默認(rèn) 5 分鐘 ,即負(fù)載減小后至少需要等 5 分鐘才會(huì)縮容。 對(duì)于擴(kuò)容,由 hpa controller 固定的算法、硬編碼的常量因子

    2024年02月14日
    瀏覽(20)
  • 修改k8s pod的掛載目錄

    修改k8s pod的掛載目錄

    2024年02月14日
    瀏覽(22)
  • Kubernetes中Pod的擴(kuò)縮容介紹

    Kubernetes中Pod的擴(kuò)縮容介紹

    在實(shí)際生產(chǎn)系統(tǒng)中,我們經(jīng)常會(huì)遇到某個(gè)服務(wù)需要擴(kuò)容的場(chǎng)景,也可能會(huì)遇到由于資源緊張或者工作負(fù)載降低而需 要減少服務(wù)實(shí)例數(shù)量的場(chǎng)景。此時(shí)可以利用 Deployment/RC 的 Scale 機(jī)制來(lái)完成這些工作。 Kubernetes 對(duì) Pod 的擴(kuò)縮容操作提供了手動(dòng)和自動(dòng)兩種模式,手動(dòng)模式通過(guò)執(zhí)行

    2024年02月07日
    瀏覽(17)
  • K8S學(xué)習(xí)指南(10)-k8s中為pod分配CPU和內(nèi)存資源

    Kubernetes(簡(jiǎn)稱(chēng)K8s)是一種開(kāi)源的容器編排平臺(tái),廣泛用于構(gòu)建、部署和管理容器化應(yīng)用。在Kubernetes中,Pod是最小的可部署單元,而資源分配是確保Pod正常運(yùn)行的關(guān)鍵因素之一。本文將深入探討如何在Kubernetes中為Pod分配CPU和內(nèi)存資源,并提供詳細(xì)的示例。 在容器化環(huán)境中,多

    2024年02月04日
    瀏覽(37)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包