Dokumen ini memandu Anda cara mengonfigurasi resolusi DNS untuk domain baru di Google Distributed Cloud (GDC) yang terisolasi melalui penggunaan zona DNS. Gunakan zona DNS untuk mengelompokkan sekumpulan data DNS, dan mengontrol apakah data tersebut dapat dilihat di luar Virtual Private Cloud (VPC) Anda di GDC.
Audiens yang dituju untuk dokumen ini adalah administrator platform dan operator aplikasi yang bertanggung jawab mengelola resolusi DNS untuk organisasi mereka.
Anda dapat membuat zona DNS publik atau pribadi di lingkungan GDC untuk mencocokkan persyaratan visibilitas dan akses layanan Anda:
- Untuk layanan yang memerlukan visibilitas dan akses jaringan eksternal: Siapkan zona DNS publik untuk mengizinkan pengguna dan sistem di luar jaringan Anda mengakses layanan Anda. Jika Anda memiliki situs, API yang menghadap publik, atau layanan apa pun yang perlu dapat dijangkau dari luar lingkungan GDC Cloud, Anda memerlukan zona DNS publik untuk memetakan nama domain Anda ke alamat IP yang sesuai.
- Untuk layanan yang memerlukan akses yang aman dan terbatas ke sistem internal: Siapkan zona DNS pribadi untuk menyembunyikan nama domain internal dan membatasi akses ke layanan internal Anda. Jika Anda memiliki aplikasi, database, atau microservice internal yang perlu berkomunikasi dengan layanan internal lainnya hanya menggunakan protokol aman dan alamat IP pribadi, Anda memerlukan zona DNS pribadi untuk memetakan nama domain ke alamat IP yang sesuai. Zona DNS pribadi memastikan bahwa layanan ini dapat saling menemukan menggunakan nama domain internal tanpa memaparkan keberadaan atau alamat IP-nya ke jaringan eksternal. Hal ini meningkatkan keamanan dan menyederhanakan jaringan internal.
Untuk mengetahui informasi selengkapnya tentang perbedaan antara zona DNS publik dan pribadi, lihat Jenis zona untuk Cloud DNS.
Sebelum memulai
Untuk mengonfigurasi zona DNS di GDC dan menambahkan data, Anda harus memiliki hal berikut:
- Project yang sudah ada. Untuk mengetahui informasi selengkapnya, lihat Membuat project.
- Peran identitas dan akses yang diperlukan. Untuk mengelola zona DNS untuk project Anda, minta Project IAM Admin untuk memberi Anda peran Managed DNS Project Admin (
managed-dns-project-admin). - Untuk menggunakan gdcloud CLI, pastikan Anda telah menginstalnya. Untuk mengetahui informasi selengkapnya, lihat Menginstal gdcloud CLI.
- Jika Anda menggunakan
kubectl, file kubeconfig untuk server API global. Jika Anda belum membuat file ini, lihat Login. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal.
Membuat zona DNS publik
Setelah membuat zona DNS publik, Anda harus mengonfigurasi resolver DNS jaringan untuk meneruskan permintaan ke server nama yang sesuai.
Buat zona
Anda dapat membuat zona DNS publik menggunakan gcloud CLI atau Kubernetes API.
gdcloud
Untuk membuat zona DNS publik, gunakan perintah gdcloud dns managed-zones create:
gdcloud dns managed-zones create DNS_ZONE_NAME \
--dns-name=DOMAIN_NAME \
--visibility=PUBLIC \
--description="DESCRIPTION" \
[--project=PROJECT_NAMESPACE] \
[--async]
Ganti kode berikut:
DNS_ZONE_NAME: nama zona DNS Anda.DOMAIN_NAME: nama domain untuk zona DNS publik Anda, sepertiexample.com.DESCRIPTION: deskripsi untuk zona DNS Anda. Contoh,Public DNS zone for example.com. Kolom ini bersifat opsional.PROJECT_NAMESPACE: namespace project Anda. Flag ini bersifat opsional jika Anda telah menetapkan project default secara global menggunakangdcloud config set project.--async: Tentukan ini jika Anda ingin perintah segera ditampilkan, bukan menunggu hingga operasi selesai. Anda dapat menggunakandescribeuntuk memeriksa status operasi.
API
Gunakan Kubernetes API di GDC untuk membuat zona DNS publik:
Buat dan terapkan resource
ManagedDNSZoneuntuk membuat zona DNS yang dapat diakses dari luar GDC:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: DNS_ZONE_NAME namespace: PROJECT_NAMESPACE spec: dnsName: DOMAIN_NAME description: DESCRIPTION visibility: PUBLIC EOFGanti kode berikut:
GLOBAL_API_SERVER: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat bagian Login untuk mengetahui detailnya.DNS_ZONE_NAME: nama zona DNS Anda.PROJECT_NAMESPACE: namespace project Anda.DOMAIN_NAME: nama domain untuk zona DNS publik Anda, sepertiexample.com.DESCRIPTION: deskripsi untuk zona DNS Anda. Contoh,Public DNS zone for example.com. Kolom ini bersifat opsional.
Perhatikan bahwa
visibilitypeka huruf besar/kecil, dan harus memiliki nilai persisPUBLIC.
Mengonfigurasi resolver DNS Anda
Untuk zona DNS publik, Anda harus mengonfigurasi resolver DNS di jaringan Anda untuk meneruskan permintaan DNS untuk zona DNS tersebut ke server nama di GDC yang menghosting zona DNS tersebut.
Ambil server nama untuk
ManagedDNSZoneyang Anda buat. Anda harus menggunakankubectluntuk langkah ini.kubectl --kubeconfig GLOBAL_API_SERVER get manageddnszones DNS_ZONE_NAME -n PROJECT_NAMESPACE -oyamlGanti kode berikut:
GLOBAL_API_SERVER: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat bagian Login untuk mengetahui detailnya.DNS_ZONE_NAME: nama zona DNS Anda.PROJECT_NAMESPACE: namespace project Anda. Flag ini bersifat opsional jika Anda telah menetapkan project default secara global menggunakangdcloud config set project.
Server nama akan dicantumkan dalam output status:
apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: DNS_ZONE_NAME namespace: PROJECT_NAMESPACE spec: dnsName: example.com description: "Public DNS zone for example.com" visibility: PUBLIC status: … nameServers: - ns.managed-dns-public.gdc1.staging.gpcdemolabs.comPerbarui resolver DNS di jaringan Anda untuk meneruskan permintaan DNS untuk zona baru. Untuk contoh ini, DNS resolver perlu diupdate untuk meneruskan permintaan untuk
example.comkens.managed-dns-public.gdc1.staging.gpcdemolabs.com. Konfigurasi ini mengasumsikan bahwa resolver sudah memiliki konfigurasi yang diperlukan untuk meneruskan permintaan DNS dengan tepat untuk zona DNS infrastruktur GDCgdc1.staging.gpcdemolabs.com.
Membuat zona DNS pribadi
Anda dapat membuat zona DNS pribadi menggunakan gdcloud CLI atau Kubernetes API.
gdcloud
Untuk membuat zona DNS pribadi, gunakan perintah
gdcloud dns managed-zones create:
gdcloud dns managed-zones create DNS_ZONE_NAME \
--dns-name=DOMAIN_NAME \
--visibility=PRIVATE \
--description="DESCRIPTION" \
[--project=PROJECT_NAMESPACE] \
[--async]
Ganti kode berikut:
DNS_ZONE_NAME: nama zona DNS Anda.DOMAIN_NAME: nama domain untuk zona DNS pribadi Anda, sepertiexample.com.DESCRIPTION: deskripsi untuk zona DNS Anda. Contoh,Private DNS zone for example.com. Kolom ini bersifat opsional.PROJECT_NAMESPACE: namespace project Anda. Flag ini bersifat opsional jika Anda telah menetapkan project default secara global menggunakangdcloud config set project.--async: Tentukan ini jika Anda ingin perintah segera ditampilkan, bukan menunggu hingga operasi selesai. Anda dapat menggunakandescribeuntuk memeriksa status operasi.
API
Gunakan Kubernetes API untuk membuat zona DNS pribadi:
Buat dan terapkan resource
ManagedDNSZoneuntuk membuat zona DNS yang hanya dapat diakses dari dalam VPC pelanggan default:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: DNS_ZONE_NAME namespace: PROJECT_NAMESPACE spec: dnsName: DOMAIN_NAME description: DESCRIPTION visibility: PRIVATE EOFGanti kode berikut:
GLOBAL_API_SERVER: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat bagian Login untuk mengetahui detailnya.DNS_ZONE_NAME: nama zona DNS Anda.PROJECT_NAMESPACE: namespace project Anda.DOMAIN_NAME: nama domain untuk zona DNS pribadi Anda, sepertiexample.com.DESCRIPTION: deskripsi untuk zona DNS Anda. Contoh,Private DNS zone for example.com. Kolom ini bersifat opsional.
Perhatikan bahwa
visibilitypeka huruf besar/kecil, dan harus memiliki nilai persisPRIVATE.