Ի՞նչ են Kubernetes-ի օպերատորները և ինչ մոդել են օգտագործում:
sobes.tech AI
Պատասխան AI-ից
Օպերատորները — դա փաթեթավորման, տեղակայման և կառավարման մեթոդներ Kubernetes-ում: Նրանք ընդլայնում են Kubernetes API- ի գործառույթը՝ հանդես գալով որպես կոնտրոլեր, որոնք հատուկ են կոնկրետ ծրագրակազմին:
Օպերատորների հիմնական մոդելը Controller (կոնտրոլեր) է: Կոնտրոլերը մշտապես հետևում են կլաստերի ընթացիկ վիճակին և համեմատում այն ցանկալի վիճակի հետ: Եթե վիճակները տարբեր են, կոնտրոլերը իրականացնում են անհրաժեշտ գործողությունները՝ ընթացիկ վիճակը հասցնելու ցանկալիին:
Օպերատորների դեպքում, նրանք ավտոմատացնում են այն օպերացիոն աշխատանքները, որոնք սովորաբար կատարում են մարդիկ՝ կրկնվող աշխատանքներ, ինչպիսիք են՝ կրկնօրինակում, թարմացում, սքեյլավորում, կյանքի ցիկլի կառավարման և կոնկրետ ծրագրերի և դրանց կախվածությունների կառավարում: Նրանք դա անում են՝ արձագանքելով կլաստերի իրադարձություններին և մանիպուլյացիա կատարելով օգտագործողի ռեսուրսների (Custom Resources - CR) և օգտագործողի ռեսուրսների սահմանումների (Custom Resource Definitions - CRD), որոնք ընդլայնում են Kubernetes API-ն:
Աշխատելու սկզբունքը՝
- Custom Resource (CRD) սահմանում: Նոր ռեսուրսի տեսակ սահմանվում է՝ ներկայացնելու համար ծրագիր կամ ծառայություն:
- Custom Resource (CR) ստեղծում: Օգտագործողը ստեղծում է այդ նոր ռեսուրսի օրինակ՝ նկարագրելով ցանկալի վիճակը:
- Օպերատոր որպես կոնտրոլեր: Օպերատորը մշտապես հետևում է այդ տեսակի CR-ների ստեղծմանը, թարմացմանը և ջնջմանը:
- Վիճակների համեմատություն: Օպերատորը համեմատում է ծրագրի ընթացիկ վիճակը (օրինակ՝ աշխատող պոդերի քանակը, ծրագրային տարբերակը, կոնֆիգուրացիան) և CR-ում նկարագրված ցանկալի վիճակը:
- Գործողությունների իրականացում: Եթե վիճակները տարբեր են, օպերատորը իրականացնում է անհրաժեշտ գործողությունները՝ օգտագործելով 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-ում, ավտոմատացնում են ռոտինային աշխատանքները և բարձրացնում են տեղադրման հուսալիությունը և սքեյլունակությունը։