Membuat zona DNS

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, seperti example.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 menggunakan gdcloud config set project.
  • --async: Tentukan ini jika Anda ingin perintah segera ditampilkan, bukan menunggu hingga operasi selesai. Anda dapat menggunakan describe untuk memeriksa status operasi.

API

Gunakan Kubernetes API di GDC untuk membuat zona DNS publik:

  1. Buat dan terapkan resource ManagedDNSZone untuk 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
    EOF
    

    Ganti 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, seperti example.com.
    • DESCRIPTION: deskripsi untuk zona DNS Anda. Contoh, Public DNS zone for example.com. Kolom ini bersifat opsional.

    Perhatikan bahwa visibility peka huruf besar/kecil, dan harus memiliki nilai persis PUBLIC.

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.

  1. Ambil server nama untuk ManagedDNSZone yang Anda buat. Anda harus menggunakan kubectl untuk langkah ini.

    kubectl --kubeconfig GLOBAL_API_SERVER get manageddnszones DNS_ZONE_NAME -n PROJECT_NAMESPACE -oyaml
    

    Ganti 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 menggunakan gdcloud 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.com
    
  2. Perbarui resolver DNS di jaringan Anda untuk meneruskan permintaan DNS untuk zona baru. Untuk contoh ini, DNS resolver perlu diupdate untuk meneruskan permintaan untuk example.com ke ns.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 GDC gdc1.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, seperti example.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 menggunakan gdcloud config set project.
  • --async: Tentukan ini jika Anda ingin perintah segera ditampilkan, bukan menunggu hingga operasi selesai. Anda dapat menggunakan describe untuk memeriksa status operasi.

API

Gunakan Kubernetes API untuk membuat zona DNS pribadi:

  • Buat dan terapkan resource ManagedDNSZone untuk 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
    EOF
    

    Ganti 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, seperti example.com.
    • DESCRIPTION: deskripsi untuk zona DNS Anda. Contoh, Private DNS zone for example.com. Kolom ini bersifat opsional.

    Perhatikan bahwa visibility peka huruf besar/kecil, dan harus memiliki nilai persis PRIVATE.

Langkah berikutnya