L-aħjar prattiki ta' Kubernetes. Mapping ta' servizzi esterni

L-aħjar prattiki ta' Kubernetes. Noħolqu kontenituri żgħar
L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace
L-aħjar prattiki ta' Kubernetes. Il-validazzjoni ta' Kubernetes Liveness b'Testijiet ta' Prontezza u Liveness
L-aħjar prattiki ta' Kubernetes. It-twaqqif ta' talbiet u limiti tar-riżorsi
L-aħjar prattiki ta' Kubernetes. Ittemm korrett

Jekk int bħal ħafna nies, probabilment qed tuża riżorsi li jaħdmu barra mill-cluster tiegħek. Forsi tuża l-API Taleo biex tibgħat messaġġi, jew tanalizza immaġini billi tuża l-API Google Cloud Vision.

Jekk tuża l-istess endpoint tat-talba min-naħa tas-server fl-ambjenti kollha tiegħek u ma tippjanax li temigra s-servers tiegħek għal Kubernetes, allura huwa perfettament tajjeb li jkollok endpoint tas-servizz dritt fil-kodiċi tiegħek. Madankollu, hemm ħafna xenarji oħra għall-iżvilupp ta 'avvenimenti. F'din is-serje tal-Aħjar Prattiki ta' Kubernetes, int ser titgħallem kif tuża l-mekkaniżmi integrati ta' Kubernetes biex tiskopri servizzi kemm ġewwa kif ukoll barra l-cluster.

Eżempju ta' servizz estern komuni huwa database li taħdem barra minn cluster Kubernetes. B'differenza mid-databases tas-sħab bħal Google Cloud Data Store jew Google Cloud Spanner, li jużaw endpoint wieħed għall-aċċess kollu, il-biċċa l-kbira tad-databases għandhom endpoints separati għal ċirkostanzi differenti.
L-aħjar prattiki għall-użu ta 'databases tradizzjonali bħal MySQL u MongoDB normalment ifissru li tikkonnettja ma' komponenti differenti għal ambjenti differenti. Jista 'jkollok magna kbira għad-dejta tal-produzzjoni u magna iżgħar għall-ambjent tat-test. Kull wieħed minnhom se jkollu l-indirizz IP jew l-isem tad-dominju tiegħu, imma probabilment ma tridx tibdel il-kodiċi tiegħek meta tiċċaqlaq minn ambjent għal ieħor. Allura minflok ma tikkodifika dawn l-indirizzi, tista' tuża l-iskoperta ta' servizzi esterni mibnija fuq id-DNS ta' Kubernetes bl-istess mod bħas-servizzi indiġeni ta' Kubernetes.

L-aħjar prattiki ta' Kubernetes. Mapping ta' servizzi esterni

Ejja ngħidu li qed tmexxi database MongoDB fuq Google Compute Engine. Int tkun mwaħħla f'din id-dinja ibrida sakemm jirnexxilek tittrasferiha lill-cluster.

Fortunatament, tista 'tuża s-servizzi statiċi ta' Kubernetes biex tagħmlek ħajtek ftit aktar faċli. F'dan l-eżempju, ħloqt server MongoDB bl-użu ta 'Google Cloud Launcher. Peress li hija maħluqa fuq l-istess netwerk (jew Kubernetes cluster VPC), huwa aċċessat permezz ta 'indirizz IP intern ta' prestazzjoni għolja.

L-aħjar prattiki ta' Kubernetes. Mapping ta' servizzi esterni

Dan huwa l-issettjar default fuq Google Cloud, sabiex ma jkollokx għalfejn tikkonfigura xejn. Issa li għandek indirizz IP, l-ewwel pass huwa li toħloq servizz. Tista' tinnota li m'hemmx seletturi tal-pods għal dan is-servizz. Jiġifieri ħloqna servizz li mhux se jkun jaf fejn jibgħat it-traffiku. Dan jippermettilek toħloq manwalment oġġett endpoint li se jirċievi traffiku minn dan is-servizz.

L-aħjar prattiki ta' Kubernetes. Mapping ta' servizzi esterni

L-eżempju tal-kodiċi li ġej juri li l-endpoints jiddeterminaw l-indirizz IP għad-database bl-użu tal-istess isem mongo bħas-servizz.

L-aħjar prattiki ta' Kubernetes. Mapping ta' servizzi esterni

Kubernetes se juża l-indirizzi IP kollha biex isib endpoints bħallikieku kienu Kubernetes Pods regolari, għalhekk issa tista’ taċċessa d-database b’sekwenza ta’ konnessjoni sempliċi mal-isem ta’ hawn fuq mongodb://mongo. M'hemm l-ebda ħtieġa li tuża l-indirizzi IP fil-kodiċi tiegħek.

Jekk l-indirizzi IP jinbidlu fil-futur, tista 'sempliċement taġġorna l-endpoints tiegħek bl-indirizz IP il-ġdid u l-applikazzjonijiet tiegħek ma jkollhomx għalfejn jiġu modifikati b'xi mod addizzjonali.

Jekk qed tuża database ospitata fuq host ta' parti terza, huwa probabbli li s-sidien tal-host ipprovdewlek URI ta' Identifikatur tar-Riżorsi Uniformi biex tikkonnettja miegħu. Mela jekk ingħatajt indirizz IP, tista 'sempliċement tuża l-metodu preċedenti. Dan l-eżempju juri li għandi żewġ databases MongoDB ospitati fuq host mLab.

L-aħjar prattiki ta' Kubernetes. Mapping ta' servizzi esterni

Wieħed huwa d-database tal-iżviluppatur u l-ieħor huwa d-database tal-produzzjoni. Il-kordi tal-konnessjoni għal dawn id-databases jidhru bħal dawn - mLab jipprovdilek URI dinamiku u port dinamiku. Kif tistgħu taraw, huma differenti.

L-aħjar prattiki ta' Kubernetes. Mapping ta' servizzi esterni

Biex tiġbed dan, ejja nużaw Kubernetes u qabbad mad-database tal-iżviluppatur. Tista 'toħloq isem estern tas-servizz Kubernetes, li jagħtik servizz statiku li jgħaddi t-traffiku lis-servizz estern.

L-aħjar prattiki ta' Kubernetes. Mapping ta' servizzi esterni

Dan is-servizz se jwettaq sempliċi CNAME forwarding fil-livell tal-kernel b'impatt minimu fuq il-prestazzjoni. Grazzi għal dan tista 'tuża string ta' konnessjoni aktar sempliċi.

L-aħjar prattiki ta' Kubernetes. Mapping ta' servizzi esterni

Iżda minħabba li l-isem estern juża t-trażmissjoni CNAME, ma jistax iwettaq port forwarding. Għalhekk, din is-soluzzjoni hija applikabbli biss għal portijiet statiċi u ma tistax tintuża ma 'portijiet dinamiċi. Iżda l-mLab Free Tier jagħti lill-utent numru tal-port dinamiku awtomatikament u ma tistax tbiddel. Dan ifisser li għandek bżonn linji ta 'kmand ta' konnessjoni differenti għal dev u prod. Il-ħaġa ħażina hija li dan jeħtieġ li inti hardcode n-numru tal-port. Allura kif tista 'tikseb port forwarding biex jaħdem?

L-ewwel pass huwa li tikseb l-indirizz IP mill-URI. Jekk tmexxi nslookup, hostname, jew ping l-URI, tista 'tikseb l-indirizz IP tad-database. Jekk is-servizz jirritornalek diversi indirizzi IP, allura dawn l-indirizzi kollha jistgħu jintużaw fl-endpoints tal-oġġett.

L-aħjar prattiki ta' Kubernetes. Mapping ta' servizzi esterni

Ħaġa waħda li wieħed iżomm f'moħħu hija li l-URI tal-IP jistgħu jinbidlu mingħajr avviż, u jagħmluhom pjuttost riskjużi biex jintużaw fil-prod. Billi tuża dan l-indirizz IP, tista 'tikkonnettja ma' database remota mingħajr ma tispeċifika port. Għalhekk, is-servizz Kubernetes iwettaq port forwarding b'mod pjuttost trasparenti.

L-aħjar prattiki ta' Kubernetes. Mapping ta' servizzi esterni

L-immappjar, jew l-immappjar tar-riżorsi esterni għal dawk interni, jagħtik il-flessibbiltà li tuża dawn is-servizzi fi ħdan il-cluster fil-futur filwaqt li timminimizza l-isforzi ta’ refactoring. Jagħmilha wkoll aktar faċli biex timmaniġġja u tipprovdi għarfien dwar liema servizzi esterni tuża l-kumpanija tiegħek.

Se titkompla dalwaqt...

Xi reklami 🙂

Grazzi talli bqajt magħna. Tħobb l-artikoli tagħna? Trid tara aktar kontenut interessanti? Appoġġuna billi tagħmel ordni jew tirrakkomanda lill-ħbieb, Cloud VPS għall-iżviluppaturi minn $4.99, analogu uniku ta 'servers ta' livell ta 'dħul, li ġie ivvintat minna għalik: Il-verità kollha dwar VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps minn $19 jew kif taqsam server? (disponibbli b'RAID1 u RAID10, sa 24 core u sa 40GB DDR4).

Dell R730xd 2 darbiet orħos fiċ-ċentru tad-dejta Equinix Tier IV f'Amsterdam? Hawn biss 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV minn $199 fl-Olanda! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - minn $99! Aqra dwar Kif tibni l-infrastruttura corp. klassi bl-użu ta 'servers Dell R730xd E5-2650 v4 li jiswew 9000 ewro għal ċenteżmu?

Sors: www.habr.com

Żid kumment