Nalika sampeyan miwiti nggawe layanan Kubernetes liyane lan liyane, tugas sing wiwitane prasaja wiwit dadi luwih rumit. Contone, tim pangembangan ora bisa nggawe layanan utawa panyebaran kanthi jeneng sing padha. Yen sampeyan duwe ewonan polong, mung nyathet bakal butuh wektu akeh, apa maneh ngatur kanthi bener. Lan iki mung pucuk gunung es.
Ayo ndeleng carane namespace nggampangake ngatur sumber daya Kubernetes. Dadi apa namespace? Namespace bisa dianggep minangka kluster virtual ing kluster Kubernetes sampeyan. Sampeyan bisa duwe sawetara spasi jeneng sing diisolasi saka siji liyane ing siji kluster Kubernetes. Dheweke pancen bisa nulungi sampeyan lan tim sampeyan babagan organisasi, keamanan, lan uga kinerja sistem.
Ing umume distribusi Kubernetes, kluster kasebut metu saka kothak kanthi spasi jeneng sing diarani "standar". Sejatine ana telung ruang jeneng sing ditangani Kubernetes: standar, kube-system, lan kube-public. Saiki, Kube-publik ora kerep digunakake.
Ninggalake ruang jeneng kube mung minangka ide sing apik, utamane ing sistem sing dikelola kaya Google Kubernetes Engine. Iki nggunakake ruang jeneng "standar" minangka papan ing ngendi layanan lan aplikasi sampeyan digawe. Pancen ora ana sing khusus, kajaba Kubernetes dikonfigurasi metu saka kothak kanggo nggunakake, lan sampeyan ora bisa nyopot. Iki apik kanggo miwiti lan sistem kinerja kurang, nanging aku ora nyaranake nggunakake namespace standar ing sistem prod gedhe. Ing kasus pungkasan, siji tim pangembang bisa kanthi gampang nulis ulang kode wong liya lan ngrusak karya tim liyane tanpa ngerti.
Mula, sampeyan kudu nggawe macem-macem ruang jeneng lan gunakake kanggo nggawe segmen layanan dadi unit sing bisa diatur. Ruang jeneng bisa digawe kanthi printah siji. Yen sampeyan pengin nggawe namespace sing dijenengi test, banjur gunakake perintah $ kubectl create namespace test utawa mung gawe file YAML lan gunakake kaya sumber daya Kubernetes liyane.
Sampeyan bisa ndeleng kabeh spasi jeneng nggunakake perintah $ kubectl get namespace.
Yen wis rampung, sampeyan bakal weruh telung ruang jeneng sing dibangun lan ruang jeneng anyar sing diarani "tes". Ayo goleki file YAML sing prasaja kanggo nggawe pod. Sampeyan bakal sok dong mirsani sing ora ana sebutno namespace.
Yen sampeyan nggunakake kubectl kanggo mbukak file iki, bakal nggawe modul mypod ing namespace saiki aktif. Iki bakal dadi papan jeneng standar nganti sampeyan ngganti. Ana 2 cara kanggo ngandhani Kubernetes ing ruang jeneng apa sampeyan pengin nggawe sumber daya. Cara pisanan yaiku nggunakake gendera namespace nalika nggawe sumber daya.
Cara kapindho yaiku nemtokake spasi jeneng ing deklarasi YAML.
Yen sampeyan nemtokake namespace ing YAML, sumber daya bakal tansah digawe ing namespace kasebut. Yen sampeyan nyoba nggunakake papan jeneng sing beda nalika nggunakake gendera namespace, printah kasebut bakal gagal. Saiki yen sampeyan nyoba nemokake pod sampeyan, sampeyan ora bakal bisa.
Iki kedadeyan amarga kabeh printah dieksekusi ing njaba ruang jeneng sing saiki aktif. Kanggo nemokake pod sampeyan, sampeyan kudu nggunakake gendera namespace, nanging iki bakal cepet mboseni, utamane yen sampeyan minangka pangembang ing tim sing nggunakake ruang jeneng dhewe lan ora pengin nggunakake gendera kasebut kanggo saben printah. Ayo ndeleng carane kita bisa ndandani iki.
Saka kothak kasebut, ruang jeneng aktif sampeyan diarani standar. Yen sampeyan ora nemtokake spasi jeneng ing sumber daya YAML, kabeh printah Kubernetes bakal nggunakake spasi jeneng standar aktif iki. Sayange, nyoba ngatur ruang jeneng aktif nggunakake kubectl bisa gagal. Nanging, ana alat sing apik banget sing diarani Kubens sing nggawe proses iki luwih gampang. Nalika sampeyan mbukak printah kubens, sampeyan bakal weruh kabeh namespaces karo namespace aktif disorot.
Kanggo ngalih namespace aktif menyang namespace test, sampeyan mung mbukak printah test $ kubens. Yen sampeyan banjur mbukak printah $kubens maneh, sampeyan bakal weruh sing jeneng aktif anyar saiki diparengake - test.
Iki tegese sampeyan ora mbutuhake flag namespace kanggo ndeleng pod ing namespace test.
Kanthi cara iki, spasi jeneng didhelikake saka siji liyane, nanging ora diisolasi saka siji liyane. Layanan ing siji ruang jeneng bisa komunikasi kanthi gampang karo layanan ing ruang jeneng liyane, sing asring banget migunani. Kemampuan kanggo komunikasi ing macem-macem ruang jeneng tegese layanan pangembang sampeyan bisa komunikasi karo layanan tim dev liyane ing ruang jeneng sing beda.
Biasane, nalika aplikasi sampeyan pengin ngakses layanan Kubernetes, sampeyan nggunakake layanan panemuan DNS sing dibangun lan mung menehi jeneng layanan kasebut. Nanging, kanthi nglakoni, sampeyan bisa nggawe layanan kanthi jeneng sing padha ing pirang-pirang ruang jeneng, sing ora bisa ditampa.
Untunge, iki gampang diubengi kanthi nggunakake alamat DNS sing ditambahi. Layanan ing Kubernetes mbukak titik pungkasan nggunakake cithakan DNS umum. Iku katon kaya iki:
Biasane, sampeyan mung butuh jeneng layanan lan DNS bakal nemtokake alamat lengkap kanthi otomatis.
Nanging, yen sampeyan kudu ngakses layanan ing ruang jeneng sing beda, gunakake jeneng layanan ditambah jeneng ruang jeneng:
Contone, yen sampeyan pengin nyambung menyang database layanan ing namespace test, sampeyan bisa nggunakake database alamat database.test
Yen sampeyan pengin nyambung menyang database layanan ing namespace prod, sampeyan nggunakake database.prod.
Yen sampeyan pancene pengin ngisolasi lan mbatesi akses namespace, Kubernetes ngidini sampeyan nindakake iki nggunakake Kabijakan Jaringan Kubernetes. Aku bakal ngomong babagan iki ing episode sabanjure.
Aku kerep ditakoni, pira spasi jeneng sing kudu dakgawe lan kanggo tujuan apa? Apa potongan data sing dikelola?
Yen sampeyan nggawe akeh banget spasi jeneng, mung bakal ngganggu sampeyan. Yen ana sawetara banget, sampeyan bakal kelangan kabeh keuntungan saka solusi kasebut. Aku mikir ana papat tahapan utama sing ditindakake saben perusahaan nalika nggawe struktur organisasi. Gumantung ing tahap pangembangan proyek utawa perusahaan sampeyan, sampeyan bisa uga pengin nggunakake strategi namespace sing cocog.
Mbayangno yen sampeyan minangka bagean saka tim cilik sing nggarap ngembangake 5-10 microservices lan sampeyan bisa kanthi gampang ngumpulake kabeh pangembang ing sak kamar. Ing kahanan iki, iku ndadekake pangertèn kanggo mbukak kabeh layanan prod ing namespace standar. Mesthine, kanggo luwih fleksibel, sampeyan bisa nggunakake 2 ruang jeneng - kanthi kapisah kanggo prod lan dev. Lan paling kamungkinan, sampeyan nyoba pangembangan ing komputer lokal nggunakake kaya Minikube.
Ayo dadi owah-owahan lan sampeyan saiki duwe tim sing berkembang kanthi cepet sing nggarap luwih saka 10 layanan mikro sekaligus. Ana wektu nalika perlu nggunakake sawetara klompok utawa ruang jeneng, kanthi kapisah kanggo prod lan dev. Sampeyan bisa ngilangi tim kasebut dadi sawetara sub-tim supaya saben duwe layanan mikro dhewe lan saben tim kasebut bisa milih ruang jeneng dhewe kanggo nggampangake proses ngatur pangembangan lan rilis piranti lunak.
Nalika saben anggota tim entuk kawruh babagan cara kerjane sistem kanthi sakabehe, dadi luwih angel kanggo koordinasi saben owah-owahan karo kabeh pangembang liyane. Nyoba kanggo muter munggah tumpukan lengkap ing mesin lokal saya harder saben dina.
Ing perusahaan gedhe, pangembang umume ora ngerti sapa sing kerjane. Tim komunikasi nggunakake kontrak layanan utawa nggunakake teknologi bolong layanan, sing nambah lapisan abstraksi liwat jaringan, kayata alat konfigurasi Istio. Nyoba nglakokake tumpukan kabeh sacara lokal ora mungkin. Aku banget nyaranake nggunakake platform pangiriman (CD) sing terus-terusan kaya Spinnaker ing Kubernetes. Dadi, ana titik ing ngendi saben printah mesthi mbutuhake ruang jeneng dhewe. Saben tim malah bisa milih sawetara ruang jeneng kanggo lingkungan dev lan lingkungan prod.
Pungkasan, ana perusahaan wirausaha gedhe sing siji klompok pangembang ora ngerti babagan anane klompok liyane. Perusahaan kasebut umume bisa nyewa pangembang pihak katelu sing sesambungan liwat API sing didokumentasikake kanthi apik. Saben klompok kasebut ngemot sawetara tim lan sawetara layanan mikro. Ing kasus iki, sampeyan kudu nggunakake kabeh alat sing dakkandhakake sadurunge.
Programer ngirim ora nyebarake layanan kanthi manual lan ora duwe akses menyang ruang jeneng sing ora ana gandhengane. Ing tahap iki, disaranake duwe sawetara klompok kanggo nyuda "radius jeblugan" saka aplikasi sing ora dikonfigurasi, kanggo nyederhanakake proses tagihan lan manajemen sumber daya.
Dadi, panggunaan spasi jeneng sing tepat dening organisasi sampeyan ngidini sampeyan nggawe Kubernetes luwih bisa diatur, bisa dikontrol, aman, lan fleksibel.
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