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-systemGunakan 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.confberisi 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 parameterdnsConfig. 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, kebijakanClusterFirstWithHostNetsetara dengan kebijakanClusterFirst. 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: ClusterFirstSkenario 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 |
|
searches |
|
options |
|
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: DefaultReferensi
Untuk informasi lebih lanjut tentang kebijakan resolusi DNS dan kebijakan caching, lihat Kebijakan Resolusi DNS dan Kebijakan Caching.