Fanamboarana lavaka ao amin'ny cluster Kubernetes. Tatitra sy fandikana avy amin'ny DevOpsConf

Pavel Selivanov, Southbridge solutions architect ary mpampianatra Slurm, dia nanao famelabelarana tao amin'ny DevOpsConf 2019. Ity lahateny ity dia ampahany amin'ny lohahevitra iray amin'ny taranja lalindalina momba ny Kubernetes "Slurm Mega".

Slurm Basic: Fampidirana ny Kubernetes atao ao Moskoa ny 18-20 Novambra.
Slurm Mega: mijery ao ambanin'ny saron'i Kubernetes — Moskoa, 22-24 Novambra.
Slurm Online: taranja Kubernetes roa misy foana.

Eo ambanin'ny fanapahana dia misy dika mitovy amin'ny tatitra.

Salama daholo ry mpiara-miasa sy izay miombom-po aminy. Hiresaka momba ny fiarovana aho anio.

Hitako fa betsaka ny mpiambina ao amin'ny efitrano ankehitriny. Miala tsiny aminao mialoha aho raha mampiasa teny avy amin'ny tontolon'ny fiarovana tsy araka ny mahazatra anao.

Nitranga izany fa teo amin'ny enim-bolana lasa izay dia nahita vondron'olona Kubernetes iray aho. Ny ampahibemaso dia midika fa misy laharana faha-n'ny anaran'olona; ao amin'ireo sehatra anarana ireo dia misy mpampiasa mitoka-monina ao amin'ny toerana misy azy. Ireo mpampiasa rehetra ireo dia an'ny orinasa samihafa. Eny ary, noheverina fa ity cluster ity dia tokony ampiasaina ho CDN. Izany hoe, manome anao cluster izy ireo, manome mpampiasa anao any ianao, mandehana any amin'ny toerana misy anao, mametraka ny lohanao.

Ny orinasako taloha dia nanandrana nivarotra serivisy toy izany. Ary nasaina aho nanosika ny cluster mba hahitana raha mety io vahaolana io na tsia.

Tonga tamin'ity cluster ity aho. Nomena zo voafetra aho, toerana nomena anarana voafetra. Takatr’ireo bandy teo ny atao hoe fiarovana. Namaky momba ny fanaraha-maso ny fidirana mifototra amin'ny anjara (RBAC) ao amin'ny Kubernetes izy ireo - ary navadiny izany mba tsy hahafahako mamoaka pods misaraka amin'ny fametrahana. Tsy tadidiko ny olana niezahana novahako tamin'ny alàlan'ny fandefasana pod tsy misy fametrahana, fa tena te-hamoaka pod fotsiny aho. Mba hahazoana vintana tsara dia nanapa-kevitra aho ny hijery hoe inona no zo ananako ao amin'ny cluster, inona no azoko atao, inona no tsy azoko atao, ary inona no nopotehin'izy ireo tao. Amin'izay fotoana izay ihany koa dia holazaiko aminao izay diso napetrany tao amin'ny RBAC.

Nitranga izany fa tao anatin'ny roa minitra dia nahazo admin tao amin'ny vondron'izy ireo aho, nijery ny toerana misy ny anaran'ny mpifanolo-bodirindrina rehetra, hitako teo ny sehatry ny famokarana orinasa izay efa nividy ny serivisy ary naparitaka. Zara raha nisakana ny tenako tsy handeha ho eo anoloan'ny olona iray aho ary hametraka teny ratsy eo amin'ny pejy fototra.

Holazaiko anao amin'ny ohatra ny fomba nanaovako izany sy ny fomba hiarovana ny tenanao amin'izany.

Fa avelao aho hampahafantatra ny tenako aloha. Pavel Selivanov no anarako. Mpanao mari-trano ao amin'ny Southbridge aho. Azoko tsara ny Kubernetes, DevOps ary ireo karazan-javatra raitra rehetra. Izaho sy ireo injeniera Southbridge dia manorina izany rehetra izany, ary manoro hevitra aho.

Ho fanampin'ny hetsika lehibe ataonay, dia nanangana tetikasa antsoina hoe Slurms izahay. Miezaka mitondra ny fahafahantsika miara-miasa amin'ny Kubernetes ho an'ny be sy ny maro izahay, mba hampianarana ny hafa hiara-hiasa amin'ny K8 koa.

Inona no horesahiko anio? Miharihary ny lohahevitry ny tatitra - momba ny fiarovana ny vondrona Kubernetes. Saingy te-hilaza avy hatrany aho fa lehibe tokoa ity lohahevitra ity - ary noho izany dia tiako ny hanazava avy hatrany izay tsy horesahiko. Tsy hiresaka momba ny teny hackneyed izay efa nampiasaina in-jato tao amin'ny Internet aho. Karazana RBAC sy fanamarinana rehetra.

Hiresaka momba ny maharary ahy sy ny mpiara-miasa amiko momba ny fiarovana amin'ny vondron'olona Kubernetes aho. Hitanay ireo olana ireo na eo amin'ireo mpamatsy izay manome cluster Kubernetes na eo amin'ireo mpanjifa tonga any aminay. Ary na dia avy amin'ny mpanjifa tonga any aminay avy amin'ny orinasa admin consulting hafa. Izany hoe, ny haavon'ny loza dia tena lehibe tokoa.

Misy teboka telo ara-bakiteny horesahiko anio:

  1. Zon'ny mpampiasa vs zon'ny pod. Ny zon'ny mpampiasa sy ny zon'ny pod dia tsy mitovy.
  2. Manangona vaovao momba ny cluster. Hasehoko fa afaka manangona ny fampahalalana rehetra ilainao amin'ny cluster ianao nefa tsy manana zo manokana amin'ity cluster ity.
  3. Fanafihana DoS amin'ny cluster. Raha tsy afaka manangona vaovao izahay dia afaka mametraka cluster na inona na inona. Hiresaka momba ny fanafihana DoS amin'ny singa fanaraha-maso cluster aho.

Ny zavatra ankapobeny iray hafa holazaiko dia ny nanandramako an'izany rehetra izany, izay azoko antoka fa miasa daholo izany.

Raisinay ho fototra ny fametrahana cluster Kubernetes mampiasa Kubespray. Raha misy tsy mahafantatra dia andiana andraikitry ny Ansible tokoa io. Ampiasainay tsy tapaka amin'ny asantsika izany. Ny tsara dia azonao atao ny manakodia azy na aiza na aiza - azonao atao ny manodina azy amin'ny tapa-by na amin'ny rahona any ho any. Ny fomba fametrahana iray dia miasa amin'ny fitsipika ho an'ny zava-drehetra.

Amin'ity cluster ity dia hanana Kubernetes v1.14.5 aho. Ny cluster Cube manontolo, izay hodinihintsika, dia mizara ho toeran'ny anarana, an'ny ekipa misaraka ny habaka anarana tsirairay, ary ny mpikambana ao amin'ity ekipa ity dia afaka miditra amin'ny toerana misy anarana tsirairay. Tsy afaka mandeha any amin'ny toerana misy anarana samihafa izy ireo, fa ho an'ny azy ihany. Saingy misy kaonty admin iray manana zo amin'ny cluster manontolo.

Fanamboarana lavaka ao amin'ny cluster Kubernetes. Tatitra sy fandikana avy amin'ny DevOpsConf

Nampanantena aho fa ny zavatra voalohany hataontsika dia ny fahazoana zon'ny admin amin'ny cluster. Mila pod voaomana manokana izay handrava ny cluster Kubernetes isika. Ny hany tokony hataontsika dia ny mampihatra izany amin'ny cluster Kubernetes.

kubectl apply -f pod.yaml

Ho tonga any amin'ny iray amin'ireo tompon'ny cluster Kubernetes ity pod ity. Ary rehefa afaka izany, ny cluster dia hamerina aminay amim-pifaliana ny rakitra iray antsoina hoe admin.conf. Ao amin'ny Cube, ity rakitra ity dia mitahiry ny mari-pankasitrahana administratera rehetra, ary miaraka amin'izay koa dia manamboatra ny cluster API. Toy izany no mora ny mahazo fidirana admin, araka ny hevitro, ny 98% amin'ny cluster Kubernetes.

Averiko indray, ity pod ity dia nataon'ny mpamorona iray ao amin'ny cluster misy anao izay afaka mametraka ny tolo-keviny amin'ny sehatra anarana kely iray, voafehin'ny RBAC daholo izany. Tsy nanana zo izy. Na izany aza anefa dia niverina ny taratasy fanamarinana.

Ary ankehitriny momba ny pod voaomana manokana. Mandefa azy amin'ny sary rehetra izahay. Andeha horaisintsika ohatra i debian:jessie.

Manana ity zavatra ity izahay:

tolerations:
-   effect: NoSchedule 
    operator: Exists 
nodeSelector: 
    node-role.kubernetes.io/master: "" 

Inona no atao hoe fandeferana? Ny Masters ao amin'ny cluster Kubernetes dia matetika voamarika amin'ny zavatra antsoina hoe taint. Ary ny votoatin'ity "infection" ity dia milaza fa tsy azo apetraka amin'ny node master ny pods. Saingy tsy misy manelingelina ny manondro amin'ny pod rehetra fa mandefitra amin'ny "infection". Ny fizarana Fandeferana dia milaza fotsiny fa raha misy node misy NoSchedule, dia mandefitra amin'ny aretina toy izany ny node - ary tsy misy olana.

Ankoatra izany, dia milaza isika fa ny ambany dia tsy mandefitra fotsiny, fa koa te-hiantehitra manokana ny tompony. Satria ny tompony dia manana ny zavatra matsiro indrindra ilaintsika - ny taratasy fanamarinana rehetra. Noho izany, hoy izahay nodeSelector - ary manana mari-pamantarana manara-penitra momba ny tompo izahay, izay ahafahanao misafidy avy amin'ireo node rehetra ao amin'ny cluster ireo nodes izay tompon'andraikitra.

Miaraka amin'ireo fizarana roa ireo dia ho tonga amin'ny tompony tokoa izy. Ary havela hipetraka any izy.

Saingy tsy ampy ho antsika ny fanatonana ny tompo. Tsy hanome antsika na inona na inona izany. Ka manaraka ireto zavatra roa ireto isika:

hostNetwork: true 
hostPID: true 

Nofaritanay fa ny pod, izay atombokay, dia hiaina ao amin'ny toeran'ny kernel, amin'ny anaran'ny tambajotra, ary ao amin'ny namespace PID. Raha vao natomboka tamin'ny tompony ny pod, dia ho afaka hahita ny tena izy, mivantana mivantana amin'ity node ity, mihaino ny fifamoivoizana rehetra ary jereo ny PID amin'ny dingana rehetra.

Dia resaka zavatra kely. Raiso sns ary vakio izay tianao.

Ny tena mahaliana dia ity endri-javatra Kubernetes ity, izay misy ao amin'ny default.

volumeMounts:
- mountPath: /host 
  name: host 
volumes:
- hostPath: 
    path: / 
    type: Directory 
  name: host 

Ary ny maha-zava-dehibe azy dia ny ahafahantsika milaza ao amin'ny pod izay atombotsika, na dia tsy misy zo amin'ity cluster ity aza, fa te hamorona karazana hostPath. Midika izany fa maka ny lalana avy amin'ny mpampiantrano izay halehantsika - ary raisina ho toy ny volume. Ary avy eo dia antsoinay hoe: host. Mametraka ity hostPath manontolo ity ao anaty pod izahay. Amin'ity ohatra ity, mankany amin'ny /host directory.

Averiko indray. Nolazainay ny pod mba ho tonga any amin'ny tompony, alao ao ny hostNetwork sy hostPID - ary apetraho ao anatin'ity pod ity ny fototry ny tompony manontolo.

Fantatrao fa ao amin'ny Debian dia manana bash mihazakazaka isika, ary ity bash ity dia mihazakazaka eo ambanin'ny faka. Izany hoe, vao nahazo faka amin'ny tompony izahay, tsy manana zo ao amin'ny cluster Kubernetes.

Avy eo ny asa manontolo dia ny mankany amin'ny lahatahiry ambany /host /etc/kubernetes/pki, raha tsy diso aho, alaivo ny mari-pankasitrahana master rehetra ao amin'ny cluster ary, araka izany, ho lasa mpitantana cluster.

Raha mijery izany ianao dia ireto ny sasany amin'ireo zo mampidi-doza indrindra amin'ny pods - na inona na inona zo ananan'ny mpampiasa:
Fanamboarana lavaka ao amin'ny cluster Kubernetes. Tatitra sy fandikana avy amin'ny DevOpsConf

Raha manana zo hitantana pod aho amin'ny anaran'ny cluster, dia manana ireo zo ireo amin'ny alàlan'ny default ity pod ity. Afaka mitantana pods manokana aho, ary amin'ny ankapobeny ireo dia zo rehetra, miorim-paka amin'ny node.

Ny mpampiasa Root no tiako indrindra. Ary manana ity safidy Run As Non-Root ity i Kubernetes. Karazana fiarovana amin'ny hacker ity. Fantatrao ve ny atao hoe "virus moldavia"? Raha mpijirika tampoka ianao ka tonga ao amin'ny cluster Kubernetes, dia manontany izahay, administratera mahantra: "Azafady, asehoy ao amin'ny pods izay hanaisotrao ny cluster-ko, mihazakazaka ho tsy root. Raha tsy izany, dia hitranga ny fandehananao ny dingana ao amin'ny pod eo ambanin'ny fakany, ary ho mora aminao ny hack ahy. Mba arovy ny tenanao amin'ny tenanao."

Ny habetsaky ny lalan'ny mpampiantrano dia, araka ny hevitro, no fomba haingana indrindra hahazoana ny vokatra tadiavina avy amin'ny cluster Kubernetes.

Inona anefa no hatao amin’izany rehetra izany?

Ny eritreritra tokony ho tonga amin'ny mpitantana mahazatra izay mifanena amin'ny Kubernetes dia: “Eny, nilaza taminao aho fa tsy mandeha ny Kubernetes. Misy lavaka ao anatiny. Ary ny Cube manontolo dia omby. " Raha ny marina dia misy ny toy ny antontan-taratasy, ary raha mijery ianao dia misy fizarana Politika fiarovana Pod.

Zavatra yaml ity - azontsika atao ny mamorona azy ao amin'ny cluster Kubernetes - izay mifehy ny lafiny fiarovana manokana amin'ny famaritana ny pods. Izany hoe, raha ny marina, dia mifehy ny zo hampiasa ny hostNetwork, hostPID, karazana volume sasany izay ao anaty pods amin'ny fanombohana. Miaraka amin'ny fanampian'ny Pod Security Policy dia azo faritana izany rehetra izany.

Ny zavatra mahaliana indrindra momba ny Politika fiarovana Pod dia ny hoe ao amin'ny kluster Kubernetes ny installer PSP rehetra dia tsy voalaza fotsiny amin'ny fomba rehetra, dia kilemaina fotsiny izy ireo. Pod Security Policy dia alefa amin'ny alàlan'ny plugin admission.

Eny ary, andao apetraka ao anaty cluster ny Politika fiarovana Pod, andao lazaina fa manana pods serivisy izahay ao amin'ny namespace, izay ny admin ihany no afaka miditra. Aoka hatao hoe, amin'ny tranga hafa rehetra, ny pods dia manana zo voafetra. Satria ny ankamaroan'ny mpamorona dia tsy mila mandefa pods manana tombontsoa amin'ny cluster anao.

Ary toa milamina ny zava-drehetra amintsika. Ary ny cluster Kubernetes dia tsy azo voajirika ao anatin'ny roa minitra.

Misy olana. Azo inoana fa raha manana cluster Kubernetes ianao, dia apetraka ao amin'ny cluster anao ny fanaraha-maso. Nandeha lavitra mihitsy aza aho fa raha misy fanaraha-maso ny cluster anao dia antsoina hoe Prometheus.

Ny zavatra holazaiko aminao dia manan-kery ho an'ny mpandraharaha Prometheus sy Prometheus atolotra amin'ny endriny madio. Ny fanontaniana dia hoe raha tsy afaka mampiditra admin haingana be aho dia midika izany fa mila mijery bebe kokoa aho. Ary afaka mikaroka aho miaraka amin'ny fanaraha-maso anao.

Angamba ny rehetra mamaky lahatsoratra mitovy amin'ny Habré, ary ny fanaraha-maso dia hita ao amin'ny anaran'ny fanaraha-maso. Ny sarin'ny helm dia antsoina hoe mitovy amin'ny rehetra. Heveriko fa raha mametraka stable/prometheus ianao dia hanana anarana mitovy. Ary azo inoana fa tsy mila maminavina ny anaran'ny DNS ao amin'ny cluster anao aho. Satria manara-penitra.

Fanamboarana lavaka ao amin'ny cluster Kubernetes. Tatitra sy fandikana avy amin'ny DevOpsConf

Manaraka izany dia manana dev ns sasany izahay, izay ahafahanao mitantana pod iray. Ary avy eo amin'ity pod ity dia tena mora ny manao zavatra toy izao:

$ curl http://prometheus-kube-state-metrics.monitoring 

prometheus-kube-state-metrics dia iray amin'ireo mpanondrana Prometheus izay manangona metrika avy amin'ny Kubernetes API mihitsy. Betsaka ny angona any, inona no mandeha ao amin'ny cluster anao, inona izany, inona no olana anananao amin'izany.

Ohatra tsotra:

kube_pod_container_info{namespace=“kube-system”,pod=”kube-apiserver-k8s- 1″,container=”kube-apiserver”,image=

"gcr.io/google-containers/kube-apiserver:v1.14.5"

,image_id=»docker-pullable://gcr.io/google-containers/kube- apiserver@sha256:e29561119a52adad9edc72bfe0e7fcab308501313b09bf99df4a96 38ee634989″,container_id=»docker://7cbe7b1fea33f811fdd8f7e0e079191110268f2 853397d7daf08e72c22d3cf8b»} 1

Amin'ny fanaovana fangatahana curl tsotra avy amin'ny pod tsy misy tombontsoa, ​​azonao atao ny mahazo ireto fampahalalana manaraka ireto. Raha tsy fantatrao hoe inona ny dikan-tenin'ny Kubernetes entinao dia holazaina aminao mora foana izany.

Ary ny tena mahaliana dia ny hoe ankoatry ny fidirana amin'ny kube-state-metrics, azonao atao ny miditra mivantana mivantana amin'ny Prometheus. Afaka manangona metrika ianao avy eo. Azonao atao mihitsy aza ny manangana metrika avy any. Na ara-teorika aza, azonao atao ny manangana fanontaniana toy izany avy amin'ny cluster ao amin'ny Prometheus, izay hamono azy fotsiny. Ary ny fanaraha-maso anao dia hitsahatra tsy hiasa amin'ny cluster.

Ary eto dia mipetraka ny fanontaniana raha misy fanaraha-maso ivelany manara-maso ny fanaraha-maso anao. Vao nahazo fahafahana niasa tao amin'ny kluster Kubernetes aho nefa tsy nisy vokany ho an'ny tenako. Tsy ho fantatrao akory fa miasa any aho, satria tsy misy fanaraha-maso intsony.

Tahaka ny amin'ny PSP, toa ny olana dia ireo teknolojia raitra rehetra ireo - Kubernetes, Prometheus - tsy mandeha fotsiny ary feno lavaka. Tsy dia izany loatra.

Misy zavatra toy izany - Politika tambajotra.

Raha admin ara-dalàna ianao, dia azo inoana fa fantatrao momba ny Politikan'ny Tambajotra fa yaml hafa fotsiny ity, izay efa betsaka amin'izy ireo ao amin'ny cluster. Ary ny politikan'ny tambajotra sasany dia tena tsy ilaina. Ary na dia mamaky aza ianao hoe inona ny Politikan'ny Tambajotra, fa firewall yaml an'ny Kubernetes izy io, dia ahafahanao mametra ny zo fidirana eo anelanelan'ny namespaces, eo anelanelan'ny pods, dia nanapa-kevitra ianao fa ny firewall amin'ny endrika yaml ao amin'ny Kubernetes dia mifototra amin'ny abstractions manaraka. ... Tsia tsia . Tena tsy ilaina izany.

Na dia tsy nilaza tamin'ny manam-pahaizana manokana momba ny fiarovana aza ianao fa amin'ny fampiasana ny Kubernetes-nao dia afaka manangana firewall tena mora sy tsotra ianao, ary tena mivoitra amin'izany. Raha mbola tsy mahafantatra izany izy ireo ary tsy manelingelina anao: "Eny, omeo aho, omeo ahy ..." Avy eo, na ahoana na ahoana, mila Politikan'ny Tambajotra ianao hanakanana ny fidirana amin'ny toerana serivisy sasany azo alaina avy amin'ny cluster anao. tsy misy fanomezan-dàlana.

Toy ny tamin'ny ohatra nomeko, azonao atao ny misintona ny metrikan'ny fanjakana kube avy amin'ny toerana misy anarana ao amin'ny cluster Kubernetes nefa tsy manana zo hanao izany. Ny politikan'ny tambajotra dia nanakatona ny fidirana avy amin'ny sehatra anarana hafa rehetra mankany amin'ny sehatry ny fanaraha-maso ary izany no izy: tsy misy fidirana, tsy misy olana. Ao amin'ny tabilao rehetra misy, na ny Prometheus mahazatra na ny Prometheus izay ao amin'ny mpandraharaha, dia misy safidy fotsiny amin'ny soatoavin'ny helm mba ahafahan'ny politikan'ny tambajotra ho azy ireo. Mila velomina fotsiny ianao dia hiasa izy ireo.

Tena misy olana iray eto. Amin'ny maha mpitantana volombava mahazatra anao dia mety nanapa-kevitra ianao fa tsy ilaina ny politikan'ny tambajotra. Ary rehefa avy namaky lahatsoratra isan-karazany momba ny loharanon-karena toa an'i Habr ianao, dia nanapa-kevitra fa ny flannel, indrindra amin'ny maodely host-gateway, no zavatra tsara indrindra azonao fidinao.

Inona no tokony ataoko?

Azonao atao ny manandrana mamerina ny vahaolana amin'ny tambajotra izay anananao ao amin'ny kluster Kubernetes anao, andramo hanolo azy amin'ny zavatra miasa kokoa. Ho an'ny Calico mitovy, ohatra. Saingy te-hilaza avy hatrany aho fa ny asa fanovana ny vahaolana amin'ny tambajotra amin'ny kluster miasa Kubernetes dia tsy misy dikany. Namaha azy indroa aho (na izany aza, ara-teorika roa), fa nasehonay tao amin'ny Slurms mihitsy aza ny fomba hanaovana izany. Ho an'ny mpianatray, nasehonay ny fomba hanovana ny vahaolana amin'ny tambajotra ao anaty cluster Kubernetes. Amin'ny ankapobeny, azonao atao ny manandrana miantoka fa tsy misy fotoana fitsaharana amin'ny cluster famokarana. Mety tsy hahomby anefa ianao.

Ary ny olana dia tena voavaha tsotra izao. Misy mari-pankasitrahana ao amin'ny cluster, ary fantatrao fa ho tapitra ny mari-pankasitrahana anao afaka herintaona. Eny, ary matetika vahaolana mahazatra miaraka amin'ny mari-pankasitrahana ao amin'ny cluster - maninona no manahy isika, hanangana cluster vaovao eo akaiky eo, avelao ho lo ilay taloha, ary hamerina ny zava-drehetra. Marina fa rehefa lasa lo izy dia tsy maintsy hipetraka mandritra ny iray andro, fa ity misy cluster vaovao.

Rehefa manangana cluster vaovao ianao dia ampidiro indray ny Calico fa tsy flannel.

Inona no tokony hatao raha avoaka mandritra ny zato taona ny taratasy fanamarinanao ary tsy hamerenanao ny cluster? Misy zavatra toy ny Kube-RBAC-Proxy. Fampandrosoana tena mahafinaritra ity, mamela anao hampiditra ny tenany ho toy ny kaontenera sidecar amin'ny pod rehetra ao amin'ny cluster Kubernetes. Ary tena manampy fahazoan-dàlana amin'ity pod ity amin'ny alàlan'ny RBAC an'ny Kubernetes mihitsy.

Misy olana iray. Teo aloha, ity vahaolana Kube-RBAC-Proxy ity dia natsangana tao amin'ny Prometheus an'ny mpandraharaha. Lasa anefa izy avy eo. Ankehitriny ny dikan-teny maoderina dia miankina amin'ny hoe manana politikan'ny tambajotra ianao ary manakatona azy amin'ny fampiasana azy ireo. Ary noho izany dia tsy maintsy mamerina manoratra kely ny tabilao isika. Raha ny marina, raha mandeha any ity repository ity, misy ohatra amin'ny fampiasana izany ho sidecars, ary tsy maintsy averina soratana kely ny tabilao.

Misy olana kely iray hafa. Tsy i Prometheus irery no mizara ny metrika ho an'ny olona rehetra. Ireo singa kluster Kubernetes rehetra dia afaka mamerina ny metrikany manokana ihany koa.

Saingy araka ny efa nolazaiko, raha tsy afaka miditra amin'ny cluster ianao ary manangona vaovao, dia mety hanao ratsy farafaharatsiny ianao.

Noho izany dia hasehoko haingana ny fomba roa mety handrava ny cluster Kubernetes.

Hihomehezana ianao rehefa milaza izany aho, tranga roa tena izy ireo.

Fomba iray. Fahavitan'ny loharanon-karena.

Andao hanomboka pod manokana hafa. Hisy fizarana tahaka izao.

resources: 
    requests: 
        cpu: 4 
        memory: 4Gi 

Araka ny fantatrao, ny fangatahana dia ny habetsaky ny CPU sy ny fahatsiarovana natokana ho an'ny mpampiantrano ho an'ny pods manokana misy fangatahana. Raha manana mpampiantrano ifotony efatra ao amin'ny kluster Kubernetes isika, ary misy pod CPU efatra tonga any miaraka amin'ny fangatahana, dia midika izany fa tsy misy pods misy fangatahana ho tonga ao amin'io mpampiantrano io.

Raha manao pod toy izany aho, dia hanao ny baiko aho:

$ kubectl scale special-pod --replicas=...

Dia tsy misy olon-kafa afaka miparitaka amin'ny kluster Kubernetes. Satria ny nodes rehetra dia ho lany fangatahana. Ary noho izany dia hampitsahatra ny cluster Kubernetes anao aho. Raha manao izany amin'ny hariva aho, dia afaka mampiato ny fametrahana mandritra ny fotoana maharitra.

Raha mijery indray ny antontan-taratasin'i Kubernetes isika dia hahita ity zavatra antsoina hoe Limit Range ity. Izy io dia mametraka loharano ho an'ny zavatra cluster. Azonao atao ny manoratra zavatra Limit Range ao amin'ny yaml, ampiharo izany amin'ny toerana misy anarana sasany - ary amin'ity sehatra anarana ity dia azonao atao ny milaza fa manana loharanon-karena default, ambony indrindra ary kely indrindra ho an'ny pods ianao.

Miaraka amin'ny fanampian'ny zavatra toy izany, afaka mametra ny mpampiasa amin'ny anaran'ny vokatra manokana amin'ny ekipa izahay amin'ny fahafahana manondro ireo karazan-javatra ratsy rehetra ao amin'ny pods. Saingy indrisy, na dia milaza amin'ny mpampiasa aza ianao fa tsy afaka manomboka pods miaraka amin'ny fangatahana CPU mihoatra ny iray izy ireo, dia misy baiko mizana mahafinaritra, na afaka manao scale amin'ny dashboard izy ireo.

Ary eto no niavian'ny fomba faharoa. Manokatra pods 11 izahay. 111 miliara izany. Tsy noho ny nahazoako isa toy izany, fa noho ny fahitako azy.

Tantara tena izy. Efa hivoaka ny birao aho ny hariva. Mahita andiana mpamorona mipetraka eo an-joron-trano aho, manao zavatra amin'ny solosaina findainy. Nankany amin’ireo lehilahy ireo aho ary nanontany hoe: “Inona no nanjo anareo?”

Talohan’izay, tokony ho tamin’ny sivy ora hariva, dia efa niomana hody ny iray tamin’ireo mpamorona. Ary nanapa-kevitra aho hoe: "Hampitomboiko ho iray ny fangatahako." Nanindry iray aho, saingy nihena kely ny Internet. Notsindriiny indray ny iray, notsindriiny ny iray ary tsindrio ny Enter. Nanao izay rehetra azoko natao aho. Dia velona ny Internet - ary nanomboka nihena ho amin'io isa io ny zava-drehetra.

Marina fa tsy tao amin'ny Kubernetes io tantara io, tamin'izany fotoana izany dia Nomad. Niafara tamin'ny zava-misy fa taorian'ny adin'ny fiezahanay hanakana an'i Nomad amin'ny fiezahana tsy mitsaha-mitombo, dia namaly i Nomad fa tsy hijanona amin'ny scaling izy ary tsy hanao zavatra hafa. "Reraka aho, handeha aho." Ary niondrika izy.

Mazava ho azy, niezaka nanao toy izany koa aho tamin'ny Kubernetes. Tsy faly tamin'ny pods iraika ambin'ny folo lavitrisa i Kubernetes, hoy izy: “Tsy afaka aho. Mihoatra noho ny fiarovana ny vava anatiny." Saingy afaka 1 pods.

Ho setrin'ny iray lavitrisa, ny Cube dia tsy nisintona ho azy. Nanomboka nanao scaling tokoa izy. Arakaraka ny nandehanan'ny dingana, dia vao mainka nitaky fotoana izy hamorona pods vaovao. Mbola nitohy ihany anefa ny dingana. Ny hany olana dia ny hoe raha afaka manokatra pods tsy misy fetra ao amin'ny anarako aho, dia na dia tsy misy fangatahana sy fetra aza dia afaka manomboka pods be dia be miaraka amin'ny asa sasany izay miaraka amin'ireo asa ireo dia hanomboka hampiditra fahatsiarovana ao amin'ny CPU ny nodes. Rehefa manomboka pods be dia be aho, ny fampahalalana avy amin'izy ireo dia tokony hiditra amin'ny fitahirizana, izany hoe, sns. Ary rehefa tonga any ny fampahalalana be loatra dia manomboka miverina miadana loatra ny fitahirizana - ary manomboka manjavozavo ny Kubernetes.

Ary olana iray hafa... Araka ny fantatrao, ny singa mifehy ny Kubernetes dia tsy zava-dehibe iray, fa singa maromaro. Indrindra indrindra, misy ny mpitantana ny fanaraha-maso, ny fandaharam-potoana, sy ny sisa. Ireo lehilahy rehetra ireo dia hanomboka hanao asa tsy ilaina, adala amin'ny fotoana iray ihany, izay rehefa mandeha ny fotoana dia hanomboka haka fotoana bebe kokoa. Ny mpitantana ny controller dia hamorona pods vaovao. Ny scheduler dia hiezaka hitady node vaovao ho azy ireo. Azo inoana fa ho lany ny node vaovao ao amin'ny cluster anao tsy ho ela. Hanomboka hiasa miadana sy miadana kokoa ny kluster Kubernetes.

Nanapa-kevitra ny handeha lavitra kokoa anefa aho. Araka ny fantatrao, ao amin'ny Kubernetes dia misy ny antsoina hoe serivisy. Eny, amin'ny alàlan'ny default ao amin'ny clusters, azo inoana fa miasa amin'ny tabilao IP ny serivisy.

Raha mampiasa pods iray lavitrisa ianao, ohatra, ary mampiasa script hanerena an'i Kubernetis hamorona serivisy vaovao:

for i in {1..1111111}; do
    kubectl expose deployment test --port 80  
        --overrides="{"apiVersion": "v1", 
           "metadata": {"name": "nginx$i"}}"; 
done 

Amin'ny nodes rehetra ao amin'ny cluster, mihamaro hatrany ny fitsipika iptables vaovao hatsangana eo ho eo. Ambonin'izany, hatsangana ny fitsipika iptables iray lavitrisa isaky ny serivisy.

Nojereko an'arivony izany rehetra izany, hatramin'ny folo. Ary ny olana dia efa eo amin'io tokonam-baravarana io dia tena sarotra ny manao ssh amin'ny node. Satria ny fonosana, mandalo rojo maro, dia manomboka mahatsapa ho tsy dia tsara.

Ary izany koa dia voavaha amin'ny fanampian'ny Kubernetes. Misy zavatra quota Resource toy izany. Mametraka ny isan'ny loharanon-karena misy sy zavatra ho an'ny espace anarana ao amin'ny cluster. Azontsika atao ny mamorona zavatra yaml amin'ny anaran'ny vondrona Kubernetes tsirairay. Amin'ny fampiasana an'io zavatra io dia afaka milaza isika fa manana fangatahana sy fetra maromaro natokana ho an'ity sehatra anarana ity, ary avy eo dia afaka milaza isika fa amin'ity sehatra anarana ity dia azo atao ny mamorona serivisy 10 sy pods 10. Ary ny developer tokana dia afaka manakenda ny tenany farafaharatsiny amin'ny hariva. Hoy i Kubernetes taminy: “Tsy azonao atao ny mampiakatra ny sandanao amin'io vola io, satria mihoatra ny quota ny loharanon-karena.” Izay ihany, voavaha ny olana. Documentation eto.

Mipoitra ny olana iray amin'io lafiny io. Tsapanao fa sarotra ny mamorona sehatra anarana ao amin'ny Kubernetes. Mba hamoronana azy dia mila mandinika zavatra maro isika.

Ny fetran'ny loharano + fetra + RBAC
• Mamorona toerana misy anarana
• Mamorona fetra ao anatiny
• Mamorona loharanon-karena anatiny
• Mamorona kaonty serivisy ho an'ny CI
• Mamorona fifamatorana ho an'ny CI sy ny mpampiasa
• Optionally manomboka ny pods fanompoana ilaina

Noho izany dia te-hanararaotra ity fotoana ity aho hizarana ny fivoarana. Misy zavatra toy izany antsoina hoe SDK operator. Ity dia fomba iray ho an'ny cluster Kubernetes hanoratana mpandraharaha ho azy. Azonao atao ny manoratra fanambarana amin'ny fampiasana Ansible.

Tamin'ny voalohany dia nosoratana tamin'ny Ansible izy io, ary avy eo dia hitako fa nisy mpandraharaha SDK ary namerina nanoratra ny anjara asan'ny Ansible ho mpandraharaha. Ity fanambarana ity dia ahafahanao mamorona zavatra ao amin'ny cluster Kubernetes antsoina hoe baiko. Ao anaty baiko iray dia ahafahanao mamaritra ny tontolo iainana amin'ity baiko ity amin'ny yaml. Ary ao anatin'ny tontolon'ny ekipa dia ahafahantsika mamaritra fa manome loharano maro be isika.

Kely iray manamora izany dingana sarotra rehetra izany.

Ary ho fehin-kevitra. Inona no hatao amin'izany rehetra izany?
Voalohany. Pod Security Policy dia tsara. Ary na dia eo aza ny zava-misy fa tsy misy amin'ireo installer Kubernetes mampiasa azy ireo hatramin'izao, dia mbola mila mampiasa azy ireo ao amin'ny clusters ianao.

Ny politikan'ny tambajotra dia tsy endri-javatra hafa tsy ilaina fotsiny. Izany no tena ilaina amin'ny cluster.

LimitRange/ResourceQuota - tonga ny fotoana hampiasana azy. Efa ela no nanomboka nampiasa an'io izahay, ary efa ela no nahazoako antoka fa nampiasa azy io ny rehetra. Hita fa tsy fahita firy izany.

Ho fanampin'izay nolazaiko nandritra ny tatitra, dia misy endri-javatra tsy misy taratasy mamela anao hanafika ny cluster. Navoaka vao haingana famakafakana lalina momba ny vulnerability Kubernetes.

Mampalahelo sy maharary ny zavatra sasany. Ohatra, ao anatin'ny fepetra sasany, ny cubelets ao amin'ny cluster Kubernetes dia afaka manome ny votoatin'ny lahatahiry warlocks ho an'ny mpampiasa tsy nahazoana alalana.

eto Misy toromarika momba ny fomba hamerenana izay rehetra nolazaiko taminao. Misy rakitra misy ohatra momba ny famokarana momba ny ResourceQuota sy Pod Security Policy. Ary azonao atao ny mikasika izany rehetra izany.

Misaotra ny rehetra.

Source: www.habr.com

Add a comment