Лепшыя практыкі і рэкамендацыі для запуску кантэйнераў і Kubernetes у вытворчых асяроддзях

Лепшыя практыкі і рэкамендацыі для запуску кантэйнераў і Kubernetes у вытворчых асяроддзях
Экасістэма тэхналогій кантэйнерызацыі хутка развіваецца і мяняецца, таму ў гэтай сферы не хапае добрых рабочых практык. Тым не менш Kubernetes і кантэйнеры выкарыстоўваюць усё часцей - як для мадэрнізацыі старых прыкладанняў, так і для распрацоўкі сучасных хмарных прыкладанняў. 

Каманда Kubernetes aaS ад Mail.ru сабрала прагнозы, парады і лепшыя практыкі для лідэраў рынку ад Gartner, 451 Research, StacxRoх і іншых. Яны дазволяць забяспечыць і паскорыць разгортванне кантэйнераў у вытворчых асяроддзях.

Як зразумець, ці гатовая ваша кампанія разгортваць кантэйнеры ў вытворчым асяроддзі

Па дадзеных Gartner, у 2022 годзе больш за 75% арганізацый будуць выкарыстоўваць кантэйнерызаваныя прыкладанні ў вытворчасці. Гэта значна больш, чым у цяперашні час, калі такія прыкладанні выкарыстоўвае менш за 30% кампаній. 

Згодна з даследаванні 451, прагназуемы рынак для прымянення кантэйнерных тэхналогій у 2022 годзе, складзе $ 4,3, 2019 млрд. Гэта больш чым удвая перавышае сумы, прагназуемыя ў 30 годзе, тэмпы росту рынку складаюць XNUMX%.

В апытанні Portworx і Aqua Security 87 працэнтаў рэспандэнтаў заявілі, што цяпер яны выкарыстоўваюць кантэйнерныя тэхналогіі. Для параўнання - у 2017 годзе такіх рэспандэнтаў было 55%. 

Нягледзячы на ​​??якая расце цікавасць і рост укаранення кантэйнераў, іх запуск у вытворчасць патрабуе навучання з-за тэхналагічнай няспеласці і адсутнасці ноу-хау. Арганізацыі павінны рэалістычна глядзець на бізнес-працэсы, якія патрабуюць кантэйнерызацыі прыкладанняў. IT-лідэрам варта ацаніць, ці ёсць у іх набор навыкаў для руху наперад з улікам неабходнасці хуткага навучання. 

Эксперты Gartner лічаць, што пытанні на малюнку ніжэй дапамогуць зразумець, ці гатовыя вы да разгортвання кантэйнераў у вытворчасці:

Лепшыя практыкі і рэкамендацыі для запуску кантэйнераў і Kubernetes у вытворчых асяроддзях

Самыя частыя памылкі пры ўжыванні кантэйнераў у вытворчасці

Арганізацыі часта недаацэньваюць намаганні, неабходныя для эксплуатацыі кантэйнераў у вытворчасці. Gartner выявіў некалькі распаўсюджаных памылак у сцэнарах кліентаў пры ўжыванні кантэйнераў у вытворчых асяроддзях:

Лепшыя практыкі і рэкамендацыі для запуску кантэйнераў і Kubernetes у вытворчых асяроддзях

Як забяспечыць бяспеку кантэйнераў

Бяспекай нельга займацца "потым". Яна павінна быць убудавана ў працэс DevOps, таму з'явіўся нават спецыяльны тэрмін – DevSecOps. Арганізацыям неабходна планаваць абарону кантэйнернага асяроддзя на працягу ўсяго жыццёвага цыклу распрацоўкі, які ўключае ў сябе працэс зборкі і распрацоўкі, разгортванне і запуск прыкладання.

Рэкамендацыі ад Gartner

  1. Інтэгруйце працэс сканавання выяў прыкладання для пошуку ўразлівасцяў у канвеер бесперапыннай інтэграцыі/бесперапыннай дастаўкі (CI/CD). Прыкладанні скануюцца на этапах зборкі і запуску ПЗ. Падкрэсліце неабходнасць сканавання і ідэнтыфікацыі кампанентаў з адкрытым зыходным кодам, бібліятэк і структур. Выкарыстанне распрацоўшчыкамі старых уразлівых версій - адна з асноўных прычын уразлівасцяў кантэйнераў.
  2. Паляпшайце канфігурацыю з дапамогай тэстаў Center for Internet Security (СНД), якія даступныя як для Docker, так і для Kubernetes.
  3. Абавязкова прымяняйце кантроль доступу, забяспечце падзел абавязкаў і ўкараніце палітыку кіравання сакрэтамі. Канфідэнцыйная інфармацыя, такая як ключы Secure Sockets Layer (SSL) або ўліковыя дадзеныя базы дадзеных, шыфруецца аркестратарам або іншымі службамі кіравання і прадастаўляецца падчас выканання
  4. Пазбягайце кантэйнераў з падвышанымі прывілеямі пры дапамозе кіравання палітыкамі бяспекі, гэта паменшыць патэнцыйныя рызыкі ўзлому.
  5. Выкарыстоўвайце інструменты бяспекі, якія падаюць белыя спісы, паводніцкі маніторынг і выяўленне анамалій для прадухілення зламысных дзеянняў.

Рэкамендацыі ад StacxRox:

  1. Выкарыстоўвайце убудаваныя магчымасці Kubernetes. Наладзьце доступ для карыстальнікаў, выкарыстоўваючы ролі. Пераканайцеся, што вы не падаеце непатрэбныя дазволы асобным суб'ектам, нават калі можа спатрэбіцца некаторы час для абдумвання мінімальна неабходных дазволаў. Можа здацца павабным даць адміністратару кластара шырокія прывілеі, бо гэта эканоміць час на пачатковым этапе. Аднак любы кампраміс ці памылкі ва ўліковым запісе могуць прывесці да разбуральных наступстваў у далейшым. 
  2. Пазбягайце дубліравання дазволаў доступу. Часам бывае карысна зрабіць так, каб розныя ролі перакрываліся, але гэта можа прывесці да праблем з эксплуатацыяй, а таксама стварыць "мёртвыя зоны" пры выдаленні дазволаў. Акрамя таго, важна выдаляць невыкарыстоўваныя і неактыўныя ролі.
  3. Усталюйце сеткавыя палітыкі: ізалюйце модулі, каб абмежаваць да іх доступ; відавочна дазвольце доступ у інтэрнэт тым модулям, якім гэта неабходна, выкарыстоўваючы пазнакі; відавочна дазвольце сувязь паміж тымі модулямі, якім трэба мець зносіны сябар з сябрам. 

Як арганізаваць маніторынг кантэйнераў і сэрвісаў у іх

Бяспека і маніторынг - асноўныя праблемы кампаній пры разгортванні кластараў Kubernetes. Распрацоўнікі заўсёды мацней сканцэнтраваны на функцыях прыкладанняў, якія яны распрацоўваюць, чым на аспектах маніторынгу гэтых прыкладанняў

Рэкамендацыі ад Gartner:

  1. Старайцеся маніторыць стан кантэйнераў або сэрвісаў у іх сумесна з маніторынгам хост-сістэм.
  2. Аддавайце перавагу вытворцам і інструментам з глыбокай інтэграцыяй у аркестрацыю кантэйнераў, асабліва Kubernetes.
  3. Выбірайце прылады, якія падаюць дэталёвае лагіраванне, аўтаматычнае выяўленне сэрвісаў і рэкамендацыі ў рэальным часе з выкарыстаннем аналітыкі і/ці машыннага навучання.

У блогу SolarWinds раяць:

  1. Выкарыстоўваць прылады для аўтаматычнага выяўлення і адсочвання метрык кантэйнера, карэляцыі метрык прадукцыйнасці, такіх як працэсар, памяць і час безадмоўнай працы.
  2. Забяспечыць аптымальнае планаванне ёмістасці шляхам прагназавання тэрмінаў вычарпання ёмістасці на аснове паказчыкаў маніторынгу кантэйнераў.
  3. Арганізаваць маніторынг прыкладанняў, размешчаных у кантэйнерах, па параметрах даступнасці і прадукцыйнасці, што карысна як для планавання ёмістасці, так і для ўхілення праблем прадукцыйнасці.
  4. Аўтаматызаваць працоўныя працэсы, падаючы падтрымку кіравання і маштабавання для кантэйнераў і іх асяроддзяў размяшчэння.
  5. Аўтаматызаваць кантроль доступу, каб адсочваць базу карыстальнікаў, адключаць састарэлыя і гасцявыя ўліковыя запісы, выдаляць лішнія прывілеі.
  6. Пераканайцеся, што ваш набор інструментаў можа адсочваць гэтыя кантэйнеры і прыкладанні ў розных асяроддзях (хмарных, лакальных або гібрыдных) для візуалізацыі і супастаўлення прадукцыйнасці ў інфраструктуры, сеткі, сістэмах і дадатках.

Як захоўваць дадзеныя і забяспечыць іх бяспеку

З павелічэннем колькасці працоўных кантэйнераў з захаваннем стану кліентам трэба ўлічваць знаходжанне дадзеных за межамі хаста, а таксама неабходнасць абароны гэтых дадзеных. 

Па дадзеных апытання Portworx і Aqua Security, бяспека дадзеных стаіць на першым месцы ў спісе праблем бяспекі, адзначаных большасцю рэспандэнтаў (61%). 

Шыфраванне дадзеных з'яўляецца асноўнай стратэгіяй бяспекі (64%), аднак рэспандэнты таксама выкарыстоўваюць маніторынг часу выканання

(49%), сканаванне ўразлівасцяў у рэестрах (49%), сканаванне ўразлівасцяў у канвеерах CI/CD (49%) і блакаванне анамалій праз абарону часу выкананні (48%).

Рэкамендацыі ад Gartner:

  1. Выбірайце рашэнні захоўвання дадзеных, пабудаваныя на прынцыпах мікрасэрвіснай архітэктуры. Лепш спыніцца на тых, што адпавядаюць патрабаванням па захоўванні дадзеных для сэрвісаў кантэйнераў, апаратна незалежныя, кіруюцца API, маюць размеркаваную архітэктуру, падтрымліваюць лакальнае разгортванне і разгортванне ў агульнадаступным воблаку.
  2. Пазбягайце прапрыетарных убудоў і інтэрфейсаў. Выбірайце вытворцаў, якія забяспечваюць інтэграцыю з Kubernetes і падтрымліваюць стандартныя інтэрфейсы, такія як CSI (Container Storage Interfaces).

Як працаваць з сеткамі

Традыцыйная мадэль карпаратыўнай сеткі, дзе IT-адмыслоўцы ствараюць сеткавыя асяроддзі распрацоўкі, тэставанні, забеспячэнні якасці і вытворчасці для кожнага праекту, не заўсёды добра ўзгадняецца з працоўным працэсам бесперапыннай распрацоўкі. Акрамя таго, кантэйнерныя сеткі ахопліваюць некалькі ўзроўняў.

В блогу Magalix сабралі правілы высокага ўзроўню, якім павінна адпавядаць рэалізацыя кластарна-сеткавага рашэння:

  1. Поды, запланаваныя на адным і тым жа вузле, павінны мець магчымасць абменьвацца дадзенымі з іншымі модулямі без выкарыстання NAT (пераўтварэнне сеткавых адрасоў).
  2. Усе сістэмныя дэманы (фонавыя працэсы, напрыклад kubelet), якія працуюць на пэўным вузле, могуць узаемадзейнічаць з подамі, якія працуюць на тым жа вузле.
  3. Поды, якія выкарыстоўваюць сетка хаста, павінны мець магчымасць звязвацца з усімі іншымі подамі на ўсіх іншых вузлах без выкарыстання NAT. Звярніце ўвагу, што сетка хастоў падтрымліваецца толькі на хастах Linux.

Сеткавыя рашэнні павінны быць цесна інтэграваныя з прымітывамі і палітыкамі Kubernetes. ІТ-кіраўнікі павінны імкнуцца да высокай ступені аўтаматызацыі сеткі, прадастаўляць распрацоўшчыкам належныя інструменты і дастатковую гнуткасць.

Рэкамендацыі ад Gartner:

  1. Высветліце, ці падтрымлівае ваш CaaS (кантэйнер як сэрвіс) або ваша сетка SDN (Software Defined Network) сеткі Kubernetes. Калі няма або падтрымка недастатковая, выкарыстоўвайце для сваіх кантэйнераў сеткавы інтэрфейс CNI (Container Network Interface), які падтрымлівае неабходны функцыянал і палітыкі.
  2. Пераканайцеся, што ваш CaaS або PaaS (платформа як сэрвіс) падтрымлівае стварэнне ўваходзяць кантролераў і/або балансавальнікаў нагрузкі, якія размяркоўваюць уваходны трафік паміж вузламі кластара. Калі такой магчымасці няма, вывучыце выкарыстанне іншых проксі ці механізмаў service mesh.
  3. Навучыце сваіх сеткавых інжынераў працы з сеткамі Linux і прыладамі сеткавай аўтаматызацыі, каб паменшыць парыў у навыках і падвысіць гнуткасць.

Як кіраваць жыццёвым цыклам прыкладанняў

Для аўтаматызаванай і бесперабойнай дастаўкі прыкладанняў трэба дапоўніць аркестроўку кантэйнераў іншымі інструментамі аўтаматызацыі, такімі як прадукты інфраструктуры як код (IaC). Да іх адносяць Chef, Puppet, Ansible і Terraform. 

Таксама патрабуюцца сродкі аўтаматызацыі зборкі і выкаткі прыкладанняў (гл.Магічны квадрант для аркестроўкі выпуску прыкладанняў»). Кантэйнеры таксама даюць магчымасці для пашырэння, аналагічныя магчымасцям, які існавалі пры разгортванні віртуальных машын (ВМ). Такім чынам, у IT-кіраўнікоў павінны быць інструменты кіравання жыццёвым цыклам кантэйнераў.

Рэкамендацыі ад Gartner:

  1. Усталюйце стандарты базавых вобразаў кантэйнераў з улікам памеру, ліцэнзавання і гнуткасці для дадання кампанентаў распрацоўшчыкамі.
  2. Выкарыстоўвайце сістэмы кіравання канфігурацыяй для кіравання жыццёвым цыклам кантэйнераў, якія размяшчаюць канфігурацыю ў пластах на аснове базавых вобразаў, якія знаходзяцца ў публічных або прыватных рэпазітарах.
  3. Інтэгруйце платформу CaaS з інструментамі аўтаматызацыі, каб аўтаматызаваць увесь працоўны працэс прыкладання.

Як кіраваць кантэйнерамі з дапамогай аркестратараў

Асноўныя функцыянальныя магчымасці для разгортвання кантэйнераў прадастаўляюцца на ўзроўнях аркестроўкі і планавання. Пры планаванні кантэйнеры размяшчаюцца на найбольш аптымальных хастах у кластары, як прадпісана патрабаваннямі ўзроўню аркестроўкі. 

Kubernetes дэ-факта стаў стандартам аркестроўкі кантэйнераў з актыўнай супольнасцю, яго падтрымлівае большасць вядучых камерцыйных пастаўшчыкоў. 

Рэкамендацыі ад Gartner:

  1. Вызначыце базавыя патрабаванні да элементаў кіравання бяспекай, маніторынгу, кіраванню палітыкамі, захаванню дадзеных, кіраванню сеткамі і жыццёвым цыклам кантэйнераў.
  2. На аснове гэтых патрабаванняў абярыце прыладу, які найлепшай выявай адпавядае вашым патрабаванням і сцэнарам выкарыстання.
  3. Выкарыстоўвайце даследаванні Gartner (гл.Як абраць мадэль разгортвання Kubernetes»), каб зразумець добрыя якасці і недахопы розных мадэляў разгортвання Kubernetes і выбраць найбольш прыдатную для вашай задачы.
  4. Абярыце пастаўшчыка, які можа забяспечыць гібрыдную аркестроўку для працоўных кантэйнераў у некалькіх асяроддзях з цеснай інтэграцыяй з бэкендамі, агульнымі планамі кіравання і ўзгодненымі мадэлямі коштаўтварэння.

Як выкарыстоўваць магчымасці хмарных правайдэраў

У Gartner лічаць, Што цікавасць да разгортвання кантэйнераў у агульнадаступным воблаку IaaS расце з-за даступнасці гатовых прапаноў CaaS, а таксама цеснай інтэграцыі гэтых прапаноў з іншымі прадуктамі, прапанаванымі хмарнымі правайдэрамі.

Аблокі IaaS прапануюць спажыванне рэсурсаў па патрабаванні, хуткую маштабаванасць і кіраванне паслугамі, якое дапаможа пазбегнуць неабходнасці ў глыбокіх ведах аб інфраструктуры і яе абслугоўванні. Большасць хмарных правайдэраў прапануюць паслугу кіравання кантэйнерамі, а некаторыя прапануюць некалькі варыянтаў аркестрацыі. 

Ключавыя хмарныя пастаўшчыкі кіраваных паслуг прадстаўлены ў табліцы: 

Воблачна правайдэр
Тып абслугоўвання
Прадукт/сэрвіс

Alibaba
Native Cloud Service
Alibaba Cloud Container Service, Alibaba Cloud Container Service for Kubernetes

Amazon Web Services (AWS)
Native Cloud Service
Amazon Elastic Container Services (ECS), Amazon ECS for Kubernetes (EKS), AWS Fargate

Giant Swarm
MSP
Giant Swarm Managed Kubernetes Infrastructure

Google
Native Cloud Service
Google Container Engine (GKE)

IBM
Native Cloud Service
IBM Cloud Kubernetes Service

Microsoft
Native Cloud Service
Azure Kubernetes Service, Azure Service Fabric

Аракул
Native Cloud Service
OCI Container Engine for Kubernetes

Platform9
MSP
Кіраваў Kubernetes

Red Hat
Размешчаная служба
OpenShift Dedicated & Online

VMware
Размешчаная служба
Cloud PKS (Beta)

Mail.ru Cloud Solutions*
Native Cloud Service
Mail.ru Cloud Containers

* Не будзем хаваць, мы тут самі сябе дадалі пры перакладзе 🙂

Пастаўшчыкі агульнадаступных аблокаў таксама дадаюць новыя магчымасці і выпускаюць лакальныя прадукты. У найбліжэйшай будучыні правайдэры аблокаў будуць развіваць падтрымку гібрыдных аблокаў і мультывоблачных асяроддзяў. 

Рэкамендацыі Gartner:

  1. Аб'ектыўна ацаніце магчымасці вашай арганізацыі разгортваць і кіраваць адпаведнымі прыладамі, а таксама разгледзьце альтэрнатыўныя сэрвісы кіравання хмарнымі кантэйнерамі.
  2. Старанна выбірайце ПЗ, выкарыстоўвайце open source там, дзе гэта магчыма.
  3. Выбірайце пастаўшчыкоў з адзінымі аперацыйнымі мадэлямі ў гібрыдных асяроддзях, якія прапануюць кіраванне аб'яднанымі кластарамі з адзінай панэлі, а таксама правайдэраў, якія спрашчаюць самастойнае выкарыстанне IaaS.

Некалькі парадаў па выбары правайдэра Kubernetes aaS з блога Replex:

  1. Варта шукаць дыстрыбутывы, якія падтрымліваюць высокую гатоўнасць са скрынкі. Гэта ўключае падтрымку некалькіх асноўных архітэктур, высокадаступных кампанентаў etcd, а таксама рэзервовае капіраванне і аднаўленне.
  2. Каб забяспечыць мабільнасць асяроддзяў Kubernetes, лепш выбіраць хмарных правайдэраў, якія падтрымліваюць шырокі спектр мадэляў разгортвання: ад лакальных да гібрыдных і мультывоблачных. 
  3. Прапановы правайдэраў таксама варта ацэньваць з улікам прастаты налады, усталёўкі і стварэнні кластара, а таксама абнаўленняў, маніторынгу і ўхіленні непаладак. Базавае патрабаванне - падтрымка цалкам аўтаматызаваных абнаўленняў кластара з нулявым часам прастою. Абранае рашэнне таксама павінна дазваляць запускаць абнаўленні ўручную. 
  4. Кіраванне ідэнтыфікацыяй і доступам важна як з пункта гледжання бяспекі, так і з пункта гледжання кіравання. Пераканайцеся, што абраны дыстрыбутыў Kubernetes падтрымлівае інтэграцыю са сродкамі аўтэнтыфікацыі і аўтарызацыі, якія выкарыстоўваюцца ўнутры кампаніі. RBAC і дэталёвы кантроль доступу таксама важны набор функцый.
  5. Абраны дыстрыбутыў павінен альбо мець уласнае сеткавае рашэнне, якое вызначаецца праграмным забеспячэннем і якое ахоплівае шырокі спектр патрабаванняў, што прад'яўляюцца рознымі прыкладаннямі ці інфраструктурай, альбо падтрымліваць адну з папулярных рэалізацый сетак на аснове CNI, уключаючы Flannel, Calico, kube-router ці OVN.

Укараненне кантэйнераў у вытворчасць становіцца асноўным напрамкам, аб чым сведчаць вынікі апытання, праведзенага на сесіі Gartner па інфраструктуры, аперацыях і хмарных стратэгіях (IOCS) у снежні 2018 года:

Лепшыя практыкі і рэкамендацыі для запуску кантэйнераў і Kubernetes у вытворчых асяроддзях
Як бачым, 27% апытаных ужо выкарыстоўваюць кантэйнеры ў працы, а 63% збіраюцца гэта зрабіць.

В апытанні Portworx і Aqua Security 24% рэспандэнтаў паведамілі, што інвестуюць больш за паўмільёна долараў за год на кантэйнерныя тэхналогіі, а 17% рэспандэнтаў трацяць на іх больш за мільён долараў за год. 

Артыкул падрыхтаваны камандай хмарнай платформы Mail.ru Cloud Solutions.

Што яшчэ пачытаць па тэме:

  1. Лепшыя практыкі DevOps: справаздача DORA.
  2. Kubernetes у духу пірацтва з шаблонам па ўкараненні.
  3. 25 карысных інструментаў для разгортвання і ўкаранення Kubernetes.

Крыніца: habr.com

Дадаць каментар