Tạo Kubernetes EndpointSlices

Tao Kubernetes Endpointslices



Một lát cắt điểm cuối cho phép bạn theo dõi điểm cuối của mạng được kết nối với cụm Kubernetes. Bạn có thể tìm hiểu thêm về EndpointSlices trong môi trường Kubernetes thông qua bài viết này mà chúng tôi đã tạo cho bạn. Trong hướng dẫn này, chúng tôi sẽ giúp bạn tìm hiểu EndpointSlice là gì trong cụm Kubernetes và cách bạn có thể tạo EndpointSlice trong Kubernetes. Chúng tôi sẽ trình bày một số lệnh kubectl cho phép chúng tôi tạo một điểm cuối trong cụm Kubernetes.

EndpointSlice trong Kubernetes là gì?

EndpointSlice trong Kubernetes là một trình theo dõi điểm cuối mạng. Nó cho phép giám sát các điểm cuối mạng trong cụm Kubernetes. Nói một cách đơn giản, nó là một đối tượng lấy địa chỉ IP từ mỗi nhóm được gán cho nó. Dịch vụ Kubernetes đề cập đến đối tượng này để lấy bản ghi địa chỉ IP nội bộ của nhóm để liên lạc. Ngoài ra, các điểm cuối này được các nhóm sử dụng để tiếp xúc với một dịch vụ.

Trong lĩnh vực Kubernetes, các điểm cuối này hoạt động như một lớp trừu tượng giúp dịch vụ Kubernetes đảm bảo rằng có sự phân phối lưu lượng truy cập đến các nhóm trong cụm. Tuy nhiên, khi lưu lượng truy cập tăng lên, vấn đề mở rộng lưu lượng sẽ xảy ra. Điều này là do một điểm cuối duy nhất chứa tất cả các điểm cuối mạng cho từng dịch vụ. Và khi các nguồn này phát triển đến kích thước không thể chấp nhận được, hiệu suất của Kubernetes sẽ bị ảnh hưởng tiêu cực. Nói cách khác, khi số lượng điểm cuối mạng tăng lên rất nhiều, khả năng mở rộng quy mô triển khai của Kubernetes sẽ bị ảnh hưởng tiêu cực. Hãy để chúng tôi hiểu điều này với sự trợ giúp của hình ảnh đồ họa sau:









Tại đây, bạn có thể thấy rằng Điểm cuối chứa tất cả các nhóm trong cụm và EndpointSlices là giải pháp thay thế có thể mở rộng và thay đổi quy mô cho Điểm cuối hiện có. Chỉ có một tài nguyên Điểm cuối cho toàn bộ dịch vụ nhưng có nhiều hơn một EndpointSlice cho cùng một dịch vụ. EndpointSlices giúp bạn mở rộng quy mô tài nguyên mạng của mình theo cách này. Để hiểu tầm quan trọng của vấn đề về khả năng mở rộng này, chúng ta hãy lấy một ví dụ.



Ví dụ: dịch vụ Kubernetes có khoảng 9.000 nhóm, bằng cách nào đó kết thúc bằng tài nguyên Điểm cuối 2MB. Một Điểm cuối duy nhất có tất cả các tài nguyên Điểm cuối này của các dịch vụ. Nếu bất kỳ điểm cuối mạng nào thay đổi trong điểm cuối, toàn bộ tài nguyên của điểm cuối cần được phân phối giữa mỗi nút trong cụm. Khi nói đến việc xử lý một cụm có 3000 nút, nó trở thành một vấn đề lớn vì một số lượng lớn các bản cập nhật cần được gửi tới mỗi nút. Do đó, khi bạn mở rộng quy mô hơn chỉ trong một điểm cuối duy nhất, thì mạng càng khó mở rộng quy mô hơn.





Tuy nhiên, EndpointSlices giải quyết vấn đề này bằng cách cho phép Kubernetes mở rộng quy mô nếu cần. Thay vì sử dụng một điểm cuối duy nhất chứa danh sách địa chỉ IP khổng lồ và số cổng được liên kết của chúng, hãy sử dụng nhiều EndpointSlice. Các EndpointSlice này là các phần nhỏ của một điểm cuối lớn duy nhất. Các lát này nhỏ hơn nhiều, nhưng chúng giảm thiểu tải do điểm cuối khổng lồ gây ra. Bạn có thể lưu trữ tối đa 100 nhóm trong một EndpointSlice. Các EndpointSlice này giúp bạn phân phối dịch vụ tới một nhóm cụ thể. Nếu bất kỳ điểm cuối mạng nào thay đổi, bạn chỉ cần gửi bản cập nhật tới EndpointSlice chứa tối đa 100 nhóm. Tất cả các nhóm khác trong mạng vẫn còn nguyên.

Bây giờ, hãy cùng tìm hiểu cách tạo Kubernetes EndpointSlice.



EndpointSlices được tạo trong Kubernetes như thế nào?

Kubernetes EndpointSlices là giải pháp thay thế tốt nhất cho một điểm cuối duy nhất trong cụm Kubernetes. Nó không chỉ giúp bạn theo dõi tất cả các điểm cuối mạng một cách dễ dàng và hiệu quả mà còn mang lại hiệu suất tốt hơn so với một điểm cuối duy nhất. Nó cũng cho thấy lưu lượng mạng thấp hơn trong khi cung cấp độ tin cậy mở rộng. Ngoài ra, việc sử dụng nhiều EndpointSlice cho phép bạn giảm bớt sức lao động trên mặt phẳng điều khiển và các nút trong cụm Kubernetes.

Bạn có thể có các bước cho phép bạn tìm hiểu cách tạo EndpointSlices trong cụm Kubernetes trong các ví dụ sau.

Bước 1: Bắt đầu cụm Minikube

Bước đầu tiên và quan trọng nhất là đảm bảo rằng cụm minikube đang hoạt động. Cụm minikube không hoạt động sẽ không cho phép bạn thực hiện bất kỳ công việc nào trong môi trường Kubernetes, vì vậy hãy đảm bảo cụm đó đang ở chế độ hoạt động. Để đảm bảo rằng cụm minikube đang hoạt động, hãy sử dụng lệnh sau:

> bắt đầu minikube

Nếu cụm minikube của bạn chưa bắt đầu sớm hơn hoặc nếu nó đang ở chế độ ngủ, thì lệnh này sẽ đánh thức nó và khởi động nó. Bây giờ, bạn có một cụm minikube đang hoạt động. Bạn đã sẵn sàng tạo EndpointSlice trong môi trường Kubernetes của mình.

Bước 2: Tạo Triển khai với Tệp YAML

Tệp YAML được sử dụng phổ biến nhất trong Kubernetes để tạo triển khai. Bạn có thể sử dụng tệp YAML triển khai có sẵn hoặc bạn có thể tạo tệp mới bằng lệnh sau:

> điểm cuối nano.yaml

Điều này tạo ra một tệp YAML mới có tên là “endpoint.yaml”, nơi bạn có thể lưu định nghĩa triển khai cho cấu hình. Tham khảo định nghĩa triển khai trong ảnh chụp màn hình sau:

Bước 3: Tạo EndpointSlice bằng tệp YAML

Bây giờ chúng ta có một tệp YAML chứa định nghĩa triển khai, chúng ta sử dụng nó để tạo EndpointSlices trong cụm Kubernetes của chúng ta. Chúng ta cần triển khai tệp cấu hình để có thể có các EndpointSlice trong cụm Kubernetes. Chúng tôi sử dụng lệnh sau để triển khai tệp cấu hình:

> kubectl tạo -f endpoint.yaml

Trong môi trường Kubernetes, các tài nguyên được tạo bằng cách sử dụng lệnh “kubectl create”. Do đó, chúng tôi sử dụng lệnh “kubectl create” để tạo EndpointSlices từ tệp cấu hình YAML.

Phần kết luận

Chúng tôi đã khám phá EndpointSlices trong môi trường Kubernetes. EndpointSlice trong Kubernetes là một đối tượng được sử dụng để theo dõi tất cả các điểm cuối mạng trong cụm Kubernetes. Đây là giải pháp thay thế tốt nhất cho một Điểm cuối lớn và duy nhất trong cụm Kubernetes vì ​​nó cho phép các tùy chọn khả năng mở rộng và khả năng mở rộng tốt hơn. Các EndpointSlice này cho phép cụm Kubernetes mang lại hiệu suất tốt hơn bằng cách đặt ít nhân công hơn trên các nút và mặt phẳng điều khiển. Với sự trợ giúp của một ví dụ, chúng ta đã học cách tạo EndpointSlices trong cụm Kubernetes.