VK Cloud logo

Аддондар

Managed Containers кластерлері үшін әртүрлі аддондар (қосымша сервистер) қолжетімді. Оларды кез келген комбинацияда таңдап, не Terraform көмегімен кластерді құру кезінде, не бұрыннан бар кластерге кейінірек орнатуға болады. Орнату процесі автоматтандырылған және пайдаланушының ең аз араласуын талап етеді.

Аддондарды орнату ерекшеліктері

  • Аддондар кластердің worker-тораптарына орнатылады және олардың есептеу ресурстарын тұтынады.

    Төменде аддонды баптау кодындағы Kubernetes ресурстары үшін стандартты requests және limits мәндеріне негізделген аддондардың жүйелік талаптары келтірілген. Стандартты емес мәндер пайдаланылған кезде аддондардың жүйелік талаптары өзгереді.

  • Аддондар арнайы бөлінген worker-тораптар тобына немесе Kubernetes жоспарлаушысы таңдаған worker-тораптарға орнатылуы мүмкін. Бірінші тәсілді пайдалану кластерде жайылған production-сервистердің жұмысына аддондардың әсерін болдырмауға мүмкіндік береді.

    Бөлінген worker-тораптар тобының есептеу ресурстары барлық аддондарға жеткілікті болуы тиіс, тіпті әрбір аддон жүйелік талаптарда көрсетілген ресурстардың максимумын тұтынса да. Осындай тораптар тобы үшін автоматты масштабтауды баптау ұсынылады.

  • Аддондарды орнату үш нұсқада мүмкін:

    • Аддонды баптау кодын өзгерте отырып, Kubernetes жоспарлаушысы таңдаған worker-тораптарға стандартты орнату.
    • Аддонды баптау кодын өзгерте отырып, бөлінген worker-тораптарға орнату.
    • Аддонды баптау кодын өзгертпей, Kubernetes жоспарлаушысы таңдаған worker-тораптарға жылдам орнату (әдепкі баптаулармен).

    Барлық аддондар орнатудың осы үш нұсқасының бәрін қолдамайды.

    Орнату процесі Аддондарды орнату және баптау бөлімінде сипатталған.

Қолжетімді аддондар

Белгілі бір аддондардың қолжетімділігі кластерді орналастыру жоспарланатын өңірге байланысты.

Capsule

Kubernetes кластерлері Kubernetes ресурстарын жеке атаулар кеңістіктері (namespaces) деңгейінде логикалық бөлуге мүмкіндік береді. Алайда бұл күрделі сценарийлерде ресурстарды бөлу мен оқшаулауды ұйымдастыру үшін жеткіліксіз болуы мүмкін. Мысалы, әзірлеушілердің әртүрлі командаларына әртүрлі ресурстар жиынтықтарын беру қажет. Бұл үшін әр команда үшін бөлек кластерлер жасауға болады, бірақ мұндай кластерлер көп болса, оларды басқару қиынға соғады.

Capsule бір кластер шеңберінде ресурстар жиынтықтарын тенанттар (tenants) көмегімен оқшаулауға мүмкіндік береді. Тенант — белгілі бір пайдаланушылар тобына тағайындалған, ресурстарды жасау мен тұтынуға қойылатын шектеулермен біріктірілген атаулар кеңістіктері. Capsule саясат қозғалтқышы (policy engine) тенант шеңберінде ресурстарды пайдалану саясаттарының сақталуын қадағалап қана қоймай, бір тенантты екіншісінен оқшаулауды да қамтамасыз етеді. Осылайша бірнеше команданың бір multi-tenant cluster ішінде жұмысын қосымша кластерлерді әкімшілендіру қажеттілігінсіз ұйымдастыруға болады.

cert-manager

cert-manager құралының көмегімен Kubernetes кластерлеріндегі сертификаттарды басқаруға болады:

  • Сертификаттарды, соның ішінде өздігінен қол қойылған (self-signed) сертификаттарды шығару. Ол үшін cert-manager сертификаттау орталығы (certificate authority, CA) рөлін атқаратын көздерге сұраулар жібереді.

    Көздердің мысалдары:

    • Venafi сияқты киберқауіпсіздік шешімдерінің провайдерлері;
    • Let’s Encrypt сияқты сертификат провайдерлері;
    • HashiCorp Vault сияқты секреттер қоймалары;
    • ішінде сертификаттың жария бөлігі мен жабық кілті бар жергілікті контейнерлер.
  • Әрекет ету мерзімі аяқталып жатқан сертификаттарды автоматты түрде қайта шығару.

cert-manager көмегімен шығарылған сертификат басқа Kubernetes ресурстарына қолжетімді болады. Мысалы, оны Ingress үшін пайдалануға болады.

Docker Registry

Docker тізілімі Docker образдарын орналастыруға және сақтауға арналған. Істен шығуға төзімді конфигурацияда (high availability, HA) жұмыс істейді. Тізілімдегі образдарды кластерде сервистерді жайып орналастыру кезінде пайдалануға болады.

Толығырақ Docker реестріне қосылу бөлімінен қараңыз.

Fluent Bit

Fluent Bit Managed Containers кластерлерінде логтарды жинауды баптауға мүмкіндік береді, содан кейін оларды Cloud Logging сервисінде, мысалы, Elasticsearch немесе Loki плагиндерінің көмегімен талдауға болады. Бұл аддонның негізгі артықшылығы — пайдаланушы қажеттіліктеріне барынша икемді баптау мүмкіндігі.

Логтардың көздері ретінде кластер тораптарында орналасқан kubelet қызметтері мен подтар (pods) қолданылады.

Cloud Logging үшін Fluent Bit (logaas-integration)

Lua тілінде жазылған арнайы сүзгілермен бірге Fluent Bit Managed Containers кластерінен логтарды Cloud Logging сервисіне жеткізуді ұйымдастыруға мүмкіндік береді, бұл осы логтарды әрі қарай талдау үшін қажет.

Логтардың көздері ретінде кластер тораптарында орналасқан kubelet қызметтері мен подтар (pods) қолданылады. Аддонның қалай жұмыс істейтіні туралы толығырақ оның орнату бөлімінен оқыңыз.

GPU Operator

GPU Operator кластер тораптарындағы GPU-ді машиналық оқыту немесе үлкен деректерді өңдеу міндеттерін орындау үшін басқаруға мүмкіндік береді.

Кластерде GPU пайдаланудың келесі нұсқалары қолжетімді:

  • Бір под бір немесе бірнеше GPU пайдаланады.
  • Аддон бір GPU-ді бірнеше под арасында MIG стратегиясы бойынша бөледі.
  • Аддон бір GPU-ді бірнеше под арасында MPS стратегиясы бойынша бөледі.

Аддон құрамы:

  • GPU-ді басқаруға арналған NVIDIA GPU Operator.

  • Конфигурация өзгергеннен кейін CUDA (Compute Unified Device Architecture) тексеруге арналған қызметтік валидаторлар.

  • Оператордың өзін-өзі диагностикалау құралдары.

  • GPU ресурстарын байланыстыру мен бөлуді автоматтандыруға арналған NVIDIA device plugin.

  • Кластер тораптарында қолжетімді функцияларды анықтау және тіркеу үшін Node Feature Discovery. Компонент келесі қызметтерді қамтиды:

    • NFD-Master Kubernetes API серверіне қосылуға және торап объектілерін жаңартуға жауап береді.
    • NFD-Worker аппараттық функцияларды жариялау үшін NFD-Master қызметіне қосылады.
    • NFD Garbage-Collector барлық Node Feature Discovery объектілерінің сәйкес тораптары болуын қамтамасыз етеді және жоқ тораптар үшін ескірген объектілерді жояды.

Аддон және оның компоненттері туралы толығырақ: NVIDIA GPU Operator, NVIDIA device plugin, Node Feature Discovery.

Ingress Controller (NGINX)

NGINX негізіндегі Ingress-контроллер кері прокси (reverse proxy) ретінде жұмыс істейді және HTTP немесе HTTPS бойынша жұмыс істейтін кластер сервистері үшін бірыңғай кіру нүктесін ұйымдастыруға мүмкіндік береді.

Контроллер бар болған жағдайда, мұндай сервистер Kubernetes кластерінен тыс жерден қолжетімді болуы үшін Ingress ресурсын жасау жеткілікті.

Ingress-контроллер VK Cloud платформасымен тығыз интеграцияланады. Толығырақ Кластердегі желі бөлімінен қараңыз.

Istio

Istio қызметтер арасындағы желілік байланысты орталықтан бақылауға және Қолданба кодын өзгертпестен басқаруға мүмкіндік береді. Istio сервистік тор тәсілін жүзеге асырады (Service mesh): қызметтер арасындағы трафик басқарылатын прокси қабаты арқылы өтеді. Қосымшада sidecar-прокси бар классикалық модель ретінде қолдау көрсетіледі подов деңгейінде және Ambient Mesh режимі Sidecar контейнерлері жоқ (түйін деңгейіндегі прокси). Istio көмегімен сіз:

  • қызметтер арасындағы қауіпсіздік және трафикті басқару саясатын орнатыңыз;
  • қызметтер арасындағы байланыс үшін TLS пайдаланыңыз;
  • сервисаралық трафик мониторингін кеңейту (метрикаларды жинау, логирлеу, үлестірілген трассалау);
  • күрделі маршруттауды және қызметтер арасындағы трафикті теңестіруді теңшеңіз; -сұраныстардың қайталануын, тайм-ауттарды және басқа да ақауларға төзімділікті бақылау тетіктерін теңшеу; -біртіндеп орналастыру үшін Canary Deployment және Blue-Green Deployment пайдаланыңыз.

Jaeger

Микросервистерге негізделген үлестірілген жүйелерде сұраулар (requests) алмасуы үздіксіз жүреді. Jaeger платформасы сұрауларды үлестірілген трассировкадан өткізу үшін жасалған. Jaeger сұраулар ағынының микросервистер арқылы жүретін жолын қадағалайды және мыналарға мүмкіндік береді:

  • жүйе компоненттерінің өзара байланыстары туралы сұраулар ағыны тұрғысынан ақпарат жинауға;
  • сұраулармен байланысты мәселелерді немесе жүйе архитектурасындағы сұраулар ағынын өңдеуге қатысты тар орындарды анықтауға.

Мұндай құрал қажет, өйткені сұраулармен байланысты факторлар бұл жүйелердің тұтас мінез-құлқы мен өнімділігіне елеулі әсер етуі мүмкін. Жекелеген микросервистерді ғана бақылаумен шектелу жеткіліксіз.

Jaeger микросервистерден алатын деректер негізінде сұрауларды трассалауды орындайды. Сондықтан микросервистерге сұраулар туралы деректерді жіберу үшін OpenTelemetry құралдар стегін интеграциялау қажет. OpenTelemetry-ді микросервистік қосымшаға интеграциялаумен HotROD мысалында Jaeger пайдалану бөлімінде танысуға болады.

Kiali

Kiali — Istio-мен жұмыс істеуге арналған веб-интерфейс. Ол service mesh-ті басқаруға, оның күйін бақылауға және оны визуализациялауға мүмкіндік береді.

Kube Prometheus Stack

Kube Prometheus Stack — Prometheus және Grafana визуализациялау құралы негізінде іске асырылған кластер күйін және оның ішінде жайылған сервистерді мониторингтеу жүйесі. Толығырақ Кластер метрикаларын көру үшін Grafana-ға қосылу бөлімінен қараңыз.

VK Cloud Kube Prometheus Stack аддонының екі нұсқасын ұсынады: базалық және VK Tech компаниясының жетілдірулері бар нұсқа (vk жұрнағы бар нұсқа нөмірімен). Жетілдірулері бар аддонда қосымша кіріктірілген функциялар бар, атап айтқанда кластер ресурстарын тұтынуды болжау.

Vertical Pod Autoscaler (VPA)

Vertical Pod Autoscaler (VPA) — Kubernetes контейнерлері үшін ресурстарды (CPU және RAM) автоматты түрде баптауға арналған құрал. VPA міндеттері:

  1. Жүктемені және ресурстарды пайдалану деректерін талдау.
  2. Жаңа және бұрыннан іске қосылған подтардың ресурс сұрауларына арналған ұсынымдарды ұсыну және, егер бапталған болса, оларды автоматты түрде қолдану.

VPA үш компоненттен тұрады:

  • Recommender: ағымдағы және өткен ресурстар тұтынылуын талдайды және осының негізінде подтың ресурс сұрауларын ең жоғары тиімділікке қалай өзгерту керектігін ұсынады. Recommender — VPA-мен жұмыс істегенде әдепкі бойынша қосылатын жалғыз компонент.

  • Updater: ұсынымдарды алады, VPA объектілерін жаңартады және ұсынылған ресурстардың жаңа және бұрыннан бар подтар үшін қолжетімді болуын қадағалайды. Жұмыс режиміне байланысты Updater компоненті Admission Controller компонентіне бар подты жасауға немесе жаңартуға сұрау жібереді. Updater компонентінің жұмыс режимдері:

    • Off — өшірілген, тек Recommender компоненті жұмыс істейді. Ұсынымдар жасалады, бірақ жаңа да, бұрыннан бар да подтарға қолданылмайды.
    • Recreate — толық көлемде жұмыс істейді. Recreate режимінде Updater компоненті, егер осы под сұрайтын ресурстар Recommender есептеген мәндерге сәйкес келмесе, подты жояды. Содан кейін ол Admission Controller компонентіне ұсынылған мәндермен осы подты қайта жасауға сұрау жібереді. Жаңа подтар бірден ұсынылған мәндермен жасалады. Recreate режиміндегі жұмыс туралы толығырақ Vertical Pod Autoscaler пайдалану бөлімінен қараңыз.
    • Initial — тек жаңа подтар үшін жұмыс істейді. Admission Controller компоненті VPA ұсынымдарына сәйкес ресурс сұрауларын тек жаңа подтарда жаңартады, бірақ бұрыннан бар подтардың жойылуын, қайта жасалуын немесе ресурстарының жаңартылуын бастамайды.
  • Admission Controller: Updater компонентінің жұмыс режиміне байланысты подтарды жасау немесе жаңарту кезеңінде жұмыс істейді. Admission Controller компоненті VPA ұсынымдарын жаңа подтар жасалған кезде, сондай-ақ бұрыннан іске қосылған подтарға қолданады, қолдан орнатылған мәндерді елемейді.

Мақала пайдалы болды ма?