Yen sampeyan kaya umume wong, sampeyan bisa uga nggunakake sumber daya sing ana ing njaba klompok sampeyan. Mbok menawa sampeyan nggunakake API Taleo kanggo ngirim pesen teks, utawa nganalisa gambar nggunakake API Google Cloud Vision.
Yen sampeyan nggunakake titik pungkasan panyuwunan sisih server sing padha ing kabeh lingkungan sampeyan lan ora ngrencanakake migrasi server menyang Kubernetes, mula ora ana titik pungkasan layanan ing kode sampeyan. Nanging, ana akeh skenario liyane kanggo pangembangan acara. Ing seri Kubernetes Best Practices iki, sampeyan bakal sinau carane nggunakake mekanisme internal Kubernetes kanggo nemokake layanan ing njero lan njaba kluster.
Conto layanan eksternal umum yaiku database sing mlaku ing njaba kluster Kubernetes. Ora kaya database maya kaya Google Cloud Data Store utawa Google Cloud Spanner, sing nggunakake titik pungkasan siji kanggo kabeh akses, umume database duwe titik pungkasan sing kapisah kanggo kahanan sing beda-beda.
Praktik paling apik kanggo nggunakake basis data tradisional kayata MySQL lan MongoDB biasane tegese sampeyan nyambungake menyang komponen sing beda kanggo lingkungan sing beda. Sampeyan bisa duwe mesin gedhe kanggo data produksi lan mesin cilik kanggo lingkungan test. Saben wong bakal duwe alamat IP utawa jeneng domain dhewe, nanging sampeyan mbokmenawa ora pengin ngganti kode nalika pindhah saka lingkungan siji menyang lingkungan liyane. Dadi, tinimbang ngode alamat kasebut, sampeyan bisa nggunakake panemuan layanan eksternal basis DNS sing dibangun ing Kubernetes kanthi cara sing padha karo layanan Kubernetes asli.
Contone, sampeyan nggunakake basis data MongoDB ing Google Compute Engine. Sampeyan bakal macet ing jagad hibrida iki nganti sampeyan bisa nransfer menyang kluster.
Untunge, sampeyan bisa nggunakake layanan Kubernetes statis kanggo nggawe urip luwih gampang. Ing conto iki, aku nggawe server MongoDB nggunakake Google Cloud Launcher. Wiwit digawe ing jaringan sing padha (utawa Kubernetes cluster VPC), diakses nggunakake alamat IP internal kinerja dhuwur.
Iki minangka setelan gawan ing Google Cloud, dadi sampeyan ora kudu ngatur apa-apa. Saiki sampeyan duwe alamat IP, langkah pisanan yaiku nggawe layanan. Sampeyan bisa uga sok dong mirsani sing ora ana pamilih pod kanggo layanan iki. Yaiku, kita nggawe layanan sing ora ngerti ngendi ngirim lalu lintas. Iki bakal ngidini sampeyan nggawe obyek endpoint kanthi manual sing bakal nampa lalu lintas saka layanan iki.
Conto kode ing ngisor iki nuduhake yen titik pungkasan nemtokake alamat IP kanggo database nggunakake jeneng mongo sing padha karo layanan kasebut.
Kubernetes bakal nggunakake kabeh alamat IP kanggo nemokake titik pungkasan kaya-kaya Pods Kubernetes biasa, mula saiki sampeyan bisa ngakses database kanthi string sambungan sing prasaja menyang jeneng ing ndhuwur mongodb: // mongo. Ora perlu nggunakake alamat IP ing kode sampeyan.
Yen alamat IP diganti ing mangsa ngarep, sampeyan mung bisa nganyari titik pungkasan nganggo alamat IP anyar lan aplikasi sampeyan ora perlu diowahi kanthi cara tambahan.
Yen sampeyan nggunakake basis data sing di-host ing host pihak katelu, mesthine sing nduweni host wis menehi sampeyan Uniform Resource Identifier URI kanggo nyambungake. Dadi yen sampeyan wis diwenehi alamat IP, sampeyan mung bisa nggunakake cara sadurunge. Conto iki nuduhake yen aku duwe rong database MongoDB sing di-host ing host mLab.
Salah sijine yaiku database pangembang lan liyane yaiku database produksi. Senar sambungan kanggo database iki katon kaya iki - mLab nyedhiyakake URI dinamis lan port dinamis. Nalika sampeyan bisa ndeleng, padha beda.
Kanggo abstrak iki, ayo nggunakake Kubernetes lan nyambung menyang database pangembang. Sampeyan bisa nggawe jeneng layanan Kubernetes eksternal, sing bakal menehi layanan statis sing bakal nerusake lalu lintas menyang layanan eksternal.
Layanan iki bakal nindakake penerusan CNAME sing prasaja ing tingkat kernel kanthi pengaruh kinerja minimal. Thanks kanggo iki sampeyan bisa nggunakake senar sambungan prasaja.
Nanging amarga jeneng eksternal nggunakake CNAME forwarding, ora bisa nindakake port forwarding. Mulane, solusi iki mung ditrapake kanggo port statis lan ora bisa digunakake karo port dinamis. Nanging mLab Free Tier menehi pangguna nomer port dinamis kanthi standar lan sampeyan ora bisa ngganti. Iki tegese sampeyan butuh baris perintah sambungan sing beda kanggo dev lan prod. Sing ala yaiku iki mbutuhake hardcode nomer port kasebut. Dadi, kepiye carane nerusake port supaya bisa digunakake?
Langkah pisanan yaiku njupuk alamat IP saka URI. Yen sampeyan mbukak nslookup, hostname, utawa ping URI, sampeyan bisa entuk alamat IP database. Yen layanan ngasilake sawetara alamat IP kanggo sampeyan, kabeh alamat kasebut bisa digunakake ing titik pungkasan obyek kasebut.
Siji bab sing kudu dielingake yaiku IP URI bisa diganti tanpa kabar, nggawe beboyo kanggo digunakake ing prod. Nggunakake alamat IP iki, sampeyan bisa nyambung menyang database remot tanpa nemtokake port. Dadi, layanan Kubernetes nindakake port forwarding kanthi cukup transparan.
Pemetaan, utawa pemetaan sumber daya njaba kanggo internal, menehi sampeyan keluwesan kanggo nggunakake layanan iki ing kluster ing mangsa nalika minimalake refactoring efforts . Iku uga nggawe luwih gampang kanggo ngatur lan menehi wawasan babagan layanan eksternal sing digunakake perusahaan sampeyan.
Diterusake kanthi cepet ...
Sawetara iklan π
Matur nuwun kanggo tetep karo kita. Apa sampeyan seneng karo artikel kita? Pengin ndeleng konten sing luwih menarik? Ndhukung kita kanthi nggawe pesenan utawa menehi rekomendasi menyang kanca,
Dell R730xd 2 kaping luwih murah ing pusat data Equinix Tier IV ing Amsterdam? Mung kene
Source: www.habr.com