CoreDNS trongLKE

Linode Kubernetes Engine (LKE) cung cấp khả năng phân giải tên miền nội bộ ngay lập tức thông qua CoreDNS, mỗi cụm mới đều được cung cấp cấu hình CoreDNS mặc định tối thiểu, có thể được tùy chỉnh để phù hợp với nhu cầu khối lượng công việc của bạn.

Trước khi bạn bắt đầu

Hướng dẫn này giả định rằng bạn có cụm Linode Kubernetes Engine (LKE) đang hoạt động trên Linode và bạn đã quen với Corefile, tệp cấu hình CoreDNS.

  • Cài đặt Kubernetes CLI (kubectl) trên máy tính cục bộ.
  • Làm theo hướng dẫn trong Hướng dẫn triển khai và quản lý cụm bằng Linode Kubernetes Engine để kết nối với cụm LKE.
  • Đảm bảo rằng Kubernetes CLI đang sử dụng đúng ngữ cảnh cụm. Chạy lệnh phụ get-contexts để kiểm tra:

kubectl config get-contexts

Cấu hình CoreDNS mặc định

Bạn có thể xem cấu hình CoreDNS mặc định của cụm bằng cách sử dụng lệnh sau:

kubectl get configmap -n kube-system coredns-base -o yaml

Đầu ra sẽ giống như sau:

apiVersion: v1
data:
Corefile: |
.:53 {
errors
health {
lameduck 5s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
forward . /etc/resolv.conf {
max_concurrent 1000
}
cache 30
loop
reload
loadbalance
import custom/.include } import custom/.server
kind: ConfigMap
metadata:
name: coredns-base
namespace: kube-system
[…]

Cấu hình CoreDNS mặc định nằm trong trường Corefile trong ConfigMap ở trên.

Không sửa đổi Bản đồ cấu hình kube-system/coredns-base đi kèm với cụm LKE của bạn. Nó có thể được khôi phục về trạng thái ban đầu bất kỳ lúc nào mà không cần thông báo.

Cấu hình CoreDNS tùy chỉnh

Cấu hình CoreDNS mặc định tận dụng plugin nhập CoreDNS để cho phép tùy chỉnh. Tiện ích mở rộng cấu hình được thêm thông qua các trường trong Bản đồ cấu hình kube-system/coredns-custom:

apiVersion: v1
kind: ConfigMap
metadata:
name: coredns-custom
namespace: kube-system
data:
sample.include: |
# Added to the .:53 default Server Block.
sample_a.server: |
# Additional Server Block.
sample_b.server: |
# Another Server Block.
  • Các trường có hậu tố .include được thêm vào Khối máy chủ mặc định.
  • Các trường có hậu tố .server được thêm dưới dạng Khối máy chủ mới.

Tạo cấu hình tùy chỉnh

Tạo một tệp kê khai cho Bản đồ cấu hình có tên coredns-custom trong không gian tên kube-system, với cấu hình mong muốn. Vì mục đích của hướng dẫn này, một cấu hình tùy chỉnh mẫu sẽ được sử dụng. Lưu nó dưới dạng tệp coredns-custom.yaml.

apiVersion: v1
kind: ConfigMap
metadata:
name: coredns-custom
namespace: kube-system
data:
# Log all incoming DNS queries.
log.include: |
log
# Private DNS resolution example. Handles FQDN resolutions for *.mydomain.com
# Replace with the target IP address.
mydomain.server: |
mydomain.com.:53 {
forward .
}

Áp dụng bảng kê khai ConfigMap ở trên:

kubectl apply -f coredns-custom.yaml

CoreDNS sẽ cố gắng tải lại cấu hình trong vòng 45 giây sau lần sửa đổi cuối cùng.

Đảm bảo cấu hình tùy chỉnh đã được tải:

kubectl logs -n kube-system -l k8s-app=kube-dns

Đối với cấu hình tùy chỉnh được hiển thị ở trên, đầu ra sẽ giống như sau, sau khi quá trình tải lại hoàn tất:

[INFO] Reloading
[INFO] plugin/health: Going into lameduck mode for 5s
[INFO] 127.0.0.1:60399 - 40866 "HINFO IN 349145763287755047.2816822520842364744. udp 56 false 512" NXDOMAIN qr,rd,ra 131 0.000980597s
[INFO] plugin/reload: Running configuration SHA512 = 868c96ccca274c442fefc8db8e98b1f4a5cd05c655db1d990803d4019e5d28af101b24a78f85bae7ab3a3f8894f2791fda9d2b4d9c6ae1aa942080e1a88ce3e6
[INFO] Reloading complete

Cấu hình tùy chỉnh hiện có hiệu lực.

Khôi phục mặc định

Để khôi phục cấu hình CoreDNS mặc định, chỉ cần xóa Bản đồ cấu hình tùy chỉnh coredns:

kubectl delete -n kube-system coredns-custom

Kiểm tra nhật ký để đảm bảo tải lại thành công:

kubectl logs -n kube-system -l k8s-app=kube-dns

Kết quả đầu ra trông tương tự như kết quả được phát ra sau khi áp dụng cấu hình tùy chỉnh.

[INFO] Reloading
[INFO] plugin/health: Going into lameduck mode for 5s
[WARNING] No files matching import glob pattern: custom/.include [WARNING] No files matching import glob pattern: custom/.server
[INFO] plugin/reload: Running configuration SHA512 = 591cf328cccc12bc490481273e738df59329c62c0b729d94e8b61db9961c2fa5f046dd37f1cf888b953814040d180f52594972691cd6ff41be96639138a43908
[INFO] Reloading complete

Các thông báo cảnh báo được phát ra hiện đã được mong đợi và không phải là vấn đề đáng lo ngại.

Nguồn: https://techdocs.akamai.com/cloud-computing/docs/coredns-custom-config