Kubernetes-ті жақсартатын 11 құрал

Kubernetes-ті жақсартатын 11 құрал

Барлық серверлік платформалар, тіпті ең қуатты және ауқымды платформалар да барлық қажеттіліктерді қанағаттандыра бермейді. Кубернетес өздігінен керемет жұмыс істегенімен, оның толық болуы үшін дұрыс бөліктер болмауы мүмкін. Сіз әрқашан қажеттіліктеріңізді елемейтін немесе Kubernetes әдепкі орнатуда жұмыс істемейтін ерекше жағдайды таба аласыз - мысалы, дерекқорды қолдау немесе CD жұмысы.

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

Дарбазашы: саясатты басқару

Жоба Саясат агентін ашыңыз (OPA) кіруден бастап қызмет көрсету торына дейін Kubernetes-тегі бұлттық қолданба стектерінің үстіне саясаттарды жасау мүмкіндігін береді. Қақпашы Kubernetes-ке кластер бойынша саясаттарды автоматты түрде енгізу мүмкіндігін береді, сонымен қатар саясатты бұзатын кез келген оқиғаларды немесе ресурстарды тексеруді қамтамасыз етеді. Мұның барлығы ресурстар өзгерген кезде іске қосылатын Webhooks қабылдау менеджері Kubernetes жүйесіндегі салыстырмалы түрде жаңа механизммен өңделеді. Gatekeeper көмегімен OPA саясаттары тұрақты бақылауды қажет етпестен Kubernetes кластерінің денсаулығының тағы бір бөлігіне айналады.

Гравитация: портативті Кубернетес кластерлері

Қолданбаны Kubernetes қолданбасына орналастырғыңыз келсе, көптеген қолданбаларда осы процесті бағыттайтын және автоматтандыратын Helm диаграммасы бар. Бірақ Kubernetes кластерін сол күйінде алып, оны басқа жерде шығарғыңыз келсе ше?

ауырлық Кубернетес кластерлерінің күйінің суретін, олардың контейнерлік кескіндерге арналған тізілімдерін және «қолданбалы пакеттер» деп аталатын іске қосылған қолданбаларды алады. Кәдімгі файл болып табылатын мұндай бума .tar, кластерді Kubernetes іске қоса алатын кез келген жерде көшіре алады.

Gravity сонымен қатар мақсатты инфрақұрылымның бастапқы инфрақұрылыммен бірдей әрекет ететінін, сонымен қатар мақсаттағы Kubernetes ортасының қолжетімділігін тексереді. Gravity қолданбасының ақылы нұсқасы сонымен қатар RBAC және әртүрлі кластер орналастыруларында қауіпсіздік параметрлерін синхрондау мүмкіндігін қамтитын қауіпсіздік мүмкіндіктерін қосады.

Соңғы негізгі шығарылым, Gravity 7, кескіннен мүлдем жаңа кластерді айналдырудың орнына, Gravity кескінін бар Kubernetes кластеріне итермелей алады. Gravity 7 сонымен қатар Gravity кескінін пайдаланбай орнатылған кластерлермен жұмыс істей алады. Gravity сонымен қатар SELinux жүйесін қолдайды және Teleport SSH шлюзімен жергілікті түрде жұмыс істейді.

Канико: Кубернетес кластеріндегі контейнерлерді салу

Контейнер кескіндерінің көпшілігі контейнерлер дестесінен тыс жүйелерге салынған. Дегенмен, кейде суретті контейнерлер дестесінің ішінде, мысалы, жұмыс істейтін контейнерде немесе Кубернетес кластерінде құру қажет.

Канико контейнерлік ортада контейнерлерді құрастырады, бірақ Docker сияқты контейнерлеу қызметіне тәуелді емес. Оның орнына, Kaniko файлдық жүйені негізгі кескіннен шығарады, шығарылған файлдық жүйенің жоғарғы жағындағы пайдаланушы кеңістігіндегі барлық құрастыру пәрмендерін іске қосады, әрбір пәрменнен кейін файлдық жүйенің суретін алады.

Ескерту: Канико қазіргі уақытта (2020 жылдың мамыры, шамамен. аудармашы) Windows контейнерлерін құра алмайды.

Kubecost: Kubernetes іске қосу құнының параметрлері

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

Кубекост Kubernetes параметрлерін нақты уақыт режимінде өңдейді, нәтижесінде кластер үшін ай сайынғы құны бар панельде көрсетілетін негізгі бұлттық провайдерлердегі кластерлерді іске қосудан жаңартылған шығындар туралы ақпарат алынады. ЖЖҚ, процессор уақыты, GPU және дискінің ішкі жүйесі бағалары Kubernetes құрамдастары (контейнер, подключ, қызмет және т.б.) бойынша бөлінген.

Kubecost сонымен қатар Amazon S3 шелектері сияқты кластерден тыс ресурстардың құнын қадағалайды, бірақ бұл AWS-мен шектеледі. Құн деректерін Prometheus жүйесіне жіберуге болады, осылайша сіз оны кластердің әрекетін бағдарламалық түрде өзгерту үшін пайдалана аласыз.

15 күндік журнал деректері жеткілікті болса, Kubecost тегін пайдалануға болады. Қосымша мүмкіндіктер үшін баға 199 түйінді бақылау үшін ай сайын $50 басталады.

KubeDB: Kubernetes-те жауынгерлік дерекқорларды іске қосу

Деректер базаларын Kubernetes-те тиімді іске қосу өте қиын. MySQL, PostgreSQL, MongoDB және Redis үшін Kubernetes операторларын табасыз, бірақ олардың барлығында кемшіліктер бар. Сондай-ақ, әдеттегі Kubernetes мүмкіндіктер жинағы анықталған дерекқор мәселелерінің көпшілігін тікелей шешпейді.

KubeDB дерекқорларды басқару үшін Kubernetes мәлімдемелерін жасауға көмектеседі. Сақтық көшірмелерді орындау, клондау, бақылау, суретке түсіру және декларативті дерекқорды жасау оның құрамдас бөліктері болып табылады. Мүмкіндік қолдауы дерекқорға байланысты әр түрлі болуы мүмкін екенін ескеріңіз. Мысалы, кластер құру PostgreSQL үшін жұмыс істейді, бірақ MySQL үшін емес (қазірдің өзінде бар, дұрыс көрсетілгендей dnbstd, шамамен. аудармашы).

Кубе-маймыл: Кубернетес үшін хаос маймымы

Стресс-тестілеудің ең қатесіз әдісі кездейсоқ бұзылулар болып саналады. Бұл Netflix-тің Chaos Monkey-тің артындағы теория, ол виртуалды машиналар мен өндірістік контейнерлерді кездейсоқ өшіріп, әзірлеушілерді икемді жүйелер құруға «ынталандырады». Кубе-маймыл — Kubernetes кластерлері үшін стресс-тестілеудің бірдей негізгі теориясын жүзеге асыру. Ол сіз тағайындаған кластердегі қосқыштарды кездейсоқ жою арқылы жұмыс істейді және оны белгілі бір уақыт аралығында іске қосу үшін конфигурациялауға болады.

AWS үшін Kubernetes кіріс контроллері

Kubernetes деп аталатын қызмет арқылы сыртқы жүктеме теңестіруші мен кластерлік желі қызметтерін ұсынады Кіріс AWS жүктемені теңестіру функциясын қамтамасыз етеді, бірақ оны Kubernetes мүмкіндіктерімен автоматты түрде байланыстырмайды. AWS үшін Kubernetes кіріс контроллері бұл олқылықты жояды.

Ол кластердегі әрбір кіру үшін AWS ресурстарын автоматты түрде басқарады, жаңа кіру ресурстары үшін жүктеме теңестірушілерін жасайды және ресурстар жойылған кезде жүктеме теңестірушілерін жояды. Ол кластер күйінің тұрақты болып қалатынына көз жеткізу үшін CloudFormation пайдаланады. Ол сонымен қатар CloudWatch Alarm параметрлерін қолдайды және SSL сертификаттары және EC2 автоматты масштабтау топтары сияқты кластерде пайдаланылатын басқа элементтерді автоматты түрде басқарады.

Kubespray: Kubernetes автоматты орнату

Кубеспрай аппараттық серверлерге орнатудан негізгі қоғамдық бұлттарға дейін өндіріске дайын Kubernetes кластерін орнатуды автоматтандырады. Ол орналастыруды іске қосу және аппараттық серверлерде орнатылған кезде таңдаған танымал Linux дистрибутивінде таңдауыңыз бойынша желілік қондырма (мысалы, Flannel, Calico және басқалар) арқылы қол жетімді жоғары кластерді нөлден бастау үшін Ansible (Vagrant - қосымша) пайдаланады.

Skaffold: Kubernetes үшін итеративті даму

Скаффолд - Kubernetes-те CD қолданбаларын ұйымдастыру үшін пайдаланылатын Google құралдарының бірі. Бастапқы кодқа өзгертулер енгізген бойда, skaffold мұны автоматты түрде анықтайды, құрастыруды және орналастыруды бастайды және қандай да бір қателер болса ескертеді. Skaffold толығымен клиент жағында жұмыс істейді, сондықтан шағын орнату немесе жаңарту мәселелері болуы мүмкін. Оны қолданыстағы CICD құбырларымен пайдалануға болады және сонымен қатар кейбір сыртқы құрастыру құралдарымен, негізінен Google Bazel бағдарламасымен интерфейс жасай алады.

Тереза: Кубернетестегі ең қарапайым PaaS

Teresa Kubernetes үстінде қарапайым PaaS іске қосатын қолданбаларды орналастыру жүйесі. Топтарға ұйымдастырылған пайдаланушылар өздеріне тиесілі қолданбаларды орналастыра және басқара алады. Бұл қолданбаға сенетін және Kubernetes және оның барлық қиындықтарымен айналысқысы келмейтін адамдар үшін істерді біршама жеңілдетеді.

Еңкейту: Kubernetes кластерлеріне ағынды контейнер жаңартулары

тентWindmill Engineering әзірлеген , әртүрлі Docker-файлдарындағы өзгерістерді бақылайды, содан кейін сәйкес контейнерлерді біртіндеп Kubernetes кластеріне орналастырады. Негізінде, ол Dockerfiles файлдарын жаңарту арқылы нақты уақытта өндірістік кластерді жаңартуға мүмкіндік береді. Еңкейту кластер ішінде құрастырылады, тек бастапқы кодты өзгерту қажет. Сондай-ақ, түзету үшін топ мүшелерімен бөлісу үшін, кластердің денсаулығының суретін алуға және қате жағдайларын тікелей Tilt арқылы түсіруге болады.

PS Біз осы құралдардың барлығын бірнеше рет қолдандық Саутбридж біздің қызық қолымызбен зерттеді. Ақпан айында офлайн қарқынды курстарда нақты тәжірибелерді ұсыну (үміттенемін!). Кубернетес базасы 8 жылғы 10–2021 ақпан. Және Kubernetes Mega 12-14 ақпан. Шынымды айтсам, біз оффлайн оқудың жылы және жігерлі атмосферасын сағынамыз. Технологиялар қаншалықты озық болса да, пікірлес адамдар жиналған кездегі адамдардың жанды қарым-қатынасын және ерекше атмосфераны алмастыра алмайды.

Ақпарат көзі: www.habr.com

пікір қалдыру