Seguridad sa Helm

Ang esensya sa istorya bahin sa labing inila nga manager sa package alang sa Kubernetes mahimong mahulagway gamit ang usa ka emoji:

  • ang kahon mao ang Helm (nga mao ang pinakaduol nga butang sa pinakabag-o nga pagpagawas sa Emoji);
  • lock - seguridad;
  • ang gamay nga tawo mao ang solusyon sa problema.

Seguridad sa Helm

Sa tinuud, ang tanan mahimong labi ka komplikado, ug ang istorya puno sa mga teknikal nga detalye bahin Unsaon paghimo nga luwas ang Helm.

  • Sa mubo kung unsa ang Helm kung wala nimo nahibal-an o nakalimtan. Unsang mga problema ang nasulbad niini ug asa kini nahimutang sa ekosistema.
  • Atong tan-awon ang arkitektura sa Helm. Wala’y panag-istoryahanay bahin sa seguridad ug kung giunsa paghimo ang usa ka himan o solusyon nga labi ka luwas nga kompleto nga wala’y pagsabut sa arkitektura sa sangkap.
  • Atong hisgotan ang mga sangkap sa Helm.
  • Ang labing nagdilaab nga pangutana mao ang umaabot - ang bag-ong bersyon sa Helm 3. 

Ang tanan niini nga artikulo magamit sa Helm 2. Kini nga bersyon sa pagkakaron anaa sa produksyon ug lagmit mao ang imong gigamit karon, ug kini ang bersyon nga adunay mga risgo sa seguridad.


Mahitungod sa mamumulong: Alexander Khayorov (allexx) nag-uswag sulod sa 10 ka tuig, nga nagtabang sa pagpalambo sa sulod Moscow Python Conf++ ug miapil sa komite Helm Summit. Karon nagtrabaho siya sa Chainstack isip usa ka lead development - kini usa ka hybrid tali sa usa ka development manager ug usa ka tawo nga responsable sa paghatud sa katapusang mga pagpagawas. Sa ato pa, kini nahimutang sa natad sa panggubatan, diin ang tanan mahitabo gikan sa paghimo sa usa ka produkto hangtod sa operasyon niini.

Ang Chainstack usa ka gamay, aktibo nga nagtubo nga startup kansang misyon mao ang paghimo sa mga kliyente nga makalimtan ang bahin sa imprastraktura ug pagkakomplikado sa pag-operate sa mga desentralisadong aplikasyon; ang development team nahimutang sa Singapore. Ayaw hangyoa ang Chainstack nga ibaligya o paliton ang cryptocurrency, apan itanyag nga maghisgot bahin sa mga gambalay sa blockchain sa negosyo, ug sila malipayon nga motubag kanimo.

Helm

Kini usa ka package (chart) manager para sa Kubernetes. Ang labing intuitive ug unibersal nga paagi sa pagdala sa mga aplikasyon sa usa ka Kubernetes cluster.

Seguridad sa Helm

Kami, siyempre, naghisgot bahin sa usa ka labi ka istruktura ug industriyal nga pamaagi kaysa paghimo sa imong kaugalingon nga YAML manifests ug pagsulat sa gagmay nga mga gamit.

Ang timon mao ang pinakamaayo nga anaa karon ug popular.

Nganong Helm? Sa panguna tungod kay kini gisuportahan sa CNCF. Ang Cloud Native usa ka dako nga organisasyon ug mao ang ginikanan nga kompanya sa mga proyekto nga Kubernetes, etcd, Fluentd ug uban pa.

Ang laing importante nga kamatuoran mao nga ang Helm kay sikat kaayo nga proyekto. Sa diha nga nagsugod ako sa paghisgot kung giunsa paghimo ang Helm nga luwas kaniadtong Enero 2019, ang proyekto adunay usa ka libo nga mga bituon sa GitHub. Sa Mayo adunay 12 ka libo niini.

Daghang mga tawo ang interesado sa Helm, mao nga bisan kung dili nimo kini gamiton, makabenepisyo ka sa pagkahibalo bahin sa seguridad niini. Importante ang kaluwasan.

Ang kinauyokan nga Helm team gisuportahan sa Microsoft Azure ug busa usa ka medyo lig-on nga proyekto, dili sama sa uban pa. Ang pagpagawas sa Helm 3 Alpha 2 sa tunga-tunga sa Hulyo nagpakita nga adunay daghang mga tawo nga nagtrabaho sa proyekto, ug sila adunay tinguha ug kusog sa pagpalambo ug pagpalambo sa Helm.

Seguridad sa Helm

Gisulbad sa Helm ang daghang problema sa pagdumala sa aplikasyon sa Kubernetes.

  • Pagputos sa aplikasyon. Bisan ang usa ka aplikasyon sama sa "Hello, World" sa WordPress naglangkob na sa daghang mga serbisyo, ug gusto nimo nga i-package kini.
  • Pagdumala sa pagkakomplikado nga moabut sa pagdumala niini nga mga aplikasyon.
  • Usa ka siklo sa kinabuhi nga dili matapos human ma-install o ma-deploy ang aplikasyon. Nagpadayon kini nga buhi, kinahanglan kini nga ma-update, ug ang Helm nagtabang niini ug naningkamot sa pagdala sa husto nga mga lakang ug mga palisiya alang niini.

Pagputos kini giorganisar sa usa ka tin-aw nga paagi: adunay metadata sa bug-os nga sumala sa buhat sa usa ka regular nga manager sa package alang sa Linux, Windows o MacOS. Kana mao, usa ka repositoryo, mga dependency sa lain-laing mga packages, meta impormasyon alang sa mga aplikasyon, mga setting, configuration bahin, impormasyon indexing, ug uban pa Helm nagtugot kaninyo sa pagkuha ug sa paggamit sa tanan niini alang sa mga aplikasyon.

Pagdumala sa Komplikado. Kung ikaw adunay daghang mga aplikasyon sa parehas nga tipo, kinahanglan ang parameterization. Ang mga template gikan niini, apan aron malikayan ang paghimo sa imong kaugalingon nga paagi sa paghimo og mga template, mahimo nimong gamiton kung unsa ang gitanyag sa Helm gikan sa kahon.

Pagdumala sa Lifecycle sa Aplikasyon - sa akong opinyon, kini ang labing makapaikag ug wala masulbad nga pangutana. Mao kini ang hinungdan nga mianhi ko sa Helm balik sa adlaw. Kinahanglan namon nga bantayan ang lifecycle sa aplikasyon ug gusto namon nga ibalhin ang among CI / CD ug mga siklo sa aplikasyon sa kini nga paradigm.

Helm nagtugot kanimo sa:

  • pagdumala sa mga deployment, pagpaila sa konsepto sa configuration ug rebisyon;
  • malampuson nga paghimo sa rollback;
  • gamita ang mga kaw-it alang sa lainlaing mga panghitabo;
  • pagdugang dugang nga mga pagsusi sa aplikasyon ug pagtubag sa ilang mga resulta.

Dugang pa Ang Helm adunay "baterya" - usa ka dako nga gidaghanon sa mga lamian nga mga butang nga mahimong iapil sa porma sa mga plugins, nga nagpayano sa imong kinabuhi. Ang mga plugins mahimong isulat nga independente, sila medyo nahimulag ug wala magkinahanglan usa ka harmonious nga arkitektura. Kung gusto nimo ipatuman ang usa ka butang, girekomenda nako ang pagbuhat niini ingon usa ka plugin, ug mahimo’g ilakip kini sa upstream.

Helm gibase sa tulo ka nag-unang mga konsepto:

  • Repo sa tsart - paghulagway ug han-ay sa mga parameterization nga posible para sa imong manifest. 
  • Config —nga mao, ang mga kantidad nga ipadapat (teksto, mga kantidad sa numero, ug uban pa).
  • release nagkolekta sa duha ka ibabaw nga mga sangkap, ug sa tingub sila mahimong Release. Ang mga pagpagawas mahimong ma-bersiyon, sa ingon makab-ot ang usa ka organisado nga siklo sa kinabuhi: gamay sa panahon sa pag-instalar ug dako sa panahon sa pag-upgrade, pag-downgrade o pag-rollback.

Ang arkitektura sa timon

Ang dayagram sa konsepto nga naghulagway sa taas nga lebel nga arkitektura sa Helm.

Seguridad sa Helm

Pahinumdumi ko nimo nga ang Helm usa ka butang nga may kalabotan sa Kubernetes. Busa, dili nato mahimo nga walay Kubernetes cluster (rectangle). Ang kube-apiserver component anaa sa master. Kung walay Helm naa mi Kubeconfig. Ang Helm nagdala usa ka gamay nga binary, kung mahimo nimo kini tawgon nga, Helm CLI utility, nga gi-install sa usa ka kompyuter, laptop, mainframe - sa bisan unsang butang.

Apan kini dili igo. Ang Helm adunay sangkap sa server nga gitawag Tiller. Kini nagrepresentar sa mga interes sa Helm sulod sa cluster; kini usa ka aplikasyon sulod sa Kubernetes cluster, sama sa uban.

Ang sunod nga bahin sa Chart Repo usa ka repositoryo nga adunay mga tsart. Adunay usa ka opisyal nga tipiganan, ug mahimo nga adunay usa ka pribadong tipiganan sa usa ka kompanya o proyekto.

Pag-interaksyon

Atong tan-awon kung giunsa ang interaksyon sa mga sangkap sa arkitektura kung gusto naton mag-install usa ka aplikasyon gamit ang Helm.

  • Kami nagsulti Helm install, pag-access sa repository (Chart Repo) ug pagkuha og Helm chart.

  • Ang Helm utility (Helm CLI) nakig-interact sa Kubeconfig aron mahibal-an kung unsang cluster ang kontakon. 
  • Pagkadawat niini nga kasayuran, ang utility nagtumong sa Tiller, nga nahimutang sa among cluster, isip usa ka aplikasyon. 
  • Gitawagan ni Tiller ang Kube-apiserver aron magbuhat og mga aksyon sa Kubernetes, paghimo og pipila ka mga butang (mga serbisyo, pod, replika, sekreto, ug uban pa).

Sunod, atong pakomplikado ang diagram aron makita ang attack vector nga ang tibuok Helm architecture sa kinatibuk-an mahimong ma-expose. Ug unya maningkamot kami sa pagpanalipod kaniya.

Vektor sa pag-atake

Ang una nga potensyal nga huyang nga punto mao ang pribilihiyo nga API-ang tiggamit. Isip kabahin sa laraw, kini usa ka hacker nga nakakuha og admin access sa Helm CLI.

Dili pribilihiyo nga tiggamit sa API mahimo usab nga peligro kung kini duol sa usa ka lugar. Ang ingon nga tiggamit adunay lahi nga konteksto, pananglitan, mahimo siyang ayo sa usa ka cluster namespace sa mga setting sa Kubeconfig.

Ang labing makaiikag nga vector sa pag-atake mahimong usa ka proseso nga nahimutang sa sulod sa usa ka pungpong sa usa ka dapit duol sa Tiller ug maka-access niini. Mahimo kini nga web server o microservice nga nakakita sa palibot sa network sa cluster.

Ang usa ka lahi, apan labi ka sikat, nga variant sa pag-atake naglakip sa Chart Repo. Ang usa ka tsart nga gihimo sa usa ka walay prinsipyo nga tagsulat mahimong adunay dili luwas nga mga kapanguhaan, ug imong kompletohon kini pinaagi sa pagkuha niini sa pagtuo. O mahimo’g ilisan ang tsart nga imong gi-download gikan sa opisyal nga tipiganan ug, pananglitan, paghimo usa ka kapanguhaan sa porma sa mga palisiya ug pagpadako sa pag-access niini.

Seguridad sa Helm

Atong sulayan nga pugngan ang mga pag-atake gikan sa tanan niining upat ka kilid ug mahibal-an kung diin adunay mga problema sa arkitektura sa Helm, ug kung diin, tingali, wala.

Atong padak-on ang diagram, idugang ang daghang mga elemento, apan itago ang tanan nga sukaranan nga mga sangkap.

Seguridad sa Helm

Ang Helm CLI nakigkomunikar sa Chart Repo, nakig-uban sa Kubeconfig, ug ang trabaho gibalhin ngadto sa cluster ngadto sa Tiller component.

Ang Tiller girepresentahan sa duha ka butang:

  • Tiller-deploy svc, nga nagbutyag sa usa ka serbisyo;
  • Tiller-deploy pod (sa diagram sa usa ka kopya sa usa ka replika), diin ang tibuok nga load modagan, nga maka-access sa cluster.

Lainlaing mga protocol ug mga laraw ang gigamit alang sa interaksyon. Gikan sa panglantaw sa seguridad, kami labing interesado sa:

  • Ang mekanismo diin ang Helm CLI maka-access sa chart repo: unsa nga protocol, adunay authentication ug unsa ang mahimo niini.
  • Ang protocol diin ang Helm CLI, gamit ang kubectl, nakigsulti sa Tiller. Kini usa ka RPC server nga gi-install sa sulod sa cluster.
  • Ang Tiller mismo ma-access sa mga microservice nga nagpuyo sa cluster ug nakig-interact sa Kube-apiserver.

Seguridad sa Helm

Atong hisgotan kining tanan nga mga dapit sa han-ay.

RBAC

Walay kapuslanan sa paghisgot mahitungod sa bisan unsa nga seguridad alang sa Helm o sa bisan unsa nga lain nga mga serbisyo sa sulod sa cluster gawas kon RBAC gipagana.

Morag dili kini ang pinakabag-o nga rekomendasyon, apan sigurado ako nga daghang mga tawo ang wala pa makahimo sa RBAC bisan sa produksiyon, tungod kay kini daghang kasamok ug daghang mga butang ang kinahanglan nga i-configure. Bisan pa, gidasig ko ikaw sa pagbuhat niini.

Seguridad sa Helm

https://rbac.dev/ — website nga abogado para sa RBAC. Naglangkob kini sa usa ka dako nga kantidad sa makapaikag nga mga materyales nga makatabang kanimo sa pag-set up sa RBAC, ipakita kung ngano nga kini maayo ug kung giunsa ang pagkinabuhi uban niini sa produksiyon.

Akong sulayan nga ipasabut kung giunsa ang Tiller ug RBAC nagtrabaho. Ang Tiller nagtrabaho sulod sa cluster ubos sa usa ka account sa serbisyo. Kasagaran, kung ang RBAC wala ma-configure, kini ang superuser. Sa sukaranan nga pagsumpo, si Tiller mahimong usa ka admin. Mao kini ang kanunay nga giingon nga ang Tiller usa ka SSH tunnel sa imong cluster. Sa tinuud, tinuod kini, aron magamit nimo ang usa ka lahi nga gipahinungod nga account sa serbisyo imbis sa Default nga Account sa Serbisyo sa dayagram sa ibabaw.

Kung imong gisugdan ang Helm ug i-install kini sa server sa unang higayon, mahimo nimong itakda ang account sa serbisyo gamit --service-account. Kini magtugot kanimo sa paggamit sa usa ka tiggamit nga adunay minimum nga gikinahanglan nga hugpong sa mga katungod. Tinuod, kinahanglan nimo nga maghimo usa ka "garland": Role ug RoleBinding.

Seguridad sa Helm

Ikasubo, dili kini buhaton ni Helm para kanimo. Ikaw o ang imong Kubernetes cluster administrator kinahanglang mag-andam ug set sa Mga Papel ug RoleBindings para sa service-account nga abante aron makapasar sa Helm.

Ang pangutana mitungha - unsa ang kalainan tali sa Role ug ClusterRole? Ang kalainan mao nga ang ClusterRole nagtrabaho alang sa tanan nga mga namespace, dili sama sa mga regular nga Roles ug RoleBindings, nga nagtrabaho lamang alang sa usa ka espesyal nga namespace. Mahimo nimong i-configure ang mga palisiya alang sa tibuuk nga cluster ug tanan nga mga namespace, o gi-personalize alang sa matag namespace nga tinagsa.

Angayan nga hisgutan nga ang RBAC nagsulbad sa usa ka dako nga problema. Daghang mga tawo ang nagreklamo nga ang Helm, sa walay palad, dili multitenancy (wala nagsuporta sa multitenancy). Kung daghang mga team ang mokonsumo sa usa ka cluster ug mogamit sa Helm, imposible nga mag-set up sa mga palisiya ug limitahan ang ilang pag-access sa sulod niini nga cluster, tungod kay adunay usa ka account sa serbisyo nga gipadagan sa Helm, ug kini nagmugna sa tanan nga mga kapanguhaan sa cluster gikan sa ilawom niini. , nga usahay dili kombenyente. Tinuod kini - sama sa binary file mismo, sama sa proseso, Ang Helm Tiller walay konsepto sa multitenancy.

Bisan pa, adunay usa ka maayo nga paagi nga nagtugot kanimo sa pagdagan sa Tiller daghang beses sa usa ka kumpol. Walay problema niini, ang Tiller mahimong ilunsad sa matag namespace. Sa ingon, mahimo nimong gamiton ang RBAC, Kubeconfig isip konteksto, ug limitahan ang pag-access sa usa ka espesyal nga Helm.

Kini tan-awon sama niini.

Seguridad sa Helm

Pananglitan, adunay duha ka Kubeconfig nga adunay konteksto alang sa lain-laing mga team (duha ka namespaces): X Team alang sa development team ug sa admin cluster. Ang admin cluster adunay kaugalingong lapad nga Tiller, nga nahimutang sa Kube-system namespace, usa ka katugbang nga advanced service-account. Ug usa ka bulag nga namespace alang sa development team, mahimo nilang i-deploy ang ilang mga serbisyo sa usa ka espesyal nga namespace.

Kini usa ka magamit nga pamaagi, ang Tiller dili kaayo gutom sa gahum nga makaapekto kaayo sa imong badyet. Kini usa sa mga dali nga solusyon.

Mobati nga gawasnon nga i-configure ang Tiller nga gilain ug hatagan ang Kubeconfig sa konteksto alang sa team, alang sa usa ka piho nga developer o alang sa palibot: Dev, Staging, Production (kadudahan nga ang tanan naa sa parehas nga cluster, bisan pa, mahimo kini).

Pagpadayon sa among istorya, magbalhin kita gikan sa RBAC ug maghisgot bahin sa ConfigMaps.

ConfigMaps

Gigamit sa Helm ang ConfigMaps isip tindahan sa datos niini. Kung naghisgot kami bahin sa arkitektura, wala’y database bisan diin nga magtipig kasayuran bahin sa mga pagpagawas, pag-configure, pag-rollback, ug uban pa. Ang ConfigMaps gigamit alang niini.

Ang nag-unang problema sa ConfigMaps nahibal-an - sila dili luwas sa prinsipyo; imposible nga tipigan ang sensitibo nga datos. Naghisgot kami bahin sa tanan nga dili kinahanglan nga molapas sa serbisyo, pananglitan, mga password. Ang labing lumad nga paagi alang sa Helm karon mao ang pagbalhin gikan sa paggamit sa ConfigMaps ngadto sa mga sekreto.

Gihimo kini nga yano kaayo. I-override ang setting sa Tiller ug ipiho nga ang pagtipig mahimong mga sekreto. Unya alang sa matag deployment makadawat ka dili usa ka ConfigMap, apan usa ka sekreto.

Seguridad sa Helm

Mahimong makiglalis ka nga ang mga sekreto mismo usa ka katingad-an nga konsepto ug dili kaayo luwas. Bisan pa, angay nga sabton nga ang mga developer sa Kubernetes mismo ang nagbuhat niini. Sugod gikan sa bersyon 1.10, i.e. Sa dugay na nga panahon, posible, labing menos sa publiko nga mga panganod, nga makonektar ang husto nga pagtipig sa pagtipig sa mga sekreto. Ang team karon nagtrabaho sa mga paagi aron mas maayo nga maapod-apod ang pag-access sa mga sekreto, indibidwal nga pod, o uban pang mga entidad.

Mas maayo nga ibalhin ang Storage Helm sa mga sekreto, ug sila, sa baylo, gisiguro sa sentro.

Siyempre kini magpabilin limitasyon sa pagtipig sa datos sa 1 MB. Ang Helm dinhi naggamit ug etcd isip distributed storage para sa ConfigMaps. Ug didto giisip nila nga kini usa ka angay nga tipak sa datos alang sa pagkopya, ug uban pa. Adunay usa ka makapaikag nga panaghisgot bahin niini sa Reddit, girekomenda nako ang pagpangita niining kataw-anan nga pagbasa alang sa katapusan sa semana o pagbasa sa kinuha dinhi.

Mga Repos sa Tsart

Ang mga tsart mao ang labing huyang sa katilingban ug mahimong tinubdan sa "Tawo sa tunga-tunga", ilabi na kung mogamit ka og stock solution. Una sa tanan, naghisgot kami bahin sa mga repository nga gibutyag pinaagi sa HTTP.

Kinahanglan gyud nimo nga ibutyag ang Helm Repo sa HTTPS - kini ang labing kaayo nga kapilian ug dili mahal.

Pagtagad mekanismo sa pirma sa tsart. Ang teknolohiya yano ra sama sa impyerno. Kini ang parehas nga butang nga imong gigamit sa GitHub, usa ka regular nga makina sa PGP nga adunay publiko ug pribado nga mga yawe. Ipahimutang ug siguroha, nga adunay gikinahanglan nga mga yawe ug pagpirma sa tanan, nga kini mao gayud ang imong tsart.

Dugang pa, Ang kliyente sa helm nagsuporta sa TLS (dili sa server-side nga HTTP nga kahulugan, apan mutual TLS). Mahimo nimong gamiton ang mga yawe sa server ug kliyente aron makigkomunikar. Sa tinuod lang, wala ko mogamit sa ingon nga mekanismo tungod kay dili ko ganahan sa mutual certificates. Sa panguna, chartmuseum - ang nag-unang himan alang sa pag-set up sa Helm Repo para sa Helm 2 - nagsuporta usab sa batakang awt. Mahimo nimong gamiton ang batakang auth kung kini mas kombenyente ug mas hilom.

Adunay usab usa ka plugin timon-gcs, nga nagtugot kanimo sa pag-host sa Chart Repos sa Google Cloud Storage. Kombenyente kini, maayo ang pagtrabaho ug luwas, tungod kay ang tanan nga gihulagway nga mga mekanismo gi-recycle.

Seguridad sa Helm

Kung imong gi-enable ang HTTPS o TLS, gamita ang mTLS, ug i-enable ang basic nga auth aron makunhuran pa ang mga risgo, makakuha ka og luwas nga channel sa komunikasyon uban sa Helm CLI ug Chart Repo.

gRPC API

Ang sunod nga lakang hinungdanon kaayo - aron masiguro ang Tiller, nga nahimutang sa cluster ug, sa usa ka bahin, usa ka server, sa laing bahin, kini mismo ang nag-access sa ubang mga sangkap ug naningkamot nga magpakaaron-ingnon nga usa ka tawo.

Sama sa giingon ko na, ang Tiller usa ka serbisyo nga nagpadayag sa gRPC, ang kliyente sa Helm moabut niini pinaagi sa gRPC. Sa kasagaran, siyempre, ang TLS gi-disable. Ngano nga kini nahimo usa ka debatable nga pangutana, para nako gipasimple ang setup sa pagsugod.

Alang sa produksiyon ug bisan sa pagpahigayon, girekomendar nako ang pagpagana sa TLS sa gRPC.

Sa akong opinyon, dili sama sa mTLS alang sa mga tsart, kini angayan dinhi ug gihimo sa yano kaayo - paghimo og usa ka imprastraktura sa PQI, paghimo og sertipiko, paglansad sa Tiller, pagbalhin sa sertipiko sa panahon sa pagsugod. Pagkahuman niini, mahimo nimong ipatuman ang tanan nga mga mando sa Helm, nga gipresentar ang imong kaugalingon sa nahimo nga sertipiko ug pribado nga yawe.

Seguridad sa Helm

Niining paagiha mapanalipdan nimo ang imong kaugalingon gikan sa tanan nga mga hangyo sa Tiller gikan sa gawas sa cluster.

Mao nga, nasiguro namon ang channel sa koneksyon sa Tiller, nahisgutan na namon ang RBAC ug gi-adjust ang mga katungod sa apiserver sa Kubernetes, nga gipakunhod ang domain diin mahimo kini nga makig-uban.

Gipanalipdan nga Helm

Atong tan-awon ang katapusang diagram. Parehas kini nga arkitektura nga adunay parehas nga mga pana.

Seguridad sa Helm

Ang tanan nga mga koneksyon mahimo nang luwas nga makuha sa berde:

  • para sa Chart Repo among gigamit ang TLS o mTLS ug basic nga auth;
  • mTLS para sa Tiller, ug kini gibutyag isip serbisyo sa gRPC nga adunay TLS, naggamit kami og mga sertipiko;
  • ang cluster naggamit ug espesyal nga account sa serbisyo nga adunay Role ug RoleBinding. 

Nakuha namon ang cluster, apan adunay usa ka maalamon nga miingon:

"Adunay usa lamang ka hingpit nga luwas nga solusyon - usa ka gipalong nga kompyuter, nga nahimutang sa usa ka konkretong kahon ug gibantayan sa mga sundalo."

Adunay lainlaing mga paagi sa pagmaniobra sa datos ug pagpangita og bag-ong mga vector sa pag-atake. Bisan pa, masaligon ako nga kini nga mga rekomendasyon makakab-ot sa usa ka sukaranan nga sumbanan sa industriya alang sa kaluwasan.

Bonus

Kini nga bahin dili direktang may kalabutan sa seguridad, apan mapuslanon usab. Ipakita ko kanimo ang pipila ka makapaikag nga mga butang nga gamay ra ang nahibal-an sa mga tawo. Pananglitan, unsaon pagpangita sa mga tsart - opisyal ug dili opisyal.

Sa repositoryo github.com/helm/charts Karon adunay mga 300 ka tsart ug duha ka sapa: stable ug incubator. Ang bisan kinsa nga nag-amot nahibal-an pag-ayo kung unsa ka lisud ang pagkuha gikan sa incubator hangtod sa kuwadra, ug kung unsa kadali ang paglupad gikan sa kuwadra. Bisan pa, dili kini ang labing kaayo nga himan aron makapangita mga tsart alang sa Prometheus ug bisan unsang gusto nimo, sa usa ka yano nga hinungdan - dili kini usa ka portal diin dali ka makapangita mga pakete.

Apan adunay usa ka serbisyo hub.helm.sh, nga naghimo niini nga mas sayon ​​​​sa pagpangita sa mga tsart. Labing hinungdanon, adunay daghan pang mga eksternal nga repositoryo ug hapit 800 nga mga anting-anting nga magamit. Dugang pa, mahimo nimong ikonektar ang imong repository kung sa usa ka hinungdan nga dili nimo gusto ipadala ang imong mga tsart sa stable.

Sulayi ang hub.helm.sh ug dungan natong pauswagon. Kini nga serbisyo naa sa ilawom sa proyekto sa Helm, ug mahimo ka nga makatampo sa UI niini kung ikaw usa ka front-end nga developer ug gusto lang nga mapaayo ang hitsura.

Gusto ko usab nga madani ang imong atensyon Open Service Broker API integration. Morag hasol ug dili klaro, apan makasulbad kini sa mga problema nga giatubang sa tanan. Tugoti ako sa pagpasabut sa usa ka yano nga pananglitan.

Seguridad sa Helm

Adunay usa ka Kubernetes cluster diin gusto namon nga magpadagan sa usa ka klasiko nga aplikasyon - WordPress. Sa kinatibuk-an, gikinahanglan ang usa ka database alang sa hingpit nga pagpaandar. Adunay daghang lain-laing mga solusyon, pananglitan, mahimo nimong ilunsad ang imong kaugalingon nga statefull nga serbisyo. Kini dili kaayo kombenyente, apan daghang mga tawo ang nagbuhat niini.

Ang uban, sama kanamo sa Chainstack, naggamit sa gidumala nga mga database sama sa MySQL o PostgreSQL alang sa ilang mga server. Mao nga ang among mga database nahimutang sa usa ka lugar sa panganod.

Apan usa ka problema ang mitungha: kinahanglan namon nga ikonektar ang among serbisyo sa usa ka database, maghimo usa ka lami sa database, ibalhin ang kredensyal ug bisan unsang paagiha pagdumala niini. Ang tanan niini kasagarang gihimo sa mano-mano sa system administrator o developer. Ug wala’y problema kung gamay ra ang mga aplikasyon. Kung daghan sila, kinahanglan nimo ang usa ka kombinasyon. Adunay ingon nga tig-ani - kini mao ang Service Broker. Gitugotan ka niini nga mogamit usa ka espesyal nga plugin alang sa usa ka publiko nga cloud cluster ug pag-order sa mga kapanguhaan gikan sa provider pinaagi sa Broker, ingon nga kini usa ka API. Aron mahimo kini, mahimo nimong gamiton ang mga gamit sa Kubernetes.

Yano ra kaayo. Mahimo kang mangutana, pananglitan, Managed MySQL sa Azure nga adunay base tier (kini mahimong ma-configure). Gamit ang Azure API, ang database pagabuhaton ug andamon alang sa paggamit. Dili nimo kinahanglan nga manghilabot niini, ang plugin ang responsable niini. Pananglitan, ang OSBA (Azure plugin) ibalik ang kredensyal sa serbisyo ug ipasa kini sa Helm. Mahimo nimong magamit ang WordPress gamit ang cloud MySQL, dili mag-atubang sa mga gidumala nga database ug dili mabalaka bahin sa statefull nga mga serbisyo sa sulod.

Mahimo natong isulti nga ang Helm naglihok isip usa ka papilit nga, sa usa ka bahin, nagtugot kanimo sa pag-deploy sa mga serbisyo, ug sa laing bahin, pagkonsumo sa mga kahinguhaan sa mga cloud providers.

Mahimo nimong isulat ang imong kaugalingon nga plugin ug gamiton kini nga tibuuk nga istorya sa lugar. Unya aduna ka nay kaugalingong plugin para sa corporate Cloud provider. Girekomenda ko nga sulayan kini nga pamaagi, labi na kung adunay ka dako nga sukod ug gusto nimo nga dali nga i-deploy ang dev, staging, o ang tibuuk nga imprastraktura para sa usa ka bahin. Kini makapasayon ​​sa kinabuhi alang sa imong mga operasyon o DevOps.

Ang laing nakit-an nga akong nahisgutan mao ang helm-gcs nga plugin, nga nagtugot kanimo sa paggamit sa Google-buckets (pagtipig sa butang) sa pagtipig sa mga tsart sa Helm.

Seguridad sa Helm

Kinahanglan ra nimo ang upat ka mga sugo aron magsugod sa paggamit niini:

  1. i-install ang plugin;
  2. sugdi kini;
  3. ibutang ang dalan sa balde, nga nahimutang sa gcp;
  4. imantala ang mga tsart sa standard nga paagi.

Ang katahum kay ang lumad nga gcp nga pamaagi gamiton para sa pagtugot. Mahimo nimong gamiton ang usa ka account sa serbisyo, usa ka account sa developer, bisan unsang gusto nimo. Kini sayon ​​​​kaayo ug walay gasto sa pag-operate. Kung ikaw, sama kanako, nagpasiugda sa opsless nga pilosopiya, nan kini mahimong kombenyente, labi na sa gagmay nga mga koponan.

Mga alternatibo

Ang Helm dili lamang ang solusyon sa pagdumala sa serbisyo. Adunay daghang mga pangutana bahin niini, nga lagmit nga ang ikatulo nga bersyon dali nga nagpakita. Siyempre adunay mga alternatibo.

Mahimo kini nga mga espesyal nga solusyon, pananglitan, Ksonnet o Metaparticle. Mahimo nimong gamiton ang imong klasiko nga mga gamit sa pagdumala sa imprastraktura (Ansible, Terraform, Chef, ug uban pa) alang sa parehas nga katuyoan nga akong gihisgutan.

Sa katapusan adunay usa ka solusyon Framework sa Operator, kansang pagkapopular nagkadako.

Ang Operator Framework mao ang nanguna nga alternatibo sa Helm nga ikonsiderar.

Kini mas lumad sa CNCF ug Kubernetes, pero mas taas ang barrier to entry, kinahanglan nimo nga magprograma og daghan ug dili kaayo ihulagway ang mga manifest.

Adunay lainlaing mga addon, sama sa Draft, Scaffold. Gipadali nila ang kinabuhi, pananglitan, gipasimple nila ang siklo sa pagpadala ug paglansad sa Helm alang sa mga developer nga mag-deploy sa usa ka palibot sa pagsulay. Tawgon ko sila nga empowerers.

Ania ang usa ka biswal nga tsart kung asa ang tanan.

Seguridad sa Helm

Sa x-axis mao ang lebel sa imong personal nga pagkontrol sa kung unsa ang nahitabo, sa y-axis mao ang lebel sa pagka-native sa Kubernetes. Ang bersyon sa Helm 2 nahulog sa tunga-tunga. Sa bersyon 3, dili kaayo, apan ang kontrol ug ang lebel sa pagka-native gipaayo. Ang mga solusyon sa lebel sa Ksonnet ubos gihapon bisan sa Helm 2. Bisan pa, angayan silang tan-awon aron mahibal-an kung unsa pa ang naa sa kalibutan. Siyempre, ang imong configuration manager mahimong ubos sa imong kontrol, apan kini hingpit nga dili lumad sa Kubernetes.

Ang Operator Framework hingpit nga lumad sa Kubernetes ug nagtugot kanimo sa pagdumala niini nga mas elegante ug mabinantayon (apan hinumdumi ang bahin sa lebel sa pagsulod). Hinunoa, kini angay alang sa usa ka espesyal nga aplikasyon ug sa paghimo sa pagdumala alang niini, kay sa usa ka mass harvester alang sa packaging sa usa ka dako nga gidaghanon sa mga aplikasyon sa paggamit sa Helm.

Ang mga extender igo lang nga nagpauswag sa kontrol, nagdugang sa workflow, o nagputol sa mga eskina sa mga pipeline sa CI/CD.

Ang kaugmaon sa Helm

Ang maayong balita kay moabot na ang Helm 3. Ang alpha nga bersyon sa Helm 3.0.0-alpha.2 gipagawas na, pwede nimo sulayan. Kini medyo stable, apan ang pag-andar limitado gihapon.

Nganong kinahanglan nimo ang Helm 3? Una sa tanan, kini usa ka istorya bahin sa pagkawala ni Tiller, isip usa ka sangkap. Kini, ingon sa imong nasabtan na, usa ka dako nga lakang sa unahan, tungod kay gikan sa punto sa panglantaw sa seguridad sa arkitektura, ang tanan gipasimple.

Sa dihang gibuhat ang Helm 2, nga sa panahon sa Kubernetes 1.8 o mas sayo pa, daghan sa mga konsepto ang dili pa hamtong. Pananglitan, ang konsepto sa CRD aktibo nga gipatuman, ug ang Helm gamita ang CRDsa pagtipig sa mga istruktura. Posible nga gamiton lamang ang kliyente ug dili ipadayon ang bahin sa server. Busa, gamita ang lumad nga Kubernetes nga mga sugo aron magtrabaho uban sa mga istruktura ug kahinguhaan. Kini usa ka dako nga lakang sa unahan.

Mopakita suporta alang sa lumad nga OCI repository (Open Container Initiative). Kini usa ka dako nga inisyatibo, ug ang Helm interesado sa panguna aron ma-post ang mga tsart niini. Kini moabut sa punto nga, pananglitan, ang Docker Hub nagsuporta sa daghang mga sumbanan sa OCI. Wala ako nagtag-an, apan tingali ang mga klasiko nga Docker repository providers magsugod sa paghatag kanimo sa higayon nga i-host ang imong mga tsart sa Helm.

Ang kontrobersyal nga istorya alang kanako mao Suporta ni Lua, isip usa ka templating engine alang sa pagsulat sa mga script. Dili ako usa ka dako nga fan ni Lua, apan kini usa ka hingpit nga opsyonal nga bahin. Gisusi nako kini 3 ka beses - ang paggamit sa Lua dili kinahanglan. Busa, kadtong gusto nga makagamit sa Lua, kadtong ganahan sa Go, apil sa among dakong kampo ug gamita ang go-tmpl para niini.

Sa katapusan, ang siguradong nawala nako mao schema emergence ug data type validation. Wala nay mga problema sa int o string, dili na kinahanglan nga ibalot ang zero sa doble nga mga kinutlo. Usa ka JSONS schema ang makita nga magtugot kanimo sa dayag nga paghulagway niini alang sa mga mithi.

Pagabuhaton pag-ayo modelo nga gipatuyok sa panghitabo. Gihulagway na kini sa konsepto. Tan-awa ang sanga sa Helm 3, ug imong makita kung pila ka mga panghitabo ug mga kaw-it ug uban pang mga butang ang nadugang, nga makapasayon ​​pag-ayo ug, sa laing bahin, makadugang sa kontrol sa mga proseso sa pag-deploy ug mga reaksyon niini.

Ang Helm 3 mahimong mas simple, mas luwas, ug mas makalingaw, dili tungod kay dili kami ganahan sa Helm 2, apan tungod kay ang Kubernetes nahimong mas abante. Tungod niini, ang Helm makagamit sa mga kalamboan sa Kubernetes ug makamugna ug maayo kaayong mga manedyer para sa Kubernetes niini.

Ang laing maayong balita mao kana DevOpsConf Si Alexander Khayorov mosulti kanimo, masiguro ba ang mga sudlanan? Pahinumdoman ka namo nga ang komperensya sa paghiusa sa mga proseso sa pag-uswag, pagsulay ug operasyon ipahigayon sa Moscow Septiyembre 30 ug Oktubre 1. Mahimo pa nimo kini hangtod sa Agosto 20 pagsumite ug report ug sultihi kami bahin sa imong kasinatian sa solusyon usa sa daghan mga buluhaton sa pamaagi sa DevOps.

Sunda ang mga checkpoint sa komperensya ug balita sa mailing list и channel sa telegrama.

Source: www.habr.com

Idugang sa usa ka comment