‫Tôi muốn dành một phút để nói về
‫DNS và Kubernetes. Đôi khi chúng ta coi đó là
‫điều hiển nhiên trong Docker, Swarm và Kubernetes, DNS chỉ là một loại hoạt động.
‫Tôi muốn cung cấp cho bạn một số chi tiết thực sự nhanh chóng về những gì đang
‫diễn ra trong nền trước khi chúng ta tiếp tục tiến về phía trước.
‫Những gì bạn đã trải qua cho đến nay là nếu bạn đang
‫ở trong một vùng chứa và bạn cURL hoặc ping tên dịch vụ, bạn
‫sẽ nhận được phản hồi.
‫Vì vậy, rõ ràng có một máy chủ
‫DNS trong đó đang làm gì đó để khớp các
‫dịch vụ với tên DNS. Tin hay không thì tùy, DNS là tùy chọn
‫như một dịch vụ hoặc một tiện ích bổ sung, bên trong cụm Kubernetes của bạn.
‫Nhưng, mọi người đều đặt một cái vào đó.
‫Trên thực tế, khi bạn cài đặt nó, cho dù đó là kubeadm, Docker
‫Desktop hay bất cứ thứ gì bạn đang sử dụng, sẽ có một
‫máy chủ DNS ở đó.
‫Bắt đầu với 1. 11 Phát hành, CoreDNS
‫là mặc định. Đó là tiêu chuẩn.
‫Có một cái trước đó gọi là KubeDNS, hiện không được dùng nữa
‫và tất cả chúng ta nên sử dụng CoreDNS ngay bây giờ.
‫Điều này được gọi là khám phá dịch vụ dựa trên DNS.
‫Bạn đã có nó trong Docker. Bạn đã có nó trong Swarm.
‫Về cơ bản, nó hoạt động theo cùng một cách trong Kubernetes
‫nơi khi bạn tạo một dịch vụ, bạn sẽ nhận được tên máy chủ
‫phù hợp với dịch vụ. Tuy nhiên, tên máy chủ đó là
‫một phần của tên lớn hơn, tên miền hoàn toàn đủ điều kiện.
‫Chúng tôi không hiểu được điều đó trong Docker hoặc Swarm.
‫Họ thực sự chỉ tập trung vào tên máy chủ.
‫Với Kubernetes, chúng ta có nhiều lựa chọn hơn, đúng không.
‫Vì vậy, ngoài hộp, bạn sẽ chỉ nói chuyện từ dịch vụ này sang
‫dịch vụ khác bằng cách sử dụng tên máy chủ.
‫Nếu bạn bắt đầu sử dụng không gian tên, và chúng ta sẽ xem
‫xét điều đó một chút sau.
‫Hãy coi khoảng trắng tên như một cách để tách tất cả
‫các phần khác nhau của các ứng dụng khác nhau vào các
‫khu vực này bên trong cùng một cụm, điều đó sẽ không thực
‫sự xung đột với nhau.
‫Về mặt kỹ thuật, bạn không thể tạo cùng một nhóm, hoặc
‫cùng một dịch vụ, hoặc cùng một Triển khai, với những tên giống
‫nhau, trong cùng một không gian tên.
‫Nếu bạn tạo các không gian tên khác, mà bạn
‫có thể làm khi bạn nâng cao hơn, thì bạn có thể có những
‫thứ giống nhau được đặt tên trong các không gian tên khác nhau và chúng
‫sẽ không đụng độ nhau. Điều đó bao gồm DNS.
‫Trên thực tế, khi bạn nhìn vào tiêu chuẩn tên miền đủ
‫điều kiện ở đây, bạn sẽ thấy rằng nó có tên máy chủ mà chúng tôi đang
‫sử dụng cho đến nay.
‫Sau đó là tên không gian tên.
‫Nếu bạn phải nhập tên đầy đủ này, bạn sẽ phải
‫chỉ định vùng tên.
‫Theo mặc định, bạn đang làm việc ở chế độ mặc định.
‫Đó là không gian tên mặc định cho các ứng dụng.
‫Nếu bạn thực hiện một lệnh nhanh tại
‫dòng lệnh của kubectl get namespace, bạn sẽ
‫thấy một danh sách ở đây.
‫Tôi đang sử dụng Docker Desktop, vì vậy tôi nhận được một phần bổ sung
‫có tên Docker, vì vậy đó sẽ chỉ là một
‫phần của Docker Desktop của bạn chạy một số dịch vụ Docker đặc
‫biệt thực hiện một số điều kỳ diệu mà Docker cung
‫cấp trong một cụm Kubernetes. Giá trị mặc định là giá trị
‫bạn được đưa vào một cụm cơ bản. Sau đó, những cái khác là tiêu chuẩn
‫xuất hiện cùng với Kubernetes.
‫Hệ thống một, rõ ràng, đang chạy máy bay điều khiển.
‫Đó là hệ thống ở đó.
‫Công chúng, chúng tôi thực sự không sử dụng nhiều.
‫Nó chỉ có một vài thứ trong đó.
‫Sau đó, cho thuê nút là một hình thức mới trong môi
‫trường Kubernetes mới hơn.
‫Đây là những chủ đề thực sự nâng cao mà bạn sẽ
‫không thực sự cần bắt đầu. Bạn hoàn toàn có thể chạy các cụm
‫của mình mà không bao giờ thực sự gây rối với
‫các không gian tên đó. Thông thường, những gì
‫bạn sẽ xử lý là không gian tên mặc định
‫và khi bạn lớn hơn, bạn có thể sẽ tạo nhiều không
‫gian tên cho các ứng dụng khác nhau có thể có cùng tên.
‫Hoặc có thể bạn muốn triển khai cùng một thứ nhiều lần, với cùng tên
‫dịch vụ, tên nhóm, tên triển khai và bạn sẽ không muốn chúng
‫xung đột, vì vậy bạn sẽ tạo không gian tên
‫khác nhau cho những tên đó.
‫Nó hơi giống với ngăn xếp Swarm, nhưng có quá nhiều khác
‫biệt giữa cách hoạt động của không gian tên
‫và ngăn xếp hoạt động mà tôi thực sự không muốn bạn
‫nghĩ rằng chúng hoàn toàn giống nhau.
‫Không gian tên thực sự chỉ là một thông số tổ chức và
‫nó không, ngoài ra, nó không kiểm soát phân đoạn mạng hoặc
‫bất cứ thứ gì tương tự.
‫Điều đó trở nên nâng cao hơn. Bạn có thể lo
‫lắng về những thứ đó sau. Hãy quay lại tên miền đầy đủ
‫điều kiện này ở đó. Bây giờ bạn đã biết tên
‫máy chủ và phần không gian tên rồi đó. svc cho dịch vụ bởi vì đó
‫là những gì chúng tôi đang tìm kiếm ở đây.
‫Cụm đó. cục bộ mà bạn thấy ở cuối
‫là tên DNS dịch vụ mặc định được cấp cho cụm của bạn khi
‫bạn tạo hoặc xoay nó lên.
‫Nếu bạn đang sử dụng một thứ gì đó như kubeadm để xây
‫dựng cụm của mình, bạn có thể thay đổi tên đó trước
‫khi xây dựng cụm của mình. Đây là một, theo mặc định.
‫Bạn sẽ biết nếu bạn cần thay đổi nó dựa trên việc có
‫thể tạo nhiều cụm Kubernetes hoặc nếu bạn có một
‫số loại yêu cầu bên ngoài về cách các ứng
‫dụng của bạn tìm thấy nhau. Một lần nữa, tất cả DNS này
‫chỉ nằm trong cụm của bạn.
‫Đó không phải là một số dịch vụ DNS mà các dịch vụ bên
‫ngoài sẽ có thể nhìn thấy hoặc sử dụng, trừ khi họ đang
‫nói chuyện với API Kubernetes từ xa.