Helm Kaamanan

Intina carita ngeunaan manajer pakét anu paling populér pikeun Kubernetes tiasa digambar nganggo emoji:

  • kotakna Helm (nu pangdeukeutna ka release Emoji panganyarna);
  • konci - kaamanan;
  • lalaki leutik mangrupakeun solusi pikeun masalah.

Helm Kaamanan

Kanyataanna, sagalana bakal saeutik leuwih pajeulit, sarta carita pinuh ku rinci teknis ngeunaan Kumaha carana sangkan Helm aman.

  • Sakeudeung naon Helm bisi anjeun teu nyaho atawa poho. Masalah naon anu direngsekeun sareng dimana ayana dina ékosistem.
  • Hayu urang nempo arsitektur Helm. Henteu aya paguneman ngeunaan kaamanan sareng kumaha carana ngadamel alat atanapi solusi langkung aman lengkep tanpa ngartos arsitektur komponénna.
  • Hayu urang bahas komponén Helm.
  • Patarosan anu paling pikaresepeun nyaéta masa depan - versi Helm 3 énggal. 

Sagalana dina artikel ieu manglaku ka Helm 2. Vérsi ieu ayeuna di produksi jeung paling dipikaresep hiji nu keur dipake ayeuna, tur éta versi nu ngandung resiko kaamanan.


Ngeunaan speaker: Alexander Khayorov (alexx) geus ngembang salila 10 taun, mantuan pikeun ngaronjatkeun eusi Moscow Python Conf ++ sarta ngagabung ka panitia Helm Summit. Ayeuna anjeunna damel di Chainstack salaku pamimpin pamekaran - ieu mangrupikeun hibrida antara manajer pangembangan sareng jalma anu tanggung jawab pikeun ngirimkeun sékrési ahir. Hartina, lokasina di medan perang, dimana sagalana kajadian ti kreasi produk pikeun operasi na.

Chainstack nyaéta leutik, aktip tumuwuh ngamimitian anu misi pikeun ngaktipkeun klien poho ngeunaan infrastruktur sarta complexities operasi aplikasi desentralisasi; tim ngembangkeun lokasina di Singapura. Entong naroskeun ka Chainstack pikeun ngajual atanapi ngagaleuh cryptocurrency, tapi nawiskeun ngobrol ngeunaan kerangka blockchain perusahaan, sareng aranjeunna bakal kalayan senang ngajawab anjeun.

helem

Ieu mangrupikeun manajer pakét (bagan) pikeun Kubernetes. Cara anu paling intuitif sareng universal pikeun nyangking aplikasi kana klaster Kubernetes.

Helm Kaamanan

Kami, tangtosna, nyarioskeun pendekatan anu langkung struktural sareng industri tibatan nyiptakeun YAML anjeun nyalira sareng nyerat utilitas leutik.

Helm mangrupikeun anu pangsaéna anu ayeuna sayogi sareng populer.

Naha Helm? Utamana sabab dirojong ku CNCF. Cloud Native mangrupikeun organisasi anu ageung sareng perusahaan induk pikeun proyék Kubernetes, jsb, Fluentd sareng anu sanésna.

Kanyataan penting anu sanés nyaéta Helm mangrupikeun proyék anu kasohor. Nalika kuring mimiti ngobrol ngeunaan kumaha carana ngajantenkeun Helm aman dina Januari 2019, proyék éta ngagaduhan sarébu béntang dina GitHub. Nepi ka Méi aya 12 rébu di antarana.

Seueur jalma anu resep kana Helm, janten sanaos anjeun henteu acan nganggo éta, anjeun bakal nguntungkeun tina terang ngeunaan kaamananna. Kasalametan penting.

Tim Helm inti dirojong ku Microsoft Azure sareng janten proyek anu cukup stabil, teu siga seueur anu sanés. Pelepasan Helm 3 Alpha 2 dina pertengahan Juli nunjukkeun yén aya seueur jalma anu damel dina proyék éta, sareng aranjeunna gaduh kahayang sareng énergi pikeun ngembangkeun sareng ningkatkeun Helm.

Helm Kaamanan

Helm ngarengsekeun sababaraha masalah akar manajemén aplikasi di Kubernetes.

  • Bungkusan aplikasi. Malah hiji aplikasi kawas "Halo, Dunya" dina WordPress geus diwangun ku sababaraha layanan, sarta rék ngarangkep aranjeunna babarengan.
  • Ngatur pajeulitna anu aya dina ngatur aplikasi ieu.
  • Siklus hirup anu henteu réngsé saatos aplikasi dipasang atanapi disebarkeun. Terus hirup, éta kedah diropéa, sareng Helm ngabantosan ieu sareng nyobian nyandak ukuran sareng kawijakan anu leres pikeun ieu.

Kantong Éta diatur dina cara anu jelas: aya metadata saluyu sareng karya manajer pakét biasa pikeun Linux, Windows atanapi MacOS. Hartina, gudang a, kagumantungan kana rupa bungkusan, informasi meta pikeun aplikasi, setelan, fitur konfigurasi, indexing informasi, jsb Helm ngidinan Anjeun pikeun ménta sarta ngagunakeun sagala ieu pikeun aplikasi.

Manajemén pajeulitna. Upami anjeun gaduh seueur aplikasi tina jinis anu sami, maka parameterisasi diperyogikeun. Témplat asalna tina ieu, tapi pikeun ngahindarkeun cara anjeun nyalira nyiptakeun témplat, anjeun tiasa nganggo naon anu ditawarkeun Helm tina kotak.

Manajemén Lifecycle Aplikasi - dina pamanggih kuring, ieu patarosan paling metot sarta unresolved. Ieu naha kuring datang ka Helm deui dina poé. Urang kedah ngawaskeun siklus hirup aplikasi sareng hoyong mindahkeun CI / CD sareng siklus aplikasi kana paradigma ieu.

Helm ngamungkinkeun anjeun pikeun:

  • ngatur deployments, ngawanohkeun konsép konfigurasi jeung révisi;
  • suksés ngalaksanakeun rollback;
  • ngagunakeun hook pikeun acara béda;
  • tambahkeun cék aplikasi tambahan sareng ngabales hasilna.

komo Helm gaduh "baterai" - sajumlah ageung hal ngeunah anu tiasa dilebetkeun dina bentuk plugins, nyederhanakeun kahirupan anjeun. Plugin tiasa ditulis sacara mandiri, aranjeunna rada terasing sareng henteu peryogi arsitéktur anu harmonis. Upami anjeun hoyong ngalaksanakeun hiji hal, kuring nyarankeun ngalakukeunana salaku plugin, teras kamungkinan kalebet dina hulu.

Helm dumasar kana tilu konsép utama:

  • Bagan Repo - déskripsi sareng susunan parameterisasi anu mungkin pikeun manifes anjeun. 
  • Konfigurasi -nyaéta, nilai-nilai anu bakal diterapkeun (téks, nilai numerik, jsb.).
  • ngabebaskeun ngumpulkeun dua komponén luhur, sarta babarengan maranéhna robah jadi Release. Kaluaran tiasa dirobih, ku kituna ngahontal siklus kahirupan anu teratur: leutik dina waktos instalasi sareng ageung dina waktos pamutahiran, downgrade atanapi rollback.

Arsitéktur Helm

Diagram sacara konsép ngagambarkeun arsitektur tingkat luhur Helm.

Helm Kaamanan

Hayu atuh ngingetkeun yén Helm aya hubunganana sareng Kubernetes. Kituna, urang moal bisa ngalakukeun tanpa klaster Kubernetes (sagi opat). Komponén kube-apiserver cicing dina master. Tanpa Helm kami gaduh Kubeconfig. Helm brings hiji binér leutik, lamun bisa nelepon eta, Helm CLI utiliti, nu geus dipasang dina komputer, laptop, mainframe - on nanaon.

Tapi ieu teu cukup. Helm boga komponén server disebut Tiller. Éta ngagambarkeun kapentingan Helm dina kluster; éta mangrupikeun aplikasi dina kluster Kubernetes, sapertos anu sanés.

Komponén salajengna tina Chart Repo nyaéta gudang kalayan grafik. Aya gudang resmi, sarta meureun aya gudang swasta hiji pausahaan atawa proyék.

Interaksi

Hayu urang tingali kumaha interaksi komponén arsitéktur nalika urang hoyong masang aplikasi nganggo Helm.

  • Urang keur nyarita Helm install, aksés gudang (Chart Repo) jeung meunang bagan Helm.

  • Utilitas Helm (Helm CLI) berinteraksi sareng Kubeconfig supados terang klaster mana anu kedah dihubungi. 
  • Saatos nampi inpormasi ieu, utilitas ngarujuk kana Tiller, anu aya di klaster kami, salaku aplikasi. 
  • Tiller nelepon Kube-apiserver pikeun ngalakukeun aksi di Kubernetes, nyieun sababaraha objék (jasa, pods, réplika, Rahasia, jsb).

Salajengna, urang bakal ngahesekeun diagram pikeun nempo vektor serangan nu sakabéh arsitéktur Helm sakabéhna bisa kakeunaan. Teras we bakal nyobian ngajaga anjeunna.

Vektor serangan

Potensi titik lemah munggaran nyaéta API husus-pamaké éta. Salaku bagian tina skéma, ieu hacker anu geus miboga aksés admin ka Helm CLI.

pamaké API unprivileged ogé tiasa ngabahayakeun upami aya di tempat anu caket. Pamaké sapertos kitu bakal gaduh kontéks anu béda, contona, anjeunna tiasa dibenerkeun dina hiji rohangan ngaran klaster dina setélan Kubeconfig.

Vektor serangan anu paling narik tiasa mangrupikeun prosés anu aya dina kluster dimana waé caket Tiller sareng tiasa ngaksés éta. Ieu tiasa janten server wéb atanapi microservice anu ningali lingkungan jaringan kluster.

Varian serangan anu aheng, tapi beuki populér, ngalibatkeun Chart Repo. Bagan anu diciptakeun ku panulis anu teu sopan tiasa ngandung sumber anu teu aman, sareng anjeun bakal ngalengkepanana ku iman. Atanapi tiasa ngagentos bagan anu anjeun unduh tina gudang resmi sareng, contona, nyiptakeun sumber daya dina bentuk kawijakan sareng ningkatkeun aksésna.

Helm Kaamanan

Hayu urang cobaan pikeun nyegah serangan ti opat sisi ieu sareng terang dimana aya masalah dina arsitéktur Helm, sareng dimana, sigana, teu aya.

Hayu urang ngagedekeun diagram, tambahkeun deui elemen, tapi tetep sakabéh komponén dasar.

Helm Kaamanan

Helm CLI komunikasi jeung Bagan Repo, berinteraksi sareng Kubeconfig, jeung karya ditransferkeun ka klaster kana komponén Tiller.

Tiller digambarkeun ku dua objék:

  • Tiller-deploy svc, anu ngungkabkeun jasa anu tangtu;
  • Tiller-nyebarkeun pod (dina diagram dina salinan tunggal dina hiji réplika), nu sakabéh beban ngalir, nu ngakses kluster.

Protokol sareng skéma anu béda dianggo pikeun interaksi. Tina sudut pandang kaamanan, kami paling dipikaresep:

  • Mékanisme dimana Helm CLI ngaksés repo bagan: protokol naon, aya auténtikasi sareng naon anu tiasa dilakukeun ku éta.
  • Protokol dimana Helm CLI, ngagunakeun kubectl, komunikasi sareng Tiller. Ieu mangrupikeun server RPC anu dipasang di jero kluster.
  • Tiller sorangan diaksés ka microservices nu reside dina kluster jeung interaksi jeung Kube-apiserver.

Helm Kaamanan

Hayu urang bahas sadayana wewengkon ieu dina urutan.

basa sunda

Henteu aya gunana ngobrol ngeunaan kaamanan pikeun Helm atanapi jasa anu sanés dina kluster kecuali RBAC diaktipkeun.

Sigana mah ieu téh lain rekomendasi panganyarna, tapi kuring yakin yén loba jalma masih teu diaktipkeun RBAC malah dina produksi, sabab loba fuss sarta loba hal kudu ngonpigurasi. Nanging, kuring ajak anjeun ngalakukeun ieu.

Helm Kaamanan

https://rbac.dev/ — pangacara ramatloka pikeun RBAC. Éta ngandung sajumlah ageung bahan anu pikaresepeun anu bakal ngabantosan anjeun nyetél RBAC, nunjukkeun naha éta saé sareng kumaha dasarna hirup sareng éta dina produksi.

Kuring gé coba ngajelaskeun kumaha Tiller na RBAC jalan. Tiller dianggo di jero kluster dina akun jasa anu tangtu. Biasana, upami RBAC henteu dikonpigurasi, ieu bakal janten pangguna super. Dina konfigurasi dasar, Tiller bakal jadi admin. Ieu sababna sering nyarios yén Tiller mangrupikeun torowongan SSH pikeun kluster anjeun. Nyatana, ieu leres, janten anjeun tiasa nganggo akun jasa khusus anu misah tibatan Akun Layanan Default dina diagram di luhur.

Lamun anjeun initialize Helm tur masangkeunana dina server pikeun kahiji kalina, Anjeun tiasa nyetel akun jasa ngagunakeun --service-account. Ieu bakal ngidinan Anjeun pikeun ngagunakeun pamaké kalawan set minimum diperlukeun hak. Leres, anjeun kedah nyiptakeun "garland" sapertos kieu: Peran sareng RoleBinding.

Helm Kaamanan

Hanjakal, Helm moal ngalakukeun ieu pikeun anjeun. Anjeun atawa administrator klaster Kubernetes Anjeun kudu nyiapkeun susunan Peran jeung RoleBindings pikeun akun-layanan sateuacanna pikeun lulus Helm.

Timbul patarosan - naon bédana antara Peran sareng Peran Cluster? Bédana nyaéta ClusterRole dianggo pikeun sadaya rohangan ngaran, teu sapertos Peran sareng RoleBindings biasa, anu ngan ukur dianggo pikeun rohangan ngaran khusus. Anjeun tiasa ngonpigurasikeun kawijakan pikeun sakabéh kluster sareng sadaya rohangan ngaran, atanapi dipersonalisasi pikeun tiap rohangan ngaran masing-masing.

Perlu disebatkeun yén RBAC ngabéréskeun masalah anu ageung. Loba jalma ngawadul yén Helm, hanjakalna, teu multitenancy (teu ngarojong multitenancy). Lamun sababaraha tim meakeun klaster sarta ngagunakeun Helm, dasarna teu mungkin mun nyetél kawijakan jeung ngawatesan aksés maranéhanana dina klaster ieu, sabab aya hiji akun jasa tangtu ngabawah Helm ngajalankeun, sarta eta nyiptakeun sagala sumberdaya dina klaster ti handapeun eta. , nu kadang pisan teu merenah. Ieu leres - sapertos file binér sorangan, sapertos prosésna, Helm Tiller teu boga konsep multitenancy.

Nanging, aya cara anu saé anu ngamungkinkeun anjeun ngajalankeun Tiller sababaraha kali dina kluster. Teu aya masalah sareng ieu, Tiller tiasa diluncurkeun dina unggal rohangan ngaran. Ku kituna, anjeun tiasa nganggo RBAC, Kubeconfig salaku konteks, sarta ngawatesan aksés ka Helm husus.

Ieu bakal kasampak kawas kieu.

Helm Kaamanan

Contona, aya dua Kubeconfigs kalawan konteks pikeun tim béda (dua namespaces): X Tim pikeun tim ngembangkeun sarta klaster admin. Kluster admin boga Tiller lega sorangan, nu lokasina di namespace Kube-sistem, a correspondingly maju jasa-akun. Sarta ngaranspasi misah pikeun tim ngembangkeun, aranjeunna bakal tiasa nyebarkeun jasa maranéhna pikeun namespace husus.

Ieu pendekatan bisa dipake, Tiller teu jadi kakuatan lapar nu bakal greatly mangaruhan anggaran Anjeun. Ieu salah sahiji solusi gancang.

Ngarasa Luncat ka ngonpigurasikeun Tiller misah tur nyadiakeun Kubeconfig kalawan konteks pikeun tim, pikeun pamekar husus atawa pikeun lingkungan: Dev, Pementasan, Produksi (éta diragukeun yén sagalana bakal dina klaster sarua, kumaha oge, ieu bisa dipigawé).

Nuluykeun carita urang, hayu urang pindah ti RBAC jeung ngobrol ngeunaan ConfigMaps.

ConfigMaps

Helm nganggo ConfigMaps salaku toko datana. Lamun urang ngobrol ngeunaan arsitéktur, euweuh database mana nu bakal nyimpen informasi ngeunaan release, konfigurasi, rollbacks, jsb ConfigMaps dipaké pikeun ieu.

Masalah utama sareng ConfigMaps dipikanyaho - aranjeunna henteu aman dina prinsipna; teu mungkin pikeun nyimpen data sénsitip. Urang keur diajak ngobrol ngeunaan sagalana nu teu kudu ngaleuwihan jasa, contona, kecap akses. Cara anu paling asli pikeun Helm ayeuna nyaéta ngalih tina ngagunakeun ConfigMaps kana rusiah.

Hal ieu dilakukeun saderhana pisan. Override setelan Tiller sarta nangtukeun yén gudang bakal rusiah. Lajeng pikeun tiap deployment anjeun moal nampi ConfigMap a, tapi rusiah.

Helm Kaamanan

Anjeun tiasa ngabantah yén rusiah sorangan mangrupikeun konsép anu anéh sareng henteu aman pisan. Nanging, kedahna ngartos yén pamekar Kubernetes nyalira ngalakukeun ieu. Mimitian ti versi 1.10, i.e. Pikeun sababaraha waktos ayeuna, éta mungkin, sahenteuna dina awan umum, pikeun nyambungkeun gudang bener pikeun nyimpen Rahasia. Tim ayeuna nuju ngusahakeun cara pikeun nyebarkeun aksés anu langkung saé kana rusiah, pod individu, atanapi éntitas sanés.

Éta leuwih alus pikeun mindahkeun Panyimpenan Helm ka Rahasia, sarta aranjeunna, kahareupna diamankeun centrally.

Tangtu bakal tetep wates gudang data 1 MB. Helm dieu ngagunakeun etcd salaku gudang disebarkeun pikeun ConfigMaps. Sareng di dinya aranjeunna nganggap yén ieu mangrupikeun sakumpulan data anu cocog pikeun réplikasi, jsb. Aya diskusi anu pikaresepeun ngeunaan ieu dina Reddit, kuring nyarankeun milarian bacaan lucu ieu pikeun sabtu minggu atanapi maca ekstrak di dieu.

Bagan Repos

Bagan nyaéta anu paling rentan sacara sosial sareng tiasa janten sumber "Man in the middle", khususna upami anjeun nganggo solusi saham. Anu mimiti, urang ngobrol ngeunaan repositories anu kakeunaan via HTTP.

Anjeun pasti kedah ngalaan Helm Repo tina HTTPS - ieu mangrupikeun pilihan anu pangsaéna sareng murah.

merhatoskeun mékanisme signature grafik. Téknologina saderhana pisan. Ieu mangrupikeun hal anu sami anu anjeun anggo dina GitHub, mesin PGP biasa sareng konci umum sareng swasta. Nyetél tur pastikeun, ngabogaan konci diperlukeun tur Signing sagalana, yén ieu téh bener bagan Anjeun.

Sajaba ti éta, Klién Helm ngadukung TLS (henteu dina rasa HTTP sisi server, tapi silih TLS). Anjeun tiasa nganggo konci server sareng klien pikeun komunikasi. Jujur, kuring henteu nganggo mékanisme sapertos kitu kusabab kuring henteu resep sertipikat silih. dasarna, chartmuseum - alat utama pikeun nyetél Helm Repo pikeun Helm 2 - ogé ngarojong auth dasar. Anjeun tiasa make auth dasar lamun éta leuwih merenah tur quieter.

Aya ogé plugin helm-gcs, anu ngamungkinkeun anjeun janten host Repos Bagan dina Google Cloud Storage. Ieu rada merenah, gawéna hébat sarta rada aman, sabab sagala mékanisme digambarkeun didaur ulang.

Helm Kaamanan

Upami anjeun ngaktipkeun HTTPS atanapi TLS, nganggo mTLS, sareng ngaktipkeun auth dasar pikeun ngirangan résiko, anjeun bakal nampi saluran komunikasi anu aman sareng Helm CLI sareng Chart Repo.

gRPC API

Lengkah saterusna pohara penting - pikeun ngamankeun Tiller, anu perenahna di kluster jeung, di hiji sisi, server, di sisi séjén, eta sorangan ngakses komponén séjén sarta nyoba pretend jadi batur.

Sakumaha anu kuring parantos nyarios, Tiller mangrupikeun jasa anu ngungkabkeun gRPC, klien Helm sumping ka éta via gRPC. Sacara standar, tangtosna, TLS ditumpurkeun. Naha ieu dipigawé nyaéta sual debatable, sigana kuring simplify setelan dina mimiti.

Pikeun produksi komo pementasan, abdi nyarankeun sangkan TLS on gRPC.

Dina pamanggih kuring, teu saperti mTLS pikeun bagan, ieu luyu di dieu sarta dipigawé pisan basajan - ngahasilkeun infrastruktur PQI, nyieun sertipikat, ngajalankeun Tiller, mindahkeun sertipikat salila initialization. Saatos ieu, anjeun tiasa ngaéksekusi sadaya paréntah Helm, nunjukkeun diri anjeun sareng sertipikat anu dihasilkeun sareng konci pribadi.

Helm Kaamanan

Ku cara kieu anjeun bakal ngajaga diri tina sagala requests ka Tiller ti luar klaster.

Janten, kami parantos ngamankeun saluran sambungan ka Tiller, kami parantos ngabahas RBAC sareng nyaluyukeun hak apiserver Kubernetes, ngirangan domain anu tiasa berinteraksi.

Helm Ditangtayungan

Hayu urang nempo diagram ahir. Éta arsitéktur anu sami sareng panah anu sami.

Helm Kaamanan

Sadaya sambungan ayeuna tiasa aman ditarik dina warna héjo:

  • pikeun Chart Repo kami nganggo TLS atanapi mTLS sareng auth dasar;
  • mTLS pikeun Tiller, sarta eta kakeunaan salaku layanan gRPC kalawan TLS, kami nganggo sertipikat;
  • klaster ngagunakeun akun jasa husus kalawan Peran jeung RoleBinding. 

Kami sacara signifikan ngamankeun kluster, tapi aya anu pinter nyarios:

"Ngan aya hiji solusi anu aman pisan - komputer anu dipareuman, anu aya dina kotak beton sareng dijaga ku prajurit."

Aya sababaraha cara pikeun ngamanipulasi data sareng milarian vektor serangan anyar. Nanging, kuring yakin yén rekomendasi ieu bakal ngahontal standar industri dasar pikeun kaamanan.

Bonus

bagian ieu teu langsung patali jeung kaamanan, tapi ogé bakal mangpaat. Kuring gé nunjukkeun anjeun sababaraha hal metot nu sababaraha urang terang ngeunaan. Contona, kumaha carana neangan grafik - resmi jeung teu resmi.

Dina gudang github.com/helm/charts Ayeuna aya kira-kira 300 grafik sareng dua aliran: stabil sareng incubator. Saha waé anu nyumbang terang pisan kumaha sesahna angkat ti incubator ka stabil, sareng kumaha gampangna ngapung kaluar tina kandang. Nanging, ieu sanés alat anu pangsaéna pikeun milarian grafik pikeun Prometheus sareng naon waé anu anjeun pikahoyong, pikeun hiji alesan anu saderhana - éta sanés portal dimana anjeun tiasa milarian bungkusan.

Tapi aya jasa hub.helm.sh, nu ngajadikeun eta leuwih merenah pikeun manggihan grafik. Anu paling penting, aya seueur deui repositori éksternal sareng ampir 800 pesona sayogi. Tambih Deui, anjeun tiasa nyambungkeun gudang anjeun upami kusabab sababaraha alesan anjeun henteu hoyong ngirim grafik anjeun ka stabil.

Coba hub.helm.sh sareng hayu urang ngembangkeun babarengan. Ladenan ieu aya dina proyék Helm, sareng anjeun malah tiasa nyumbang kana UI na upami anjeun pamekar hareup-tungtung sareng ngan ukur hoyong ningkatkeun penampilan.

Abdi ogé hoyong ngagambar perhatian anjeun Buka Service calo integrasi API. Sigana pajeujeut sareng teu jelas, tapi ngabéréskeun masalah anu disanghareupan ku sadayana. Hayu atuh ngajelaskeun ku conto basajan.

Helm Kaamanan

Aya klaster Kubernetes dimana urang hoyong ngajalankeun aplikasi klasik - WordPress. Sacara umum, database diperlukeun pikeun fungsionalitas pinuh. Aya seueur solusi anu béda, contona, anjeun tiasa ngaluncurkeun jasa statefull anjeun nyalira. Ieu teu pisan merenah, tapi loba jalma ngalakukeun eta.

Batur, kawas kami di Chainstack, ngagunakeun database junun kawas MySQL atawa PostgreSQL pikeun server maranéhanana. Éta sababna pangkalan data urang aya di mana waé dina méga.

Tapi masalahna timbul: urang kedah nyambungkeun jasa kami sareng pangkalan data, nyiptakeun rasa database, mindahkeun kapercayaan sareng kumaha waé ngaturna. Sadaya ieu biasana dilakukeun sacara manual ku administrator sistem atanapi pamekar. Sareng teu aya masalah nalika aya sababaraha aplikasi. Nalika aya seueur di antarana, anjeun peryogi gabungan. Aya harvester sapertos - éta Service calo. Éta ngamungkinkeun anjeun ngagunakeun plugin khusus pikeun klaster awan umum sareng sumber pesenan ti panyadia ngalangkungan Broker, saolah-olah éta API. Jang ngalampahkeun ieu, anjeun tiasa nganggo alat Kubernetes asli.

Saderhana pisan. Anjeun tiasa naroskeun, contona, Managed MySQL di Azure kalayan tingkat dasar (ieu tiasa dikonpigurasi). Ngagunakeun Azure API, database bakal dijieun tur disiapkeun keur dipake. Anjeun teu kedah ngaganggu ieu, plugin nu tanggung jawab ieu. Contona, OSBA (Azure plugin) bakal balik credential kana jasa jeung ngalirkeun ka Helm. Anjeun bakal tiasa nganggo WordPress sareng awan MySQL, henteu ngurus database anu diurus sareng henteu hariwang ngeunaan jasa statefull di jero.

Urang tiasa nyebatkeun yén Helm tindakan salaku lem anu, di hiji sisi, ngamungkinkeun anjeun nyebarkeun jasa, sareng di sisi sanésna, meakeun sumber daya panyadia awan.

Anjeun tiasa nyerat plugin anjeun nyalira sareng nganggo sadayana carita ieu di tempat. Teras anjeun ngan saukur gaduh plugin anjeun nyalira pikeun panyadia Cloud perusahaan. Abdi nyarankeun nyobian pendekatan ieu, khususna upami anjeun gaduh skala ageung sareng hoyong gancang nyebarkeun dev, pementasan, atanapi sadayana infrastruktur pikeun fitur. Ieu bakal ngagampangkeun kahirupan pikeun operasi anjeun atanapi DevOps.

Papanggihan séjén anu ku kuring parantos disebatkeun nyaéta plugin helm-gcs, nu ngidinan Anjeun pikeun make Google-ember (panyimpenan objék) pikeun nyimpen grafik Helm.

Helm Kaamanan

Anjeun ngan ukur peryogi opat paréntah pikeun ngamimitian ngagunakeunana:

  1. masang plugin;
  2. ngamimitian éta;
  3. setel jalur ka ember, anu perenahna di gcp;
  4. nyebarkeun grafik dina cara standar.

Kaéndahanana nyaéta metode gcp asli bakal dianggo pikeun otorisasi. Anjeun tiasa nganggo akun jasa, akun pamekar, naon waé anu anjeun pikahoyong. Hal ieu kacida merenah tur waragad nanaon mun beroperasi. Upami anjeun, sapertos kuring, ngamajukeun filosofi opsless, maka ieu bakalan pisan, khususna pikeun tim alit.

Alternatipna

Helm sanes hiji-hijina solusi manajemén jasa. Aya seueur patarosan ngeunaan éta, anu sigana naha versi katilu muncul gancang pisan. Tangtu aya alternatif.

Ieu tiasa janten solusi khusus, contona, Ksonnet atanapi Metaparticle. Anjeun tiasa nganggo alat manajemén infrastruktur klasik anjeun (Ansible, Terraform, Chef, jsb) pikeun tujuan anu sami anu kuring nyarioskeun.

Tungtungna aya solusi Kerangka Operator, anu popularitasna ngembang.

Kerangka Operator mangrupikeun alternatif Helm anu paling luhur pikeun dipertimbangkeun.

Éta langkung asli tina CNCF sareng Kubernetes, tapi halangan pikeun asupna leuwih luhur, Anjeun kudu program leuwih sarta ngajelaskeun manifests kirang.

Aya rupa-rupa addons, sapertos Draft, Scaffold. Aranjeunna ngajantenkeun hirup langkung gampang, contona, aranjeunna nyederhanakeun siklus ngirim sareng ngaluncurkeun Helm pikeun pamekar nyebarkeun lingkungan uji. Kuring bakal nelepon aranjeunna empowerers.

Ieu mangrupikeun bagan visual dimana sadayana aya.

Helm Kaamanan

Dina sumbu-x nyaéta tingkat kontrol pribadi anjeun kana naon anu lumangsung, dina sumbu-y nyaéta tingkat asli Kubernetes. Vérsi Helm 2 ragrag wae di tengah. Dina versi 3, teu enormously, tapi duanana kontrol jeung tingkat nativeness geus ningkat. Solusi dina tingkat Ksonnet masih inferior malah mun Helm 2. Sanajan kitu, aranjeunna patut pilari di uninga naon sejenna di dunya ieu. Tangtosna, manajer konfigurasi anjeun bakal aya dina kontrol anjeun, tapi leres-leres sanés asli Kubernetes.

Kerangka Operator leres pisan asli Kubernetes sareng ngamungkinkeun anjeun pikeun ngatur éta langkung elegan sareng cermat (tapi émut ngeunaan tingkat éntri). Sabalikna, ieu cocog pikeun aplikasi khusus sareng nyiptakeun manajemén pikeun éta, tinimbang pemanen massal pikeun bungkusan sajumlah ageung aplikasi nganggo Helm.

Extenders saukur ningkatkeun kontrol saeutik, ngalengkepan workflow, atawa motong sudut on CI / CD pipelines.

Masa depan Helm

Warta anu saé nyaéta Helm 3. Versi alfa Helm 3.0.0-alpha.2 parantos dileupaskeun, anjeun tiasa nyobian. Éta cukup stabil, tapi pungsionalitasna masih terbatas.

Naha anjeun peryogi Helm 3? Anu mimiti, ieu carita ngeunaan leungit Tiller, salaku komponén. Ieu, anjeun geus ngarti, mangrupakeun hambalan badag ka hareup, sabab tina sudut pandang kaamanan arsitektur, sagalana geus disederhanakeun.

Nalika Helm 2 diciptakeun, anu sakitar waktos Kubernetes 1.8 atanapi sateuacana, seueur konsép anu henteu dewasa. Contona, konsép CRD ayeuna keur aktip dilaksanakeun, sarta Helm bakal ngagunakeun CRDpikeun nyimpen struktur. Éta bakal tiasa dianggo ngan ukur klien sareng henteu ngajaga bagian server. Sasuai, paké paréntah Kubernetes asli pikeun damel sareng struktur sareng sumber. Ieu hambalan badag ka hareup.

Bakal némbongan rojongan pikeun repositories OCI asli (Buka Wadah Inisiatif). Ieu inisiatif badag, sarta Helm museurkeun utamana dina urutan masangkeun grafik na. Datang ka titik éta, contona, Docker Hub ngadukung seueur standar OCI. Abdi henteu nyangka, tapi panginten panyadia gudang Docker klasik bakal ngawitan masihan anjeun kasempetan pikeun nga-host grafik Helm anjeun.

Carita kontroversial pikeun kuring nyaéta rojongan Lua, salaku mesin templating pikeun nulis naskah. Abdi lain kipas badag tina Lua, tapi ieu bakal jadi fitur lengkep pilihan. Kuring pariksa ieu 3 kali - ngagunakeun Lua moal diperlukeun. Ku alatan éta, jalma anu hayang bisa ngagunakeun Lua, maranéhanana anu resep Go, gabung camp badag kami sarta ngagunakeun go-tmpl pikeun ieu.

Tungtungna, naon anu kuring pasti leungit éta mecenghulna skéma jeung validasi tipe data. Moal aya deui masalah sareng int atanapi string, teu kedah mungkus nol dina tanda petik ganda. Skéma JSONS bakal muncul anu ngamungkinkeun anjeun ngajelaskeun sacara eksplisit ieu pikeun nilai.

Bakal beurat reworked model acara-disetir. Éta parantos dijelaskeun sacara konsép. Tingali dina Helm 3 cabang, tur anjeun bakal nempo sabaraha acara jeung kait jeung hal séjén geus ditambahkeun, nu bakal greatly simplify na, di sisi séjén, nambahkeun kadali kana prosés deployment jeung réaksi ka aranjeunna.

Helm 3 bakal langkung saderhana, langkung aman, sareng langkung pikaresepeun, sanés kusabab urang henteu resep Helm 2, tapi kusabab Kubernetes janten langkung maju. Sasuai, Helm tiasa nganggo pamekaran Kubernetes sareng nyiptakeun manajer anu saé pikeun Kubernetes dina éta.

warta alus sejen nyaeta DevOpsConf Alexander Khayorov bakal nyarioskeun ka anjeun, naha wadahna tiasa aman? Kami ngingetan yén konperénsi ngeunaan integrasi pangwangunan, uji sareng prosés operasi bakal dilaksanakeun di Moscow 30 Séptémber sareng 1 Oktober. Anjeun masih tiasa ngalakukeun éta dugi ka 20 Agustus ngirimkeun laporan sarta ngabejaan urang ngeunaan pangalaman anjeun kalawan solusi salah sahiji loba tugas tina pendekatan DevOps.

Tuturkeun checkpoints konferensi sarta warta di milis и saluran telegram.

sumber: www.habr.com

Tambahkeun komentar