‫Saya ingin mengambil waktu sebentar untuk berbicara tentang
‫DNS dan Kubernetes. Kadang-kadang kita menerima begitu
‫saja di Docker, dan Swarm, dan Kubernetes, DNS hanya bekerja.
‫Saya ingin memberi Anda beberapa detail dengan sangat cepat tentang apa yang
‫terjadi di latar belakang sebelum kami terus bergerak maju.
‫Apa yang telah Anda alami sejauh ini adalah jika Anda
‫berada dalam sebuah wadah, dan Anda mengurung atau mem-ping nama layanan,
‫Anda mendapatkan kembali responsnya.
‫Jadi, jelas ada server DNS
‫di sana melakukan sesuatu untuk mencocokkan layanan
‫dengan nama DNS. Percaya atau tidak, DNS adalah
‫opsional sebagai layanan, atau tambahan, di dalam kluster Kubernetes Anda.
‫Tapi, semua orang menempatkannya di sana.
‫Bahkan, ketika Anda menginstalnya, apakah itu kubeadm, atau Docker Desktop,
‫atau apa pun yang Anda gunakan, akan ada server
‫DNS di sana.
‫Dimulai dengan 1. 11 Rilis, CoreDNS
‫adalah default. Ini semacam standar.
‫Ada yang sebelumnya disebut KubeDNS, yang sudah usang pada saat
‫ini, dan kita semua harus menggunakan CoreDNS sekarang.
‫Apa ini dikenal sebagai penemuan layanan berbasis DNS.
‫Anda memilikinya di Docker. Anda memilikinya di Swarm.
‫Pada dasarnya, ini bekerja dengan cara yang sama di
‫Kubernetes di mana ketika Anda membuat layanan, Anda mendapatkan nama host yang
‫cocok dengan layanan tersebut. Tapi, nama host itu adalah bagian
‫dari nama yang lebih besar, nama domain yang sepenuhnya memenuhi syarat.
‫Kami tidak mendapatkannya di Docker atau Swarm.
‫Mereka benar-benar hanya fokus pada nama host.
‫Dengan Kubernetes, kami mendapatkan lebih banyak opsi, benar.
‫Jadi, out-of-the-box, Anda hanya akan berbicara dari satu layanan
‫ke layanan lain menggunakan nama host.
‫Jika Anda mulai menggunakan ruang nama, dan kami akan
‫membahasnya sedikit nanti.
‫Pikirkan ruang nama sebagai cara untuk memisah-misahkan semua
‫bagian aplikasi yang berbeda ke area-area di dalam
‫cluster yang sama, yang tidak akan benar-benar berbenturan satu
‫sama lain.
‫Anda tidak dapat secara teknis membuat pod yang sama,
‫atau layanan yang sama, atau Penempatan yang sama, dengan nama
‫yang sama, di namespace yang sama.
‫Jika Anda membuat ruang nama lain, yang dapat
‫Anda lakukan saat Anda semakin maju, Anda kemudian dapat memiliki
‫hal yang sama dengan nama dalam ruang nama yang berbeda dan
‫mereka tidak akan berbenturan. Itu termasuk DNS.
‫Bahkan, ketika Anda melihat standar nama domain yang sepenuhnya memenuhi
‫syarat di sini, Anda akan melihat bahwa itu memiliki nama host, yang telah kami
‫gunakan sejauh ini.
‫Kemudian nama namespace.
‫Jika Anda mengetikkan nama lengkap ini, Anda harus
‫menentukan namespace.
‫Secara default, Anda telah bekerja secara default.
‫Itu namespace default untuk aplikasi.
‫Jika Anda melakukan perintah cepat di baris
‫perintah kubectl mendapatkan namespace, Anda akan
‫melihat daftar di sini.
‫Saya berada di Docker Desktop, jadi saya mendapatkan tambahan di sana
‫yang mengatakan Docker, jadi itu hanya akan
‫menjadi bagian dari Docker Desktop Anda yang menjalankan beberapa layanan
‫Docker khusus yang melakukan beberapa keajaiban yang Docker
‫sediakan di cluster Kubernetes. Defaultnya adalah yang
‫Anda gunakan untuk cluster dasar. Kemudian yang lain adalah standar yang keluar
‫dari kotak dengan Kubernetes.
‫Sistem yang satu, jelas, menjalankan bidang kontrol.
‫Itu sistemnya di sana.
‫Publik, kami tidak terlalu banyak menggunakan.
‫Hanya ada beberapa hal di dalamnya.
‫Kemudian simpul-sewa adalah yang baru di lingkungan Kubernet
‫yang lebih baru.
‫Ini adalah topik yang sangat canggih yang Anda
‫tidak perlu memulai. Anda sangat mungkin menjalankan cluster
‫Anda tanpa pernah benar-benar mengacaukan banyak ruang
‫nama tersebut. Biasanya, yang akan
‫Anda hadapi adalah namespace default dan saat Anda
‫bertambah besar, Anda mungkin akan membuat banyak ruang nama
‫untuk aplikasi yang berbeda yang mungkin memiliki nama yang sama.
‫Atau mungkin Anda ingin menyebarkan hal yang sama beberapa kali, dengan nama
‫layanan yang sama, nama pod, nama penyebaran, dan Anda tidak
‫ingin mereka berbenturan, sehingga Anda akan membuat ruang
‫nama yang berbeda untuk itu.
‫Ini sedikit mirip dengan tumpukan Swarm, tetapi ada begitu
‫banyak perbedaan antara cara ruang nama bekerja
‫dan tumpukan bekerja sehingga saya benar-benar tidak ingin Anda
‫berpikir bahwa mereka persis sama.
‫Namespaces sebenarnya hanyalah parameter organisasi, dan
‫tidak, out-of-the-box, mengontrol segmentasi jaringan
‫atau semacamnya.
‫Itu semakin maju. Anda bisa
‫khawatir tentang hal itu nanti. Mari kita kembali ke nama domain
‫berkualifikasi penuh ini di sana. Sekarang Anda tahu nama
‫host dan bagian namespace, maka itu. svc untuk layanan karena
‫itulah yang kami cari di sini.
‫Cluster itu. lokal yang Anda lihat pada akhirnya
‫adalah nama DNS layanan default yang diberikan kepada cluster Anda saat
‫Anda membuatnya atau memutarnya.
‫Jika Anda menggunakan sesuatu seperti kubeadm untuk membangun cluster
‫Anda, Anda bisa mengubah nama itu sebelum Anda
‫membangun cluster Anda. Ini dia, secara default.
‫Anda akan tahu apakah Anda perlu mengubahnya berdasarkan pada
‫mungkin membuat beberapa kluster Kubernetes, atau jika
‫Anda memiliki semacam persyaratan eksternal untuk bagaimana
‫aplikasi Anda saling menemukan. Sekali lagi, semua DNS ini hanya
‫ada di dalam cluster Anda.
‫Ini bukan layanan DNS yang bisa dilihat atau digunakan
‫oleh layanan luar, kecuali mereka berbicara dengan API
‫Kubernetes dari jarak jauh.