Topik ini menjelaskan cara GKE di AWS berinteraksi dengan Domain Name Services (DNS) di AWS Virtual Private Cloud (VPC) dan cluster Anda.
DNS VPC AWS
Bagian ini menjelaskan cara mengonfigurasi VPC untuk GKE di AWS.
Mengonfigurasi DNS VPC
GKE di AWS mendukung berbagai konfigurasi DNS di VPC AWS Anda. Anda mengonfigurasi setelan DNS VPC saat Membuat kumpulan opsi DHCP. Untuk mengetahui informasi selengkapnya, lihat Dukungan DNS untuk VPC Anda.
Anda dapat mengonfigurasi opsi berikut:
- Hostname DNS
- Ini menetapkan apakah instance EC2 dengan alamat IP publik mendapatkan nama host DNS publik yang sesuai. Anda menetapkan nilai ini menggunakan kolom
enableDNSHostnames
di kumpulan opsi DHCP VPC Anda. Untuk mengetahui informasi selengkapnya, lihat Nama Host DNS VPC dan kumpulan opsi DHCP untuk VPC Anda. - Nama Host DNS EC2
- Ini akan menetapkan apakah instance EC2 menerima nama host DNS default atau nama host DNS kustom.
- Server DNS
- Apakah kumpulan opsi DHCP VPC Anda menggunakan server DNS AWS Route53
(dengan opsi
AmazonProvidedDNS
), atau server DNS yang dihosting.
Menggunakan DNS yang dihosting
Untuk menggunakan DNS yang dihosting, grup keamanan bidang kontrol dan kumpulan node Anda harus mengizinkan traffic keluar di TCP dan UDP port 53.
Konfigurasi DNS VPC yang didukung
Tabel berikut mencakup konfigurasi DNS yang didukung oleh GKE di AWS:
Aktifkan nama host DNS | Nama host DNS EC2 | Server DNS | Didukung? |
---|---|---|---|
true |
Default | Route53 AWS | Ya |
false |
Default | Route53 AWS | Ya |
true |
Kustom | Route53 AWS | Ya |
false |
Kustom | Route53 AWS | Ya |
true |
Kustom | Diinangi | Ya |
false |
Kustom | Diinangi | Ya |
true |
Default | Diinangi | Tidak |
false |
Default | Diinangi | Tidak |
Penemuan layanan
Penemuan layanan adalah proses saat workload menemukan layanan tanpa mengetahui alamat IP layanan. Bagian ini menjelaskan cara GKE di AWS mengimplementasikan penemuan layanan dan DNS terkelola.
Kubernetes secara otomatis membuat nama layanan yang menggunakan spesifikasi berikut:
service.namespace.svc.cluster.local
Dengan keterangan:
service
: nama layanan Andanamespace
: Namespace layanan Anda
Workload juga mengakses layanan eksternal—misalnya example.net
—menggunakan nama DNS. Untuk mengetahui informasi selengkapnya tentang perilaku DNS di Kubernetes, lihat
DNS untuk Layanan dan Pod.
CoreDNS
GKE di AWS menggunakan CoreDNS untuk me-resolve nama DNS dalam cluster. CoreDNS berjalan sebagai Deployment
redundan yang diskalakan di namespace
kube-system
. Deployment CoreDNS memiliki Service yang mengelompokkan Pod CoreDNS dan memberinya satu alamat IP. CoreDNS Deployment diskalakan dengan
ukuran dan penggunaan cluster.
NodeLocal DNSCache
GKE di AWS menggunakan NodeLocal DNSCache untuk meningkatkan performa pencarian DNS. NodeLocal DNSCache berjalan sebagai DaemonSet pada setiap node dalam cluster Anda. Saat Pod membuat permintaan DNS, permintaan tersebut akan mengarah ke cache DNS terlebih dahulu pada node yang sama. Jika cache tidak dapat menyelesaikan permintaan DNS, cache akan meneruskan permintaan ke:
- CoreDNS untuk nama internal— misalnya
foo.bar.svc.cluster.local
- Server DNS Amazon,
untuk nama eksternal—misalnya
example.net
Langkah selanjutnya
- Baca dukungan DNS untuk VPC AWS.
- Untuk ringkasan penggunaan DNS di cluster Kubernetes, lihat DNS untuk Layanan dan Pod.