Othandizira a Kubernetes: momwe mungayendetsere mapulogalamu apamwamba
Vuto logwiritsa ntchito bwino ku Kubernetes
Kukonzekera, kukhazikitsa ndi kukulitsanso ntchito ndi mautumiki ndikosavuta zikafika pamilandu yomwe ili ngati yopanda malire, i.e. popanda kusunga deta. Ndikosavuta kuyendetsa ntchito zotere ku Kubernetes, pogwiritsa ntchito ma API ake, chifukwa chilichonse chimachitika "kunja kwa bokosi": molingana ndi masinthidwe anthawi zonse, osaphatikizanso zenizeni kapena matsenga.
Mwachidule, kukhazikitsa makope ena asanu a backend mu PHP/Ruby/Python mugulu la zotengera, mumangofunika kukhazikitsa seva yatsopano nthawi 5 ndikukopera magwero. Popeza ma code source ndi init script ali pachithunzichi, kukweza pulogalamu yopanda malire kumakhala kofunikira. Monga mafani a zotengera ndi kamangidwe ka microservice amadziwa bwino, zovuta zimayamba mapulogalamu apamwamba,ndi. ndi kulimbikira kwa data monga nkhokwe ndi ma cache (MySQL, PostgreSQL, Redis, ElasticSearch, Cassandra ...). Izi zimagwiranso ntchito pamapulogalamu onse omwe amadzipangira okha gulu la quorum (mwachitsanzo, Percona XtraDB ndi Cassandra), ndi mapulogalamu omwe amafunikira zida zowongolera (monga Redis, MySQL, PostgreSQL...).
Kuti "programu" chidziwitso cha ntchito, kumapeto kwa chaka chatha polojekiti ya CoreOS anayambitsa "gulu latsopano la mapulogalamu" a nsanja ya Kubernetes - Ogwira ntchito (kuchokera ku Chingerezi "operation", mwachitsanzo, "operation").
Ogwiritsa ntchito ndi kukulitsa luso la Kubernetes (incl. StatefulSets, onani kusiyana komwe kuli pansipa) lolani akatswiri a DevOps kuti awonjezere chidziwitso cha ntchito ku code yogwiritsira ntchito.
Cholinga cha Operekera - perekani wogwiritsa ntchito API yomwe imakulolani kuti muzitha kuyang'anira mabungwe ambiri ogwiritsira ntchito gulu la Kubernetes, osaganizira zomwe zili pansi pa hood (zo data ndi zomwe angachite nazo, ndi malamulo ati omwe akuyenera kuchitidwa kuti asunge gululo ). M'malo mwake, Operator adapangidwa kuti azichepetsa ntchitoyo ndikugwiritsa ntchito mkati mwa tsango momwe angathere, ndikudzipangira okha ntchito zomwe zidayenera kuthetsedwa pamanja.
Momwe Operekera Amagwirira Ntchito
ReplicaSets Kubernetes amakulolani kuti mutchule nambala yomwe mukufuna ya ma pods, ndipo olamulira amaonetsetsa kuti chiwerengero chawo chikusungidwa (popanga ndi kuchotsa ma pod). Opaleshoni imagwira ntchito mofananamo, ndikuwonjezera chidziwitso cha magwiridwe antchito ku chipangizo chokhazikika cha Kubernetes ndi chowongolera chomwe chimakupatsani mwayi wochita zina zowonjezera kuti muthandizire kuchuluka kofunikira kwa mabungwe ofunsira.
M'malo mwake, monga tikuwonera pachithunzichi, pulogalamu ina imangowonjezeredwa ku Kubernetes (yokhazikika Kutumizidwa Ρ ReplicaSet), yemwe amatchedwa Woyendetsa. Imakhala mu pod wamba (nthawi zambiri imodzi) ndipo, monga lamulo, imakhala ndi udindo wake Malo a Maina. Pulogalamuyi imagwiritsa ntchito API yake - ngakhale osati mwachindunji, koma kudzera Zida Zachitatu ku Kubernetes.
Chifukwa chake, titatha kupanga mu Malo a Maina Othandizira, tikhoza kuwonjezera kwa izo Zida Zachitatu.
Chitsanzo cha etcd (onani pansipa kuti mumve zambiri):
Ogwiritsa ntchito akuyenera kuyesedwa ndi chida ngati Chaos Monkey, chomwe chimazindikiritsa zolephera zomwe zingatheke mu ma pod, masanjidwe, ndi maukonde.
etcd Operesi
Chitsanzo cha Operekera Opaleshoni - Wothandizira etcd, kukonzekera pa tsiku lolengezedwa la lingaliro ili. Kukonzekera kwamagulu a etcd kumatha kukhala kovuta chifukwa chakufunika kosunga quorum, kufunikira kokonzanso umembala wamagulu, kupanga zosunga zobwezeretsera, ndi zina. Mwachitsanzo, kukulitsa gulu la etcd pamanja kumatanthauza kuti muyenera kupanga dzina la DNS la membala watsopano wa gulu, kuyambitsa gulu latsopano la etcd, ndikuchenjeza gululo za membala watsopanoyo (etcdctl membala add). Pankhani ya Opaleshoni, wogwiritsa ntchitoyo angofunika kusintha kukula kwa masango - china chilichonse chizichitika zokha.
Ndipo popeza etcd idapangidwanso ku CoreOS, zinali zomveka kuwona Wothandizira wake akuwonekera poyamba. Kodi amagwira ntchito bwanji? Operator logic etcd zimatsimikiziridwa ndi zigawo zitatu:
Kodi kugwira ntchito ndi Operator kumawoneka bwanji?
$ kubectl create -f https://coreos.com/operators/etcd/latest/deployment.yaml
$ kubectl create -f https://coreos.com/operators/etcd/latest/example-etcd-cluster.yaml
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
etcd-cluster-0000 1/1 Running 0 23s
etcd-cluster-0001 1/1 Running 0 16s
etcd-cluster-0002 1/1 Running 0 8s
etcd-cluster-backup-tool-rhygq 1/1 Running 0 18s
Mkhalidwe wapano wa etcd Operator ndi mtundu wa beta, womwe umafunika Kubernetes 1.5.3+ ndi etcd 3.0+ kuti igwire ntchito. Nambala yochokera ndi zolemba (kuphatikiza malangizo ogwiritsira ntchito) zilipo GitHub.
Chitsanzo china chokhazikitsa kuchokera ku CoreOS chapangidwa - Wothandizira Prometheus, koma ikadali mu mtundu wa alpha (sizinthu zonse zomwe zakonzedwa zakhazikitsidwa).
Mkhalidwe ndi ziyembekezo
Miyezi 5 yadutsa kuchokera pomwe Kubernetes Operators adalengeza. Pali njira ziwiri zokha zomwe zikupezeka m'malo ovomerezeka a CoreOS (za etcd ndi Prometheus). Onsewa sanafikebe kumasulidwe awo okhazikika, koma zochita zimawonedwa tsiku ndi tsiku.
Madivelopa akuwona "tsogolo lomwe ogwiritsa ntchito amayika Postgres Operators, Cassandra Operators kapena Redis Operators m'magulu awo a Kubernetes ndikugwira ntchito ndi mabungwe omwe ali ndi mwayi wogwiritsa ntchito izi mosavuta monga momwe kulili masiku ano kutumiza zolemba zamawebusayiti osavomerezeka." Choyamba Othandizira kuchokera kwa omanga chipani chachitatu zinayamba kuwoneka:
Pamsonkhano waukulu kwambiri ku Europe waulere wa FOSDEM, womwe udachitika mu February 2017 ku Brussels, Josh Wood waku CoreOS adalengeza Operators mu lipoti (kanema ikupezeka pa ulalo!), Zomwe ziyenera kuthandizira kukulitsa kutchuka kwa lingaliro ili mgulu la Open Source.
PS Zikomo chifukwa cha chidwi chanu pankhaniyi! Lembani ku hubu yathu, kuti musaphonye zida zatsopano ndi maphikidwe pa DevOps ndi GNU/Linux system management - tizisindikiza pafupipafupi!