Text size
പരീക്ഷിച്ചറിഞ്ഞത്7 മിനിറ്റ് വായന

കുബർനെറ്റിലെ സ്കേലിംഗ്ഃ HPA, VPA, KEDA, കർപന്റർ

നാല് ഓട്ടോ സ്കേലറുകൾ, ഓരോന്നിനും അതിന്റേതായ ജോലി. എപ്പോൾ ഉപയോഗിക്കണം, എങ്ങനെ ഒരുമിച്ചു പ്രവർത്തിക്കണം.

Scaling on Kubernetes: HPA, VPA, KEDA and Karpenter
AI ഉപയോഗിച്ച് സൃഷ്ടിച്ച ചിത്രീകരണം

"കുബർനെറ്റസ് യാന്ത്രികമായി സ്കെയിൽ ചെയ്യുന്നു" എന്നത് ഒരേ സമയം സത്യവും തെറ്റായതുമായ ഒരു വാക്യമാണ്. കുബർനെറ്റിന് സ്വയം സ്കെയിൽ ചെയ്യാം, പക്ഷെ നിങ്ങൾ അത് സജ്ജമാക്കിയാൽ മാത്രം, വ്യത്യസ്തമായ നിരവധി ഓട്ടോ സ്കെയിലറുകൾ ഉണ്ട്, അവ വളരെ വ്യത്യസ്തമായ കാര്യങ്ങൾ ചെയ്യുന്നു.

ഇങ്ങനെയാണ് ഞാൻ അവയെ വിശദീകരിക്കുന്നത്, അവ എങ്ങനെ യോജിക്കുന്നു.

പോഡുകൾ vs നോഡുകൾ

ആദ്യം മനസ്സിലാക്കേണ്ടത് സ്കേലിംഗ് രണ്ട് തലങ്ങളിലാണ്.

  • പാഡ് സ്കേലിംഗ്: നിങ്ങളുടെ ആപ്പിന്റെ കൂടുതൽ കോപ്പികൾ പ്രവർത്തിപ്പിക്കുക (അതിർത്തി) അല്ലെങ്കിൽ ഓരോ കോപ്പിക്കും കൂടുതൽ വിഭവങ്ങൾ നൽകുക (ലംബമായി).
  • നോഡ് സ്കേലിംഗ്: മെഷീനുകൾ കൂട്ടിച്ചേര് ക്കുകയോ നീക്കം ചെയ്യുകയോ ചെയ്യുക അങ്ങനെ പാഡുകൾക്ക് ഇടം ലഭിക്കും.

സാധാരണയായി രണ്ടിനും വേണ്ടിവരും. ആട്ടോ സ്കെയിലർ ആപ്പിളുകൾ ഉണ്ടാക്കുന്നു, പക്ഷേ അവയ്ക്ക് സ്ഥലം ഇല്ലെങ്കിൽ, അവ അവിടെ തന്നെ നിൽക്കും Pending ഒരു നോഡ് ഓട്ടോ സ്കെയിലർ ശേഷി കൂട്ടിച്ചേര് ക്കുന്നതുവരെ.

HPA: തിരക്കുള്ള സമയത്തു കൂടുതൽ കോപ്പികൾ

സി. ഹൊറിസോണ്ടൽ പോഡ് ഓട്ടോസ്കേലർ കുബർനെറ്റീസിൽ തന്നെ ഉണ്ടായിരിക്കണം. അത് ഒരു മെട്രിക് കാണുകയും റെപ്ലിക്കുകളുടെ എണ്ണം മാറ്റുകയും ചെയ്യുന്നു.

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: shop-api
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: shop-api
  minReplicas: 2
  maxReplicas: 20
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70

സിപിയു അടിസ്ഥാനമാക്കിയുള്ള സ്കേലിംഗ് സംസ്ഥാനമില്ലാത്ത വെബ് സേവനങ്ങൾക്ക് നന്നായി പ്രവർത്തിക്കുന്നു. രണ്ടു കാര്യങ്ങൾ അറിയണം:

  • ഉപയോഗം അളക്കുന്നു പാഡിന്റെ സിപിയു അഭ്യർത്ഥനയുമായി ബന്ധപ്പെട്ട്. അഭ്യർത്ഥനകളില്ലാതെ, എച്ച്.പി.എ.ക്ക് പ്രവർത്തിക്കാനാവില്ല.
  • ഒരു മെട്രിക്സ് അഡാപ്റ്റർ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഇഷ്ടാനുസൃത അളവുകൾ (സെക്കൻഡിൽ അഭ്യർത്ഥനകൾ, ലേറ്റൻസി) സ്കെയിൽ ചെയ്യാം, പക്ഷേ അതിന് അധിക സജ്ജീകരണം ആവശ്യമാണ്.

VPA: ഓരോ പാഡിനും അനുയോജ്യമായ വലിപ്പം

സി. വെർട്ടിക്കൽ പോഡ് ഓട്ടോസ്കേലർ യഥാർത്ഥ വിഭവ ഉപയോഗം നിരീക്ഷിക്കുകയും ശുപാർശ ചെയ്യുകയും അല്ലെങ്കിൽ മെച്ചപ്പെട്ട അഭ്യർത്ഥനകളും പരിമിതികളും നിശ്ചയിക്കുകയും ചെയ്യുന്നു.

ഇത് വളരെ ഉപകാരപ്രദമാണ് ശുപാർശ മോഡ്ഒരു ആഴ്ചത്തേക്ക് ഓടിച്ചാല് നിങ്ങളുടെ കോപ്പുകള് ക്ക് യഥാര് ത്ഥത്തില് ആവശ്യമുള്ളത് എന്താണെന്ന് അത് പറയും. ഓട്ടോമാറ്റിക് മോഡിൽ, ചരിത്രപരമായി, അവയുടെ വിഭവങ്ങൾ മാറ്റാൻ, അവയുടെ ബൂട്ടുകൾ പുനരാരംഭിക്കേണ്ടി വന്നു. കുബർനെറ്റീസിൽ ഇപ്പോൾ സ്ഥിരതയുള്ള സ്ഥലത്തെ വലിപ്പം മാറ്റിയതോടെ, അത് വളരെ കുറവായിരിക്കും.

പ്രധാനം: ഒരേ സിപിയു മെട്രിക് ഉപയോഗിച്ച് വിപിഎയും എച്ച്പിഎയും ഉപയോഗിക്കരുത് ഒരേ ജോലിഭാരം. അവര് പരസ്പരം പോരാടും.

കെ. ഇ. ഡി. എഃ പരിപാടികളുടെ സ്കേലിംഗ്

കെ. ഇ. ഡി. എ (കുബർനെറ്റ്സ് ഇവന്റ് നയിക്കുന്ന ഓട്ടോ സ്കെയിലിംഗ്) ഒരു സിഎൻസിഎഫ് പ്രോജക്ട് ആണ്, ഇത് ഡസൻ കണക്കിന് ഇവന്റ് ഉറവിടങ്ങളുമായി എച്ച്പിഎ വിപുലീകരിക്കുന്നുഃ റാബിറ്റ് എംക്യുയിലെ ക്യൂ ദൈർഘ്യം, കഫ്ക ലാഗ്, എസ്ക്യുഎസ് സന്ദേശങ്ങൾ, പ്രോമെതീയസ് അന്വേഷണങ്ങൾ, ക്രോൺ ഷെഡ്യൂളുകൾ എന്നിവയും അതിലേറെയും.

അതിന്റെ കൊലപാതക സവിശേഷത: പൂജ്യം വരെ സ്കേലിംഗ്. ഒരു ക്യൂ പ്രോസസ്സ് ചെയ്യുന്ന ഒരു തൊഴിലാളിയ്ക്ക് ക്യൂ ശൂന്യമാകുമ്പോൾ പൂജ്യം പോഡുകൾ ഉണ്ടായിരിക്കാം, സന്ദേശങ്ങൾ എത്തുമ്പോൾ സ്കെയിൽ ചെയ്യാം.

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: order-worker
spec:
  scaleTargetRef:
    name: order-worker
  minReplicaCount: 0
  maxReplicaCount: 30
  triggers:
  - type: rabbitmq
    metadata:
      queueName: orders
      mode: QueueLength
      value: "20"
    authenticationRef:
      name: rabbitmq-auth

പശ്ചാത്തല തൊഴിലാളികൾക്ക്, സിപിയു അടിസ്ഥാനമാക്കിയുള്ള എച്ച്പിഎയേക്കാൾ മികച്ചതാണ് കെഡിഎ. സിപിയു പറയുന്നു തൊഴിലാളികൾ എത്ര തിരക്കിലാണ് എന്ന്. വരി ദൈർഘ്യം എത്ര ജോലി കാത്തിരിക്കുന്നു എന്ന് പറയുന്നു.

ജോലി ചെയ്യുന്നതിന്റെ സൈഡ് എഫക്ട് അല്ല, അത് പ്രതിനിധീകരിക്കുന്ന സിഗ്നലിനെ സ്കെയിൽ ചെയ്യുക.

ക്ലസ്റ്റർ ഓട്ടോസ്കെയിലർ vs കാർപന്റർ

നോഡുകൾക്ക് രണ്ട് പ്രധാന ഓപ്ഷനുകളുണ്ട്.

ക്ലസ്റ്റർ ഓട്ടോസ്കേലർ ക്ലാസിക് ആണ്. ഇത് നിങ്ങൾ മുൻകൂട്ടി നിർവചിക്കുന്ന നോഡ് ഗ്രൂപ്പുകളുമായി പ്രവർത്തിക്കുന്നു. പാഡുകൾ കാത്തിരിക്കുമ്പോൾ, അത് ഒരു മാച്ചിംഗ് ഗ്രൂപ്പിലേക്ക് ഒരു നോഡ് ചേർക്കുന്നു. നോഡുകൾ ഉപയോഗിക്കാതെ പോകുമ്പോൾ, അത് അവയെ നീക്കം ചെയ്യുന്നു. വിശ്വസനീയവും, മിക്കവാറും എല്ലായിടത്തും പിന്തുണയ്ക്കുന്നതുമാണ്.

മരംപണിക്കാരൻ AWS ൽ ആരംഭിച്ചതും ഇപ്പോൾ ഒരു Kubernetes SIG പ്രോജക്ട് ആണ്, AWS, Azure എന്നിവയ്ക്കുള്ള പിന്തുണയോടെ. നിശ്ചിത നോഡ് ഗ്രൂപ്പുകൾക്ക് പകരം, കാത്തിരിക്കുന്ന പാഡുകൾ നോക്കുകയും അവയ്ക്കായി മികച്ച ഇൻസ്റ്റൻസിംഗ് തരം തിരഞ്ഞെടുക്കുകയും ചെയ്യുന്നു. അത് വേഗതയേറിയതും പലപ്പോഴും വിലകുറഞ്ഞതും നല്ലതുമാണ് ഏകീകരണം: കുറച്ചുകൂടി ഉപയോഗിക്കാത്ത നോഡുകൾ നീക്കം ചെയ്യാനോ വിലകുറഞ്ഞവ ഉപയോഗിച്ച് മാറ്റി സ്ഥാപിക്കാനോ സാധിക്കും. സ്പോട്ട് കേസുകളും നല്ല രീതിയിൽ കൈകാര്യം ചെയ്യുന്നു.

ആഡംബര വകുപ്പിൽ, ഞാനിന്ന് കർപന്ററെ തെരഞ്ഞെടുക്കും. മറ്റെവിടെയെങ്കിലും, നിങ്ങളുടെ ദാതാവ് ഏറ്റവും നന്നായി പിന്തുണയ്ക്കുന്നവ ഉപയോഗിക്കുക, പലപ്പോഴും അവരുടെ നിയന്ത്രിത ഓട്ടോസ്കേലർ.

അടിക്കുന്നത് നിർത്തുന്നു

ഓട്ടോ സ്കേലിംഗ് ഓസിസിലേറ്റ് ചെയ്യാം: സ്കെയിൽ മുകളിലേക്കും താഴേക്കും വീണ്ടും സ്കെയിലിലേക്ക്. അത് ശാന്തമാക്കുന്ന വഴികൾ:

  • സ്ഥിരതയുടെ വിൻഡോകൾ ഹൈ പീഡിഫിക്കേഷൻ ഏരിയയില് behavior പ്രത്യേകിച്ച് സ്കെയിൽ ഡൌൺ ചെയ്യുന്നതിനായി (അഞ്ച് മിനിറ്റ് സാധാരണ ആരംഭമാണ്).
  • വിവേകമുള്ള മിനിമം റെപ്ലിക്കകൾ. ഉപയോക്താവിനെ അഭിമുഖീകരിക്കുന്ന എന്തിനും കുറഞ്ഞത് രണ്ട്.
  • ശരിയായ വിഭവ അഭ്യർത്ഥനകൾ. തെറ്റായ അഭ്യർത്ഥനകളാണ് ഓരോ ഓട്ടോ സ്കേലറേയും തെറ്റായ തീരുമാനങ്ങളിലേക്ക് നയിക്കുന്നത്.
  • പോഡ് ഡിസ്റപ്ഷൻബജറ്റുകൾ, അതിനാൽ നോഡ് ഏകീകരണം എല്ലാ റെപ്ലിക്കകളും ഒരേസമയം ഇല്ലാതാക്കില്ല.
  • റെഡിമെയ്ഡ് സോണ്ടുകൾ അത് ശരിക്കും റെഡിമെയ്ഡ് ആയിരിക്കും, പുതിയ പാഡുകൾക്ക് ട്രാഫിക് കിട്ടുന്നത് അത് കൈകാര്യം ചെയ്യാൻ കഴിയുമ്പോഴാണ്.

എല്ലാം ഒരുമിപ്പിക്കുന്നു

ഒരു സാധാരണ ക്ലസ്റ്ററിന് വേണ്ടി എനിക്കിഷ്ടപ്പെട്ട ഒരു ക്രമീകരണം:

  • എച്ച് പി എ സിപിയു അല്ലെങ്കിൽ വെബ് സേവനങ്ങൾക്കുള്ള സെക്കന്റിൽ അഭ്യർത്ഥനകൾ.
  • കെ. ഇ. ഡി. എ. വരി തൊഴിലാളികൾക്കും ഷെഡ്യൂൾ ചെയ്ത ജോലികൾക്കും, പൂജ്യത്തിലേക്ക് സ്കെയിലിൽ.
  • ശുപാർശ മോഡിൽ VPA സത്യസന്ധമായി അപേക്ഷകൾ നടത്താൻ.
  • കാർപെന്റർ അല്ലെങ്കിൽ ക്ലസ്റ്റർ ഓട്ടോസ്കേലർ ആവശ്യമെങ്കിൽ നോഡുകൾ ചേർക്കാനും നീക്കം ചെയ്യാനും.

എന്റെ അഭിപ്രായം: ഓട്ടോ സ്കെയിലിംഗ് ഒരു ടീം സ്പോർട്സ് ആണ്. ആദ്യം ശരിയായ അഭ്യർത്ഥനകൾ ചെയ്യുക, ഓരോ വർക്ക് ലോഡിനും ശരിയായ സിഗ്നൽ തിരഞ്ഞെടുക്കുക, ബാക്കി നോഡ് ഓട്ടോ സ്കെയിലർ കൈകാര്യം ചെയ്യട്ടെ.

ഡെസ്ലി