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

k8s---HPA 命名空間資源限制

這篇具有很好參考價值的文章主要介紹了k8s---HPA 命名空間資源限制。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

目錄

HPA相關(guān)知識

?HPA(Horizontal Pod Autoscaling)Pod 水平自動伸縮,Kubernetes 有一個 HPA 的資源,HPA 可以根據(jù) CPU 利用率自動伸縮一個 Replication Controller、 Deployment 或者Replica Set 中的 Pod 數(shù)量。

(1)HPA 基于 Master 上的 kube-controller-manager 服務(wù)啟動參數(shù) horizontal-pod-autoscaler-sync-period 定義的時長(默認(rèn)為30秒),周期性的檢測 Pod 的 CPU 使用率。

(2)HPA 與之前的 RC、Deployment 一樣,也屬于一種 Kubernetes 資源對象。通過追蹤分析 RC 控制的所有目標(biāo) Pod 的負(fù)載變化情況, 來確定是否需要針對性地調(diào)整目標(biāo)Pod的副本數(shù),這是HPA的實現(xiàn)原理。

(3)metrics-server 也需要部署到集群中, 它可以通過 resource metrics API 對外提供度量數(shù)據(jù)。
?

HPA部署和運(yùn)用

進(jìn)行HPA的部署和配置

//在所有 Node 節(jié)點(diǎn)上傳 metrics-server.tar 鏡像包到 /opt 目錄
cd /opt/
docker load -i metrics-server.tar
 
#在主master節(jié)點(diǎn)上執(zhí)行
kubectl apply -f components.yaml


mastrt節(jié)點(diǎn)拖入components.yaml

#部署完畢后,可以通過命令來監(jiān)視pod的資源占用
kubectl top pods
 
kubectl top nodes

k8s---HPA 命名空間資源限制,kubernetes,容器,云原生

HPA伸縮的測試演示

創(chuàng)建一個用于測試的pod資源
apiVersion: apps/v1
kind: Deployment
metadata:
  name: centos-test
  labels:
    test: centos1
spec:
  replicas: 1
  selector:
    matchLabels: 
      test: centos1
  template:
    metadata:
      labels:
        test: centos1
    spec:
      containers:
        - name: centos
          image: centos: 7
          command: ["/bin/bash","-c","yum -y install epel-release;yum -y install stress;sleep 3600"]
          resources:
            limits:
              cpu: "1"
              memory: 512Mi
#設(shè)置資源限制。使用hpa必須添加資源限制字段,否則無法判斷。
---
apiVsersion: autoscaling/v1 
kind:  HorizontalPodAutoscaler
metadata:
  name: hpa-centos7
spec:
  scaleTargetRef:
    apiVersion: apps/v1
#表示需要監(jiān)控的類型是什么
    kind: Deployment
    name: centos-test
#這里表示你需要監(jiān)控誰
  minReplicas: 1
#表示最小有幾個
  maxReplicas: 5
#超過副本最大有幾個
  targetCPUUtilzationPercentage: 50
  //設(shè)定cpu使用的閥值。高于50%縮容,低于50%擴(kuò)容
進(jìn)入容器占用2個cpu

stress --cpu 2

k8s---HPA 命名空間資源限制,kubernetes,容器,云原生

k8s---HPA 命名空間資源限制,kubernetes,容器,云原生

HPA的規(guī)則


1.定義pod的時候必須要有資源限制,否則HPA無法進(jìn)行監(jiān)控

2.擴(kuò)容是即時的,只要超過閥值就會立刻擴(kuò)容,不是立刻擴(kuò)容到最大副本數(shù)。他會在最小值和最大值波動,如果擴(kuò)容數(shù)量滿足了需求,則不會在擴(kuò)容。

3.縮容是緩慢的。如果業(yè)務(wù)的峰值較高,回收的策略太積極的話,可能會產(chǎn)生業(yè)務(wù)的崩潰。

周期性的獲取數(shù)據(jù),縮容的機(jī)制問題。

如果業(yè)務(wù)的峰值較高,回收的策略太積極的話,可能會產(chǎn)生業(yè)務(wù)的崩潰。

pod的副本數(shù)擴(kuò)縮容有兩種方式:

1、 手動的方式修改控制器的副本數(shù)。

命令行可以通過 kubectl scale deployment pod名稱 --replicas=5

修改yaml文件。通過apply -f部署更新

2、 自動擴(kuò)縮容HPA

hpa監(jiān)控的是cpu

資源限制

pod的資源限制:在部署pod的時候加入resources字段,通過limits/request來對pod進(jìn)行限制。

除了pod的資源限制還有命名空間的資源限制

命名空間 資源限制

lucky-zzr項目---部署在test1的命名空間,如果lucky-zzr不做限制,或者命名空間不做限制,他依然會占滿所有集群資源

k8s集群部署pod的最大數(shù)量:10000個

實驗舉例

vim ns.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: centos-test2
  namespace: test1
  labels:
    test: centos2
spec:
  replicas: 11
  selector:
    matchLabels:
      test: centos2
  template:
    metadata:
      labels:
        test: centos2
    spec:
      containers:
        - name: centos
          image: centos:7
          command: ["/bin/bash", "-c", "yum -y install epel-release;yum -y install stress;sleep 3600"]
          resources:
            limits:
              cpu: 1000m
              memory: 512Mi
 
---
 
apiVersion: v1
kind: ResourceQuota
metadata:
  name: ns-resource
  namespace: test1
spec:
  hard:
#硬限制
    pods: "10"
#表示在這個命名空間內(nèi)只能部署10個pod
    requests.cpu: "2"
#最多只能占用多個個cpu
    requests.memory: 1Gi
#最多只能占用多少內(nèi)存
    limits.cpu: "4"
#最大需要多少cpu
    limits.memory: 2Gi
#最大需要多少內(nèi)容
    configmaps: "10"
#當(dāng)前命名空間內(nèi)能創(chuàng)建最大的configmap的數(shù)量 10個
    persistentvolumeclaims: "4"
#當(dāng)前命名空間只能使用4個pvc
    secrets: "9"
#創(chuàng)建加密的secrets。只能9個
    services: "5"
#創(chuàng)建service只能5個
    services.nodeports: "2"
#nodeport類型的svc只能2個

設(shè)置副本數(shù)為11個測試。當(dāng)命名空間限制了之后,最多只能部署10個

通過命名空間的方式對容器進(jìn)行限制

apiVersion: apps/v1
kind: Deployment
metadata:
  name: centos-test
  namespace: test2
  Labels:
    test: centos1
spec:
  replicas: 1
  selector:
    matcjhLabels: 
      test: centos1
  template:
    metdata:
      labels:
        test: centos1
    spec:
      containers:
        - name: centos
          image: centos:7
          command: ["/bin/bash","-c","yum -y install epel-release;yum -y install stress;sleep 3600"]
---
apiVersion: v1
kind: LimitRange
#表示使用limitrange來進(jìn)行資源控制的類型。
metadata:
  name: test2-centos
  namespace: test2
spec:
  limits:
    default:
      memory: 512Mi
      cpu: "1"
    defaultRequest:
      memory: 256Mi
      cpu: "0.5"
    type: Container
    
#default-->limit
#defaultRequest--->request
#type支持Container ,pod ,pvc

通過命名空間對pod進(jìn)行統(tǒng)一限制:

好處是不需要對每個pod進(jìn)行限制

缺點(diǎn)是不夠靈活

HPA自動伸縮如果使用nodeName的方式將固定在一個node上觀察擴(kuò)容之后,閥值是否會下降?

實驗舉例:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: centos-test
  labels:
    test: centos1
spec:
  replicas: 1
  selector:
    matchLabels:
      test: centos1
  template:
    metadata:
      labels:
        test: centos1
    spec:
      containers:
        - name: centos
          image: centos:7
          command: ["/bin/bash", "-c", "yum -y install epel-release;yum -y install stress;sleep 3600"]
          resources:
            limits:
              cpu: 1000m
              memory: 512Mi
      nodeName: node01
#設(shè)置資源限制。使用hpa必須添加資源限制字段,否則無法判斷
 
---
 
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: hpa-centos
spec:
  scaleTargetRef:
    apiVersion: apps/v1
#表示需要監(jiān)控的類型是什么,基于什么控制器創(chuàng)建的
    kind: Deployment
    name: centos-test
#這里表示你需要監(jiān)控誰
  minReplicas: 1
#表示最小有幾個
  maxReplicas: 5
#超過副本最大有幾個
  targetCPUUtilizationPercentage: 50
#設(shè)定cpu使用的閥值

測試即使在同一個node節(jié)點(diǎn)上閥值還是會下降。實驗完成

總結(jié)
HPA自動擴(kuò)縮容

命名空間的兩種方式:

ResourceQuota:可以對命名空間進(jìn)行資源限制

LimitRange:直接聲明在命名空間中創(chuàng)建的pod,容器的資源限制。這是一種統(tǒng)一限制。所有的pod都受這個條件的制約。

只要是在命名空間內(nèi)不管創(chuàng)建多少,都需要使用我聲明的資源限制。

pod的資源限制:resources、limit

pod的資源限制是我們創(chuàng)建時候聲明好的,這時必加選項。

對命名空間、使用cpu、內(nèi)存一定會做限制

命名空間的資源限制:ResourceQuota

一般是對命名空間的cpu和內(nèi)存做限制

命名空間統(tǒng)一資源限制:LimitRange

核心:pod一定要做資源限制否則會占用集群的全部資源,命名空間也需要做限制否則還是會占用集群的全部資源。防止整個集群的資源被一個服務(wù)或者一個命名空間占滿。

HPA自動伸縮
?文章來源地址http://www.zghlxwxcb.cn/news/detail-821423.html

到了這里,關(guān)于k8s---HPA 命名空間資源限制的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • K8S 1.27 動態(tài)調(diào)整容器CPU和內(nèi)存資源限制,無需重啟應(yīng)用程序

    如果您在部署Pod時指定了 CPU 和內(nèi)存資源,更改資源大小需要重新啟動 Pod。到目前為止,重啟對于正在運(yùn)行工的作負(fù)載是一種破壞性操作。 Kubernetes 1.27 中的 alpha 功能發(fā)布。其中一項能夠自動調(diào)整 Pod 的 CPU 和內(nèi)存限制的大小,只需修補(bǔ)正在運(yùn)行的 Pod 定義即可更改它們,而無

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

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

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

    2024年02月05日
    瀏覽(30)
  • 持續(xù)集成部署-k8s-資源調(diào)度:HPA - Pod 基于負(fù)載指標(biāo)自動水平擴(kuò)容縮容

    首先我們找一個 Deployment 配置文件: nginx-deploy.yaml

    2024年02月07日
    瀏覽(30)
  • 強(qiáng)制刪除k8s命名空間

    背景 刪除ns時,有時候會一直卡在terminating的狀態(tài),無法刪除,此時會引發(fā)一些問題,所以試了兩種方法,記錄下來 假定ns名稱為test 方法一 通過強(qiáng)制刪除,并且設(shè)置優(yōu)雅刪除時間為0(默認(rèn)為30s) $ kubectl delete ns test --force --grace-period=0 方法一之后還是無法刪除,請使用方法二

    2024年02月04日
    瀏覽(19)
  • k8s學(xué)習(xí)筆記-05(命名空間)

    原創(chuàng)文檔編寫不易,未經(jīng)許可請勿轉(zhuǎn)載。文檔中有疑問的可以郵件聯(lián)系我。 郵箱:yinwanit@163.com k8s中資源通過命名空間進(jìn)行資源與資源間的隔離。不同的命名空間中的資源相互獨(dú)立??梢岳斫鉃樽鈶?。k8s安裝完成過后默認(rèn)自帶四個命名空間:default、kube-node-lease、kube-pubic、k

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

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

    ? ? ? ? Metrics-Server組件目的:獲取集群中pod、節(jié)點(diǎn)等負(fù)載信息; ? ? ? ? hpa資源目的:通過metrics-server獲取的pod負(fù)載信息,自動伸縮創(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)
  • k8s資源配額限制

    為什么會有資源配額管理? 資源配額管理維度解釋? 資源配額參數(shù)有什么? 計算CPU CPU的Requests和Limits是通過CPU數(shù)(cpus)來度量的。 CPU的資源值是絕對值,而不是相對值,比如0.1CPU在單核或多核機(jī)器上是一樣的,都嚴(yán)格等于0.1 CPU core。 計算Memory 內(nèi)存的Requests和Limits計量單位

    2024年02月13日
    瀏覽(25)
  • k8s進(jìn)階3——資源配額、資源限制

    k8s進(jìn)階3——資源配額、資源限制

    為什么會有資源配額管理? 可以提高集群穩(wěn)定性,確保指定的資源對象在任何時候都不會超量占用系統(tǒng)物理資源,避免業(yè)務(wù)進(jìn)程在設(shè)計或?qū)崿F(xiàn)上的缺陷導(dǎo)致整個系統(tǒng)運(yùn)行紊亂甚至意外宕機(jī)。 資源配額管理維度: 容器級別,定義每個Pod上資源配額相關(guān)的參數(shù),比如CPU/Memory、

    2024年02月10日
    瀏覽(27)
  • K8s進(jìn)階之路-命名空間級-服務(wù)發(fā)現(xiàn) :

    K8s進(jìn)階之路-命名空間級-服務(wù)發(fā)現(xiàn) :

    服務(wù)發(fā)現(xiàn): Service(東西流量):集群內(nèi)網(wǎng)絡(luò)通信、負(fù)載均衡(四層負(fù)載)內(nèi)部跨節(jié)點(diǎn),節(jié)點(diǎn)與節(jié)點(diǎn)之間的通信,以及pod與pod之間的通信,用Service暴露端口即可實現(xiàn) Ingress(南北流量):將內(nèi)部服務(wù)暴露外網(wǎng)訪問的服務(wù)ingress-nginx,也就是nginx反向代理負(fù)載均衡服務(wù)(七層http負(fù)

    2024年02月20日
    瀏覽(23)
  • k8s學(xué)習(xí)筆記(四):命名空間(namespace)詳解

    k8s學(xué)習(xí)筆記(四):命名空間(namespace)詳解

    Kubernetes中的Namespace是一種用于在 集群內(nèi)部組織和隔離資源 的機(jī)制。一個Namespace可以看作是一個 虛擬的集群 ,它將物理集群劃分為多個邏輯部分,每個部分都有自己的一組資源(如Pod、Service、ConfigMap等)。 Namespace 適合用于 隔離不同用戶創(chuàng)建的資源 用于給集群中的 任何對

    2024年02月12日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包