Sobes.tech
Middle+

Ի՞նչ են Kubernetes-ի օպերատորները և ինչ մոդել են օգտագործում:

sobes.tech AI

Պատասխան AI-ից

Օպերատորները — դա փաթեթավորման, տեղակայման և կառավարման մեթոդներ Kubernetes-ում: Նրանք ընդլայնում են Kubernetes API- ի գործառույթը՝ հանդես գալով որպես կոնտրոլեր, որոնք հատուկ են կոնկրետ ծրագրակազմին:

Օպերատորների հիմնական մոդելը Controller (կոնտրոլեր) է: Կոնտրոլերը մշտապես հետևում են կլաստերի ընթացիկ վիճակին և համեմատում այն ցանկալի վիճակի հետ: Եթե վիճակները տարբեր են, կոնտրոլերը իրականացնում են անհրաժեշտ գործողությունները՝ ընթացիկ վիճակը հասցնելու ցանկալիին:

Օպերատորների դեպքում, նրանք ավտոմատացնում են այն օպերացիոն աշխատանքները, որոնք սովորաբար կատարում են մարդիկ՝ կրկնվող աշխատանքներ, ինչպիսիք են՝ կրկնօրինակում, թարմացում, սքեյլավորում, կյանքի ցիկլի կառավարման և կոնկրետ ծրագրերի և դրանց կախվածությունների կառավարում: Նրանք դա անում են՝ արձագանքելով կլաստերի իրադարձություններին և մանիպուլյացիա կատարելով օգտագործողի ռեսուրսների (Custom Resources - CR) և օգտագործողի ռեսուրսների սահմանումների (Custom Resource Definitions - CRD), որոնք ընդլայնում են Kubernetes API-ն:

Աշխատելու սկզբունքը՝

  1. Custom Resource (CRD) սահմանում: Նոր ռեսուրսի տեսակ սահմանվում է՝ ներկայացնելու համար ծրագիր կամ ծառայություն:
  2. Custom Resource (CR) ստեղծում: Օգտագործողը ստեղծում է այդ նոր ռեսուրսի օրինակ՝ նկարագրելով ցանկալի վիճակը:
  3. Օպերատոր որպես կոնտրոլեր: Օպերատորը մշտապես հետևում է այդ տեսակի CR-ների ստեղծմանը, թարմացմանը և ջնջմանը:
  4. Վիճակների համեմատություն: Օպերատորը համեմատում է ծրագրի ընթացիկ վիճակը (օրինակ՝ աշխատող պոդերի քանակը, ծրագրային տարբերակը, կոնֆիգուրացիան) և CR-ում նկարագրված ցանկալի վիճակը:
  5. Գործողությունների իրականացում: Եթե վիճակները տարբեր են, օպերատորը իրականացնում է անհրաժեշտ գործողությունները՝ օգտագործելով Kubernetes-ի ստանդարտ API-ները (ստեղծում/թարմացում/ջնջում Deployment, StatefulSet, Service, PVC և այլն), որպեսզի ընթացիկ վիճակը հասցնի ցանկալիին:

Օրինակ՝ PostgreSQL տվյալների բազայի օպերատորը կարող է տրամադրել CR PostgresqlDatabase-ը: Օգտագործողը ստեղծում է այդ CR-ը՝ ցանկալի տարբերակով, պահեստավորման չափով և ռեպլիկացիայի կարգավորումներով: PostgreSQL օպերատորը, հետևելով այդ CR-ին, կստեղծի անհրաժեշտ StatefulSet, PersistentVolumeClaim, Service և կկարգավորի ռեպլիկացիան՝ ապահովելով ցանկալի վիճակի հասանելիությունը և պահպանումը:

# Հիպոթետիկ PostgreSQL օպերատորի համար Custom Resource-ի օրինակ
apiVersion: postgresql.database.example.com/v1
kind: PostgresqlDatabase
metadata:
  name: my-prod-db
spec:
  version: "14.5"
  storageSize: "100Gi"
  replicas: 3
  backup:
    enabled: true
    schedule: "0 2 * * *"

Այսպիսով, օպերատորները կոդում ամփոփում են կոնկրետ ծրագրի օպերացիոն գիտելիքները, որոնք աշխատում են Kubernetes-ում, ավտոմատացնում են ռոտինային աշխատանքները և բարձրացնում են տեղադրման հուսալիությունը և սքեյլունակությունը։