Gyara ramuka a cikin gungu na Kubernetes. Rahoton da kwafi daga DevOpsConf

Pavel Selivanov, Southbridge Solutions architect kuma malamin Slurm, ya ba da gabatarwa a DevOpsConf 2019. Wannan magana wani ɓangare ne na ɗayan batutuwa na zurfin zurfi akan Kubernetes "Slurm Mega".

Slurm Basic: Gabatarwa zuwa Kubernetes yana faruwa a Moscow a ranar Nuwamba 18-20.
Slurm Mega: kallon ƙarƙashin murfin Kubernetes - Moscow, Nuwamba 22-24.
Slurm Online: duka darussan Kubernetes ko da yaushe samuwa.

A ƙasa da yanke akwai kwafin rahoton.

Barka da rana, abokan aiki da masu tausaya musu. Yau zan yi magana game da aminci.

Ina ganin akwai jami’an tsaro da yawa a zauren a yau. Ina ba ku hakuri a gaba idan na yi amfani da sharuɗɗan daga duniyar tsaro ba kamar yadda aka saba muku ba.

Hakan ya faru ne kimanin watanni shida da suka gabata na ci karo da gungu na Kubernetes guda ɗaya na jama'a. Jama'a na nufin cewa akwai adadin nth na wuraren suna; a cikin waɗannan wuraren suna akwai masu amfani da ke ware a cikin sunan su. Duk waɗannan masu amfani suna cikin kamfanoni daban-daban. To, an ɗauka cewa ya kamata a yi amfani da wannan tari azaman CDN. Wato suna ba ku cluster, suna ba ku mai amfani a wurin, ku je wurin sunan ku, ku tura gabanku.

Kamfanina na baya yayi ƙoƙarin siyar da irin wannan sabis ɗin. Kuma an umarce ni da in buga gungu don ganin ko wannan maganin ya dace ko a'a.

Na zo wannan gungu. An ba ni haƙƙoƙi masu iyaka, iyakacin sunan suna. Mutanen da ke wurin sun fahimci mene ne aminci. Sun karanta game da sarrafa tushen hanyar shiga (RBAC) a cikin Kubernetes - kuma sun karkatar da shi ta yadda ba zan iya ƙaddamar da kwasfa daban da turawa ba. Ban tuna matsalar da nake ƙoƙarin warwarewa ta hanyar ƙaddamar da kwasfa ba tare da turawa ba, amma ina so in ƙaddamar da kwasfa kawai. Don sa'a, na yanke shawarar ganin menene haƙƙoƙin da nake da shi a cikin gungu, abin da zan iya yi, abin da ba zan iya yi ba, da abin da suka ɓata a can. A lokaci guda, zan gaya muku abin da suka tsara ba daidai ba a cikin RBAC.

Hakan ya faru da cewa a cikin mintuna biyu na karɓi admin zuwa gungu nasu, na kalli duk wuraren da ke makwabtaka da su, na ga a can ana gudanar da ayyukan samar da kamfanonin da suka riga sun sayi sabis ɗin kuma aka tura su. Da kyar na hana kaina zuwa gaban wani da sanya wasu zagi a babban shafin.

Zan gaya muku da misalai yadda na yi haka da kuma yadda za ku kare kanku daga wannan.

Amma da farko, bari in gabatar da kaina. Sunana Pavel Selivanov. Ni masanin gine-gine ne a Southbridge. Na fahimci Kubernetes, DevOps da kowane irin kyawawan abubuwa. Ni da injiniyoyin Southbridge muna gina wannan duka, kuma ina ba da shawara.

Baya ga manyan ayyukanmu, kwanan nan mun ƙaddamar da ayyukan da ake kira Slurms. Muna ƙoƙarin kawo ikonmu don yin aiki tare da Kubernetes kaɗan ga talakawa, don koya wa sauran mutane suma suyi aiki tare da K8s.

Me zan yi magana a kai a yau? Batun rahoton a bayyane yake - game da tsaro na rukunin Kubernetes. Amma ina so in ce nan da nan cewa wannan batu yana da girma sosai - don haka ina so in bayyana nan da nan abin da ba zan yi magana akai ba. Ba zan yi magana game da sharuddan hackneyed waɗanda aka riga aka yi amfani da su sau ɗari akan Intanet ba. Duk nau'ikan RBAC da takaddun shaida.

Zan yi magana game da abin da ke damun ni da abokan aikina game da tsaro a cikin gungu na Kubernetes. Muna ganin waɗannan matsalolin duka a tsakanin masu samarwa da ke ba da gungu na Kubernetes da kuma tsakanin abokan ciniki da suka zo wurinmu. Kuma har ma daga abokan cinikin da suka zo mana daga sauran kamfanonin gudanarwa na shawarwari. Wato ma'aunin abin da ya faru a zahiri yana da girma sosai.

A zahiri akwai abubuwa uku da zan yi magana a kansu a yau:

  1. Hakkokin mai amfani vs haƙƙoƙin kwafsa. Haƙƙin mai amfani da haƙƙin kwaf ba abu ɗaya bane.
  2. Tattara bayanai game da tari. Zan nuna cewa zaku iya tattara duk bayanan da kuke buƙata daga gungu ba tare da samun haƙƙi na musamman a cikin wannan gungu ba.
  3. DoS ya kai hari kan gungu. Idan ba za mu iya tattara bayanai ba, za mu iya sanya gungu a kowane hali. Zan yi magana game da hare-haren DoS akan abubuwan sarrafa tari.

Wani babban abin da zan ambata shi ne abin da na gwada duk wannan a kansa, wanda a kansa zan iya cewa duk yana aiki.

Muna ɗaukar a matsayin tushen shigarwar tarin Kubernetes ta amfani da Kubespray. Idan wani bai sani ba, wannan haƙiƙa jerin ayyuka ne na Mai yiwuwa. Muna amfani da shi kullum a cikin aikinmu. Abu mai kyau shi ne za ku iya mirgine shi a ko'ina - kuna iya mirgine shi a kan guntuwar ƙarfe ko cikin gajimare a wani wuri. Ɗaya hanyar shigarwa yana aiki bisa manufa don komai.

A cikin wannan gungu zan sami Kubernetes v1.14.5. Dukkanin gungu na Cube, wanda za mu yi la'akari, an raba shi zuwa wuraren suna, kowane filin suna yana cikin wata ƙungiya daban, kuma membobin wannan ƙungiyar suna da damar yin amfani da kowane yanki na suna. Ba za su iya zuwa wuraren sunaye daban-daban ba, kawai ga nasu. Amma akwai wani asusun admin wanda ke da haƙƙin ga dukan gungun.

Gyara ramuka a cikin gungu na Kubernetes. Rahoton da kwafi daga DevOpsConf

Na yi alkawari cewa abu na farko da za mu yi shi ne samun haƙƙin admin na ƙungiyar. Muna buƙatar wani shiri na musamman wanda zai karya gungun Kubernetes. Duk abin da muke buƙatar yi shine amfani da shi zuwa gungu na Kubernetes.

kubectl apply -f pod.yaml

Wannan kwafsa zai isa ga ɗaya daga cikin mashahuran gungun Kubernetes. Kuma bayan wannan gungu zai dawo mana da wani fayil mai suna admin.conf. A cikin Cube, wannan fayil yana adana duk takaddun shaida na mai gudanarwa, kuma a lokaci guda yana daidaita API tari. Wannan shine sauƙin samun damar shiga admin, ina tsammanin, 98% na gungu na Kubernetes.

Na sake maimaitawa, wannan faifan an yi shi ne daga wani mai haɓakawa a cikin gungun ku wanda ke da damar ƙaddamar da shawarwarinsa zuwa cikin ƙaramin sarari guda ɗaya, duk RBAC ne ya matse shi. Ba shi da hakki. Amma duk da haka an mayar da takardar shaidar.

Kuma yanzu game da kwasfa na musamman da aka shirya. Muna gudanar da shi akan kowane hoto. Mu dauki debian:jessie a matsayin misali.

Muna da wannan abu:

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

Menene haƙuri? Masters a cikin Kubernetes cluster yawanci ana yiwa alama da wani abu da ake kira taint. Kuma jigon wannan "kamuwa da cuta" shi ne cewa ya ce ba za a iya sanya kwasfa ba don sarrafa nodes. Amma babu wanda ya damu ya nuna a cikin kowane kwasfa cewa yana da haƙuri ga "kamuwa da cuta". Sashen Haƙuri kawai ya ce idan wasu kumburi suna da NoSchedule, to kullin mu yana jure wa irin wannan kamuwa da cuta - kuma babu matsaloli.

Bugu da ari, mu ce cewa mu karkashin ba kawai m, amma kuma yana so ya yi niyya musamman master. Domin masters suna da mafi kyawun abin da muke buƙata - duk takaddun shaida. Saboda haka, mu ce nodeSelector - kuma muna da daidaitattun lakabi a kan masters, wanda ke ba ka damar zaɓar daga duk nodes a cikin gungu daidai waɗancan nodes waɗanda suke masters.

Da wadannan sassan biyu tabbas zai zo wurin maigidan. Kuma za a bar shi ya zauna a can.

Amma zuwan maigida kawai bai ishe mu ba. Wannan ba zai bamu komai ba. To a gaba muna da wadannan abubuwa guda biyu:

hostNetwork: true 
hostPID: true 

Mun ƙididdige cewa kwaf ɗin mu, wanda muka ƙaddamar, zai rayu a cikin kernel namespace, a cikin sunan cibiyar sadarwa, da kuma cikin sunan PID. Da zarar an ƙaddamar da kwas ɗin a kan maigidan, zai iya ganin duk ainihin abubuwan musaya na wannan kumburin, sauraron duk zirga-zirga kuma ganin PID na duk matakai.

Sannan lamarin kanana ne. Dauki etcd kuma karanta abin da kuke so.

Abu mafi ban sha'awa shine wannan fasalin Kubernetes, wanda ke nan ta tsohuwa.

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

Kuma jigon sa shine zamu iya cewa a cikin kwas ɗin da muka ƙaddamar, ko da ba tare da haƙƙin wannan gungu ba, muna son ƙirƙirar ƙarar nau'in hostPath. Wannan yana nufin ɗaukar hanya daga mai watsa shiri wanda za mu ƙaddamar da shi - da ɗaukar shi azaman ƙara. Kuma sai mu kira shi suna: host. Muna hawan wannan hanyar mai masaukin baki a cikin kwafsa. A cikin wannan misali, zuwa ga / host directory.

Zan sake maimaitawa. Mun gaya wa kwaf ɗin ya zo wurin maigidan, ya sami hostNetwork da hostPID a wurin - kuma a haƙa tushen tushen duka a cikin wannan kwas ɗin.

Kun fahimci cewa a cikin Debian muna da bash mai gudana, kuma wannan bash yana gudana ƙarƙashin tushe. Wato, mun sami tushe a kan maigidan, ba tare da samun haƙƙi a cikin gungu na Kubernetes ba.

Sa'an nan dukan aikin shi ne zuwa sub directory / host /etc/kubernetes/pki, idan ban yi kuskure ba, karbi duk takardun shaida na cluster a can kuma, saboda haka, zama mai kula da gungu.

Idan ka duba ta wannan hanya, waɗannan su ne wasu haƙƙoƙin da suka fi haɗari a cikin kwasfa - ba tare da la'akari da haƙƙin mai amfani ba:
Gyara ramuka a cikin gungu na Kubernetes. Rahoton da kwafi daga DevOpsConf

Idan ina da haƙƙin gudanar da kwafsa a cikin wani yanki na sunan gungu, to wannan faifan yana da waɗannan haƙƙoƙin ta tsohuwa. Zan iya gudanar da kwas ɗin gata, kuma waɗannan gabaɗaya duk haƙƙoƙi ne, a zahiri tushen tushe.

Abin da na fi so shine mai amfani da Tushen. Kuma Kubernetes yana da wannan zaɓin Gudun As Non-Root. Wannan nau'i ne na kariya daga dan gwanin kwamfuta. Shin kun san menene "Cutar Moldova"? Idan ba zato ba tsammani kai dan gwanin kwamfuta ne kuma ka zo gungu na Kubernetes, to mu, talakawa masu gudanarwa, mu tambayi: “Da fatan za a nuna a cikin kwas ɗin ku waɗanda za ku yi hacking ɗin gungu na, gudu kamar ba tushen tushe ba. In ba haka ba, zai faru cewa kun gudanar da tsari a cikin kwas ɗin ku a ƙarƙashin tushen, kuma zai kasance da sauƙi a gare ku ku hack ni. Don Allah ka kare kanka daga kan ka."

Ƙarar hanyar mai watsa shiri ita ce, a ganina, hanya mafi sauri don samun sakamakon da ake so daga gungu na Kubernetes.

Amma me za a yi da wannan duka?

Tunanin da ya kamata ya zo ga kowane mai gudanarwa na yau da kullun wanda ya ci karo da Kubernetes shine: "Ee, na gaya muku, Kubernetes baya aiki. Akwai ramuka a ciki. Kuma duk Cube ba shi da kyau. " A gaskiya ma, akwai irin wannan abu kamar takardun, kuma idan ka duba a can, akwai sashe Manufar Tsaro ta Pod.

Wannan abu ne na yaml - za mu iya ƙirƙira shi a cikin gungu na Kubernetes - wanda ke sarrafa abubuwan tsaro musamman a cikin bayanin kwas ɗin. Wato, a zahiri, tana sarrafa haƙƙoƙin amfani da kowane gidan yanar gizo, hostPID, wasu nau'ikan ƙararrawa waɗanda ke cikin kwas ɗin lokacin farawa. Tare da taimakon Pod Security Policy, duk wannan za a iya bayyana.

Abu mafi ban sha'awa game da Manufofin Tsaro na Pod shine cewa a cikin gungu na Kubernetes, duk masu shigar da PSP ba a bayyana su ta kowace hanya ba, kawai an kashe su ta tsohuwa. An kunna Dokar Tsaro ta Pod ta amfani da plugin ɗin shigarwa.

Da kyau, bari mu tura Dokar Tsaro ta Pod a cikin gungu, bari mu ce muna da wasu fastoci na sabis a cikin sunan, wanda masu gudanarwa kawai ke da damar shiga. Bari mu ce, a duk sauran lokuta, kwasfa suna da iyakacin hakki. Domin da alama masu haɓakawa ba sa buƙatar gudanar da fastoci masu gata a cikin tarin ku.

Kuma duk abin yana da kyau tare da mu. Kuma gungu na Kubernetes ba za a iya kutse cikin mintuna biyu ba.

Akwai matsala. Mafi mahimmanci, idan kuna da gungu na Kubernetes, to an shigar da saka idanu akan gungun ku. Zan ko da nisa har in faɗi cewa idan gungun ku yana da sa ido, za a kira shi Prometheus.

Abin da zan gaya muku zai yi aiki ga ma'aikacin Prometheus da Prometheus da aka kawo a cikin tsantsar sigar sa. Tambayar ita ce idan ba zan iya samun admin a cikin gungu da sauri ba, to wannan yana nufin cewa ina buƙatar ƙarin duba. Kuma zan iya bincika tare da taimakon sa ido.

Wataƙila kowa ya karanta labarai iri ɗaya akan Habré, kuma ana sa ido a cikin sunan sa ido. Ana kiran jadawalin Helm kusan iri ɗaya ga kowa. Ina tsammanin idan kun yi helm shigar da barga/prometheus, zaku ƙare da sunaye iri ɗaya. Kuma mai yuwuwa ba zan ma iya tantance sunan DNS a cikin tarin ku ba. Domin yana da ma'auni.

Gyara ramuka a cikin gungu na Kubernetes. Rahoton da kwafi daga DevOpsConf

Na gaba muna da wani dev ns, wanda zaku iya gudanar da wani kwafsa. Sannan daga wannan kwas ɗin yana da sauƙin yin wani abu kamar haka:

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

prometheus-kube-state-metrics yana ɗaya daga cikin masu fitar da Prometheus waɗanda ke tattara ma'auni daga Kubernetes API kanta. Akwai bayanai da yawa a wurin, abin da ke gudana a cikin gungun ku, menene, menene matsalolin ku da shi.

A matsayin misali mai sauƙi:

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

Ta hanyar yin buƙatun curl mai sauƙi daga kwas ɗin mara gata, zaku iya samun bayanan masu zuwa. Idan baku san wane nau'in Kubernetes kuke gudanarwa ba, zai gaya muku cikin sauƙi.

Kuma mafi ban sha'awa shi ne cewa ban da samun damar kube-state-metrics, za ku iya samun dama ga Prometheus kanta kai tsaye. Kuna iya tattara ma'auni daga can. Kuna iya gina ma'auni daga can. Ko da bisa ka'ida, zaku iya gina irin wannan tambayar daga gungu a cikin Prometheus, wanda kawai zai kashe shi. Kuma saka idanu naka zai daina aiki daga gungu gaba ɗaya.

Kuma a nan tambaya ta taso ko duk wani sa ido na waje yana sa ido kan sa ido. Na sami damar yin aiki a cikin gungun Kubernetes ba tare da wani sakamako ga kaina ba. Ba za ku ma san cewa ina aiki a can ba, tunda babu sauran sa ido.

Kamar dai tare da PSP, yana jin kamar matsalar ita ce duk waɗannan fasahohin fasaha - Kubernetes, Prometheus - kawai ba sa aiki kuma suna cike da ramuka. Ba da gaske ba.

Akwai irin wannan - Manufar hanyar sadarwa.

Idan kai admin ne na yau da kullun, to tabbas ka san tsarin Network Policy cewa wannan wani yaml ne, wanda tuni akwai su da yawa a cikin cluster. Kuma tabbas ba a buƙatar wasu Manufofin Sadarwa. Kuma ko da kun karanta abin da tsarin hanyar sadarwa yake, cewa yaml Tacewar zaɓi na Kubernetes, yana ba ku damar iyakance haƙƙin shiga tsakanin wuraren suna, tsakanin kwasfa, to lallai kun yanke shawarar cewa Tacewar zaɓi a tsarin yaml a cikin Kubernetes ya dogara ne akan abstractions na gaba. ... A'a, ba . Tabbas wannan bai zama dole ba.

Ko da ba ku gaya wa ƙwararrun tsaron ku cewa yin amfani da Kubernetes ɗinku ba za ku iya gina bangon bango mai sauƙi kuma mai sauƙi, kuma mai girman gaske a wancan. Idan ba su san wannan ba tukuna kuma ba su dame ku ba: “To, ba ni, ba ni...” Sa'an nan kuma a kowane hali, kuna buƙatar Hanyar Sadarwar Sadarwa don toshe damar zuwa wasu wuraren sabis waɗanda za a iya cire su daga tarin ku. ba tare da wani izini ba.

Kamar yadda a cikin misalin da na bayar, zaku iya cire ma'aunin jihar kube daga kowane sarari suna a cikin gungu na Kubernetes ba tare da samun haƙƙin yin hakan ba. Manufofin hanyar sadarwa suna da rufaffiyar dama daga duk sauran wuraren suna zuwa wurin sanya ido kuma shi ke nan: babu dama, babu matsala. A cikin duk sigogin da suka wanzu, duka daidaitattun Prometheus da Prometheus waɗanda ke cikin ma'aikacin, akwai kawai zaɓi a cikin ƙimar kwalkwali don ba da damar manufofin cibiyar sadarwa kawai a gare su. Kuna buƙatar kunna shi kawai kuma za su yi aiki.

Akwai matsala guda daya a nan. Kasancewa mai kula da gemu na yau da kullun, da alama kun yanke shawarar cewa ba a buƙatar manufofin hanyar sadarwa. Kuma bayan karanta kowane irin labarai kan albarkatun kamar Habr, kun yanke shawarar cewa flannel, musamman tare da yanayin ƙofa mai masaukin baki, shine mafi kyawun abin da zaku iya zaɓa.

Abin da ya yi?

Kuna iya ƙoƙarin sake fasalin tsarin hanyar sadarwar da kuke da shi a cikin gungu na Kubernetes, gwada maye gurbinsa da wani abu mai aiki. Ga Calico iri ɗaya, alal misali. Amma ina so in faɗi nan da nan cewa aikin canza hanyar sadarwar hanyar sadarwa a cikin gungu mai aiki na Kubernetes ba ƙaramin abu bane. Na warware shi sau biyu (a lokuta biyu, duk da haka, a ka'idar), amma mun ma nuna yadda ake yin shi a Slurms. Ga ɗalibanmu, mun nuna yadda ake canza hanyar sadarwa a cikin gungu na Kubernetes. A ka'ida, zaku iya ƙoƙarin tabbatar da cewa babu raguwa a kan gungu na samarwa. Amma mai yiwuwa ba za ku yi nasara ba.

Kuma a zahiri ana magance matsalar cikin sauƙi. Akwai takaddun shaida a cikin gungun, kuma kun san cewa takaddun shaida za su ƙare a cikin shekara guda. Da kyau, kuma yawanci mafita ta al'ada tare da takaddun shaida a cikin gungu - me yasa muke damuwa, za mu ɗaga sabon gungu a kusa, bari tsohon ya ruɓe, kuma mu sake tsara komai. Gaskiya, idan ya lalace, za mu zauna na kwana ɗaya, amma ga sabon tari.

Lokacin da kuka ɗaga sabon gungu, a lokaci guda saka Calico maimakon flannel.

Me za ku yi idan an bayar da takaddun shaida na tsawon shekaru ɗari kuma ba za ku sake tura gungu ba? Akwai irin wannan abu kamar Kube-RBAC-Proxy. Wannan babban ci gaba ne mai kyau, yana ba ku damar shigar da kanta azaman akwati na gefe zuwa kowane kwafsa a cikin gungu na Kubernetes. Kuma a zahiri yana ƙara izini ga wannan kwas ɗin ta RBAC na Kubernetes kanta.

Akwai matsala daya. A baya can, an gina wannan maganin Kube-RBAC-Proxy a cikin Prometheus na mai aiki. Amma sai ya tafi. Yanzu sigogin zamani sun dogara da gaskiyar cewa kuna da manufofin hanyar sadarwa kuma ku rufe ta ta amfani da su. Don haka dole ne mu sake rubuta ginshiƙi kaɗan. A gaskiya, idan kun je wannan ma'ajiyar, akwai misalan yadda ake amfani da wannan a matsayin motocin gefe, kuma za a sake rubuta ginshiƙi kaɗan.

Akwai kuma wata ƙaramar matsala. Prometheus ba shine kaɗai ke ba da awonsa ga kowa ba. Duk abubuwan haɗin gungu na Kubernetes kuma suna iya dawo da nasu awo.

Amma kamar yadda na riga na fada, idan ba za ku iya samun damar gungu ba kuma ku tattara bayanai, to kuna iya cutar da aƙalla.

Don haka da sauri zan nuna hanyoyi guda biyu yadda za a iya lalata gungun Kubernetes.

Za ku yi dariya idan na gaya muku wannan, waɗannan shari'o'in rayuwa biyu ne na gaske.

Hanya ta daya. Rage albarkatu.

Bari mu ƙaddamar da wani kwafsa na musamman. Zai sami sashe kamar wannan.

resources: 
    requests: 
        cpu: 4 
        memory: 4Gi 

Kamar yadda kuka sani, buƙatun shine adadin CPU da ƙwaƙwalwar ajiyar da aka tanada akan mai masaukin don takamaiman kwasfan fayiloli tare da buƙatun. Idan muna da mai masaukin baki hudu a cikin gungu na Kubernetes, kuma kwasfan CPU guda huɗu sun isa wurin tare da buƙatun, yana nufin cewa babu sauran kwas ɗin da buƙatun da za su iya zuwa wurin wannan rundunar.

Idan na gudanar da irin wannan kwas ɗin, to zan gudanar da umarni:

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

Sa'an nan kuma babu wanda zai iya tura zuwa gunkin Kubernetes. Domin duk nodes zai ƙare buƙatun. Kuma ta haka zan dakatar da gungun Kubernetes ku. Idan na yi haka da yamma, zan iya dakatar da aikin na dogon lokaci.

Idan muka sake duba takardun Kubernetes, za mu ga wannan abu mai suna Limit Range. Yana saita albarkatu don abubuwan tari. Kuna iya rubuta abu mai iyaka a cikin yaml, yi amfani da shi zuwa wasu wuraren suna - sannan a cikin wannan sunan za ku iya cewa kuna da tsoho, mafi girma da mafi ƙarancin albarkatun ga kwas ɗin.

Tare da taimakon irin wannan abu, za mu iya iyakance masu amfani a cikin takamaiman samfurin sunaye na ƙungiyoyi cikin ikon nuna kowane nau'in abubuwa masu banƙyama akan kwas ɗin su. Amma abin takaici, ko da kun gaya wa mai amfani cewa ba za su iya ƙaddamar da kwasfan fayiloli tare da buƙatun CPU sama da ɗaya ba, akwai irin wannan umarni na sikeli mai ban mamaki, ko kuma suna iya yin sikeli ta hanyar dashboard.

Kuma wannan shine inda hanya ta biyu ta fito. Mun ƙaddamar da 11 pods. biliyan goma sha daya kenan. Wannan ba don na zo da irin wannan lambar ba, amma don na ga ita da kaina.

Gaskiyar labari. Da yamma na shirin fita ofis. Na ga ƙungiyar masu haɓakawa suna zaune a kusurwar, suna yin wani abu tare da kwamfyutocin su. Na je wurin mutanen na tambaye su: "Me ya same ku?"

A baya kadan, wajen tara na yamma, ɗaya daga cikin masu haɓakawa yana shirin komawa gida. Kuma na yanke shawarar: "Yanzu zan daidaita aikace-aikacena zuwa ɗaya." Na danna daya, amma Intanet ta dan rage kadan. Ya sake danna daya, ya danna daya, sannan ya danna Shigar. Na yi duk abin da zan iya. Sa'an nan kuma Intanet ya zo rayuwa - kuma komai ya fara raguwa zuwa wannan lambar.

Gaskiya ne, wannan labarin bai faru akan Kubernetes ba; a lokacin Nomad ne. Ya ƙare da cewa bayan sa'a guda da ƙoƙarin da muka yi na hana Makiyaya daga yunƙurin ƙima, Nomad ya amsa cewa ba zai daina yin sikeli ba kuma ba zai yi wani abu ba. "Na gaji zan tafi." Kuma ya dunkule.

A zahiri, na yi ƙoƙarin yin haka akan Kubernetes. Kubernetes bai yi farin ciki da kwasfa biliyan goma sha ɗaya ba, ya ce: “Ba zan iya ba. Ya wuce masu tsaron baki na ciki." Amma 1 kwasfa zai iya.

Dangane da biliyan daya, Cube bai janye cikin kansa ba. Da gaske ya fara zage-zage. Yayin da tsarin ya ci gaba, yawancin lokaci ya ɗauki shi don ƙirƙirar sababbin kwasfa. Amma duk da haka tsarin ya ci gaba. Matsalar kawai ita ce idan na iya ƙaddamar da pods ba tare da iyaka ba a cikin sunana, to ko da ba tare da buƙatun da iyaka ba zan iya ƙaddamar da pods da yawa tare da wasu ayyuka waɗanda tare da taimakon waɗannan ayyukan nodes zasu fara ƙarawa a cikin ƙwaƙwalwar ajiya, a cikin CPU. Lokacin da na kaddamar da kwasfa masu yawa, bayanan daga gare su ya kamata su shiga cikin ajiya, wato, da dai sauransu. Kuma lokacin da bayanai da yawa suka isa wurin, ma'ajiyar ta fara dawowa sannu a hankali - kuma Kubernetes ya fara zama mara nauyi.

Kuma wata matsala ... Kamar yadda kuka sani, abubuwan kula da Kubernetes ba abu ɗaya bane na tsakiya, amma abubuwa da yawa. Musamman, akwai manajan sarrafawa, mai tsarawa, da sauransu. Duk waɗannan mutane za su fara yin aikin da ba dole ba, wauta a lokaci guda, wanda a kan lokaci zai fara ɗaukar lokaci mai yawa. Manajan mai sarrafawa zai ƙirƙiri sababbin kwasfa. Mai tsara jadawalin zai yi ƙoƙarin nemo musu sabon kumburi. Wataƙila za ku ƙare da sababbin nodes a cikin tarin ku nan ba da jimawa ba. Tarin Kubernetes zai fara aiki a hankali da hankali.

Amma na yanke shawarar ci gaba. Kamar yadda ka sani, a Kubernetes akwai irin wannan abu da ake kira sabis. Da kyau, ta hanyar tsoho a cikin gungu na ku, mai yiwuwa, sabis ɗin yana aiki ta amfani da tebur na IP.

Idan kuna gudanar da kwasfa na biliyan ɗaya, misali, sannan ku yi amfani da rubutun don tilasta Kubernetis don ƙirƙirar sabbin ayyuka:

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

A kan duk nodes na gungu, ƙarin sabbin ƙa'idodin iptables za a ƙirƙira kusan lokaci guda. Haka kuma, za a samar da dokokin iptables biliyan ɗaya ga kowane sabis.

Na duba wannan duka a kan dubu da yawa, har zuwa goma. Kuma matsalar ita ce tuni a wannan bakin kofa yana da matsala sosai don yin ssh zuwa kumburi. Saboda fakiti, ta hanyar sarƙoƙi da yawa, sun fara jin daɗi sosai.

Kuma wannan ma, duk an warware shi tare da taimakon Kubernetes. Akwai irin wannan abin keɓancewar albarkatu. Yana saita adadin samammun albarkatu da abubuwa don sarari suna a cikin gungu. Za mu iya ƙirƙirar abu yaml a kowane sarari suna na gungu Kubernetes. Yin amfani da wannan abu, muna iya cewa muna da takamaiman adadin buƙatu da iyakokin da aka ware don wannan sunan, sa'an nan kuma za mu iya cewa a cikin wannan sunan yana yiwuwa a ƙirƙiri ayyuka 10 da 10 pods. Kuma mai haɓakawa ɗaya na iya aƙalla shake kansa da maraice. Kubernetes zai gaya masa: "Ba za ku iya auna gwangwadon ku zuwa wannan adadin ba, saboda albarkatun sun zarce adadin." Shi ke nan, an warware matsalar. Takardu a nan.

Wani batu mai matsala ya taso game da wannan. Kuna jin wahalar ƙirƙirar sararin suna a Kubernetes. Don ƙirƙirar shi, muna buƙatar yin la'akari da abubuwa da yawa.

Ƙimar albarkatu + Iyakance Range + RBAC
• Ƙirƙiri filin suna
Ƙirƙirar iyaka a ciki
• Ƙirƙiri ƙididdiga na kayan aiki
• Ƙirƙiri asusun sabis don CI
• Ƙirƙiri aikin dauri ga CI da masu amfani
• Zaɓin ƙaddamar da kwas ɗin sabis ɗin da ake buƙata

Don haka, zan so in yi amfani da wannan damar don bayyana abubuwan da na ke faruwa. Akwai irin wannan abin da ake kira mai aiki da SDK. Wannan wata hanya ce ta gungun Kubernetes don rubuta mata masu aiki. Kuna iya rubuta bayanai ta amfani da Mai yiwuwa.

Da farko an rubuta shi a cikin Mai yiwuwa, sannan na ga cewa akwai ma'aikacin SDK kuma na sake rubuta rawar da zai iya zama mai aiki. Wannan bayanin yana ba ku damar ƙirƙirar wani abu a cikin gungun Kubernetes da ake kira umarni. A cikin umarni, yana ba ku damar bayyana yanayin wannan umarni a cikin yaml. Kuma a cikin yanayin ƙungiyar, yana ba mu damar bayyana cewa muna rarraba albarkatu masu yawa.

Ƙananan yin wannan tsari mai rikitarwa duka cikin sauƙi.

Kuma a ƙarshe. Me za a yi da wannan duka?
Na farko. Manufofin Tsaro na Pod yana da kyau. Kuma duk da cewa babu ɗaya daga cikin masu saka Kubernetes da ke amfani da su har yau, har yanzu kuna buƙatar amfani da su a cikin gungu na ku.

Manufar hanyar sadarwa ba kawai wani fasalin da ba dole ba ne. Wannan shine ainihin abin da ake buƙata a cikin tari.

LimitRange/ResourceQuota - lokaci yayi da za a yi amfani da shi. Mun fara amfani da wannan tuntuni, kuma na daɗe na tabbata cewa kowa yana amfani da shi. Ya juya cewa wannan ba kasafai ba ne.

Baya ga abin da na ambata a lokacin rahoton, akwai wasu abubuwan da ba su da takaddun shaida waɗanda ke ba ku damar kai hari kan gungu. An sake shi kwanan nan bincike mai zurfi game da raunin Kubernetes.

Wasu abubuwa suna da ban tausayi da cutarwa. Misali, a ƙarƙashin wasu sharuɗɗa, cubelets a cikin gungu na Kubernetes na iya ba da abinda ke cikin littafin jagorar warlocks ga mai amfani mara izini.

Haka Akwai umarnin yadda za a sake haifar da duk abin da na gaya muku. Akwai fayiloli tare da misalan samarwa na abin da ResourceQuota da Manufofin Tsaro na Pod suka yi kama. Kuma za ku iya taba duk wannan.

Godiya ga kowa.

source: www.habr.com

Add a comment