全部产品
Search
文档中心

Container Compute Service:Kebijakan DNS dan resolusi nama domain

更新时间:Jul 02, 2025

Topik ini menjelaskan cara menggunakan parameter dnsPolicy untuk mengonfigurasi kebijakan DNS pada pod dalam kluster Container Compute Service (ACS).

Informasi latar belakang

Untuk informasi lebih lanjut tentang cara kerja resolusi DNS di kluster Kubernetes, lihat Ikhtisar DNS.

CoreDNS di kluster ACS diterapkan di cloud. Kluster tersebut menggunakan Layanan kube-dns untuk mengekspos CoreDNS. Permintaan DNS di kluster dikirim ke server DNS yang ditentukan dalam konfigurasi pod CoreDNS. Anda dapat menjalankan perintah berikut untuk menanyakan informasi tentang Layanan kube-dns:

kubectl get svc kube-dns -n kube-system

Gunakan parameter dnsPolicy untuk mengonfigurasi kebijakan DNS untuk pod

Anda dapat menggunakan parameter dnsPolicy untuk mengonfigurasi kebijakan DNS pada pod. Kluster ACS mendukung kebijakan DNS berikut:

  • ClusterFirst: Kebijakan ini menunjukkan bahwa pod menggunakan CoreDNS untuk menyelesaikan nama domain. Ini adalah kebijakan DNS default. File /etc/resolv.conf berisi alamat server DNS yang disediakan oleh CoreDNS, yaitu kube-dns.

  • None: Kebijakan ini menunjukkan bahwa pod mengabaikan pengaturan DNS kluster. Anda harus menyesuaikan pengaturan DNS menggunakan parameter dnsConfig. Jika tidak, pod tidak dapat menyelesaikan nama domain apa pun.

  • Default: Kebijakan ini menggunakan Alibaba Cloud DNS untuk resolusi DNS.

  • ClusterFirstWithHostNet: Pod dalam kluster ACS tidak mendukung jaringan host. Oleh karena itu, kebijakan ClusterFirstWithHostNet setara dengan kebijakan ClusterFirst. Untuk informasi lebih lanjut, lihat Batasan Aplikasi Kubernetes.

Anda dapat menggunakan kebijakan DNS di atas untuk memenuhi kebutuhan bisnis dalam berbagai skenario.

Skenario 1: Gunakan CoreDNS yang disediakan oleh kluster ACS untuk menyelesaikan nama domain

Dalam skenario ini, Anda harus menentukan dnsPolicy: ClusterFirst untuk pengaturan kebijakan DNS. Contoh:

apiVersion: v1
kind: Pod
metadata:
  name: alpine
  namespace: default
spec:
  containers:
  - image: alpine # Contoh gambar disediakan hanya untuk referensi. Ganti dengan gambar sebenarnya yang Anda gunakan.
    command:
      - sleep
      - "10000"
    imagePullPolicy: Always
    name: alpine
  dnsPolicy: ClusterFirst

Skenario 2: Sesuaikan pengaturan DNS untuk pod

Untuk menggunakan konfigurasi DNS kustom, tentukan dnsPolicy: None untuk pengaturan kebijakan DNS dan tambahkan bidang dnsConfig. Contoh:

apiVersion: v1
kind: Pod
metadata:
  name: alpine
  namespace: default
spec:
  containers:
  - image: alpine # Contoh gambar disediakan hanya untuk referensi. Ganti dengan gambar sebenarnya yang Anda gunakan.
    command:
      - sleep
      - "10000"
    imagePullPolicy: Always
    name: alpine
  dnsPolicy: None
  dnsConfig:
    nameservers: ["169.254.xxx.xxx"]
    searches:
    - default.svc.cluster.local
    - svc.cluster.local
    - cluster.local
    options:
    - name: ndots
      value: "2"

Tabel berikut menjelaskan parameter dalam bagian dnsConfig.

Parameter

Deskripsi

nameservers

  • Daftar alamat IP server DNS untuk pod. Anda dapat menentukan hingga tiga alamat IP.

  • Jika Anda menetapkan dnsPolicy ke None untuk pod, Anda harus menentukan setidaknya satu alamat IP. Jika Anda tidak menetapkan dnsPolicy ke None untuk pod, parameter ini opsional.

  • Alamat IP server DNS yang terdaftar akan ditambahkan ke parameter nameserver dari file konfigurasi DNS yang dihasilkan berdasarkan nilai dnsPolicy. Alamat IP duplikat dihapus.

searches

  • Daftar domain pencarian DNS untuk pencarian nama host di pod. Parameter ini opsional.

  • Domain pencarian DNS yang terdaftar ditambahkan ke daftar domain pencarian dasar yang dihasilkan berdasarkan kebijakan DNS yang ditentukan. Nama domain duplikat dihapus.

  • Anda dapat menentukan hingga enam domain pencarian.

options

  • Daftar item opsional. Setiap item dapat berisi name (wajib) dan value (opsional).

  • Item yang ditentukan akan ditambahkan ke daftar item opsional yang dihasilkan berdasarkan kebijakan DNS yang ditentukan. Item duplikat dihapus.

Untuk informasi lebih lanjut, lihat DNS untuk Layanan dan Pod.

Skenario 3: Gunakan Alibaba Cloud DNS untuk resolusi DNS

Jika pod aplikasi Anda tidak perlu mengakses Layanan lain yang diterapkan di kluster ACS, Anda dapat menentukan dnsPolicy: Default untuk pengaturan kebijakan DNS. Dalam skenario ini, resolusi DNS dilakukan oleh Alibaba Cloud DNS dan CoreDNS tidak diperlukan. Contoh:

apiVersion: v1
kind: Pod
metadata:
  name: alpine
  namespace: default
spec:
  containers:
  - image: alpine # Contoh gambar disediakan hanya untuk referensi. Ganti dengan gambar sebenarnya yang Anda gunakan.
    command:
      - sleep
      - "10000"
    imagePullPolicy: Always
    name: alpine
  dnsPolicy: Default

Referensi

Untuk informasi lebih lanjut tentang kebijakan resolusi DNS dan kebijakan caching, lihat Kebijakan Resolusi DNS dan Kebijakan Caching.