Cách định cấu hình IP bên ngoài dịch vụ từ chối trong Kubernetes

Cach Dinh Cau Hinh Ip Ben Ngoai Dich Vu Tu Choi Trong Kubernetes



Bạn có thể gặp sự cố khi thiết lập cụm Kubernetes khi bạn chỉ biết cách sử dụng NodePort để giúp dịch vụ Kubernetes của bạn có thể truy cập được qua Internet. Khi sử dụng loại dịch vụ NodePort, số cổng cao sẽ được chỉ định và bạn phải cho phép kết nối với các cổng đó trong quy tắc tường lửa của mình. Điều đó gây bất lợi cho cơ sở hạ tầng của bạn, đặc biệt nếu máy chủ có thể truy cập được qua Internet mở. Bạn có thể chỉ định một khối địa chỉ IP bên ngoài cụm với tư cách là quản trị viên cụm có thể truyền lưu lượng truy cập đến các dịch vụ ở đó. Đây chính xác là những gì chúng ta sẽ nói trong bài viết này: để tìm tất cả thông tin quan trọng về cách định cấu hình IP bên ngoài của dịch vụ từ chối trong Kubernetes.

Dịch vụ IP bên ngoài là gì?

Một trong các điểm cuối Dịch vụ sẽ nhận lưu lượng truy cập vào cụm bằng cách sử dụng IP bên ngoài (làm IP đích) và cổng Dịch vụ. Kubernetes không chịu trách nhiệm quản lý IP bên ngoài.







Đảm bảo IP nào được sử dụng để truy cập cụm Kubernetes là rất quan trọng trong tình huống này. Sử dụng loại dịch vụ IP bên ngoài, chúng tôi có thể liên kết dịch vụ với địa chỉ IP được sử dụng để truy cập cụm.



Việc mạng Kubernetes tương tác với mạng Lớp phủ là điều quan trọng để hiểu tình huống này. Điều này ngụ ý rằng bạn có thể truy cập thực tế mọi nút trong cụm sau khi bạn đến bất kỳ nút nào (nút chính hoặc nút công nhân).



Mạng được hiển thị theo cách này:






Cả Nút 1 và 2 trong sơ đồ đều có chung một địa chỉ IP. Pod thực tồn tại trên Nút 1 nhưng địa chỉ IP 1.2.3.6 được liên kết với dịch vụ Nginx trên Nút 1. Địa chỉ IP của Nút 1, 1.2.3.4, được liên kết với dịch vụ httpd và Pod thực của Nút 2 nằm ở đó.

Điều này có thể thực hiện được nhờ nền tảng của mạng Lớp phủ. Khi chúng tôi cuộn địa chỉ IP 1.2.3.4, dịch vụ httpd sẽ phản hồi; khi chúng tôi cuộn tròn 1.2.3.5, dịch vụ Nginx sẽ phản hồi.



Ưu điểm và nhược điểm của IP bên ngoài

Dưới đây là những ưu điểm và nhược điểm của IP bên ngoài:

Sẽ thuận lợi khi sử dụng IP bên ngoài vì:

    • IP của bạn hoàn toàn nằm trong tầm kiểm soát của bạn. Thay vì sử dụng ASN của nhà cung cấp đám mây, bạn có thể sử dụng IP thuộc về ASN của chính mình.

Hạn chế của IP bên ngoài bao gồm:

    • Thiết lập đơn giản mà chúng tôi sẽ thực hiện ngay bây giờ KHÔNG có sẵn. Điều này ngụ ý rằng nếu nút bị lỗi, dịch vụ sẽ không thể truy cập được nữa và bạn sẽ phải khắc phục sự cố theo cách thủ công.
    • Để xử lý các IP, cần có lao động đáng kể của con người. Vì các IP không được cấp phát động cho bạn nên bạn phải thực hiện thủ công.

Hành vi Từ chối/Cho phép Mặc định là gì?

Các ' cho phép mặc định biểu thị rằng tất cả lưu lượng được cho phép theo mặc định. Trừ khi được cho phép cụ thể, tất cả lưu lượng truy cập đều bị từ chối theo mặc định khi sử dụng cụm từ “ từ chối mặc định .” trừ khi chính sách mạng được chỉ định.

    • Tất cả lưu lượng truy cập đến và đi từ một nhóm đều được phép nếu không có chính sách mạng nào có hiệu lực đối với nhóm đó.
    • Nếu một hoặc nhiều chính sách mạng có hiệu lực đối với một nhóm loại đầu vào, thì chỉ lưu lượng truy cập đầu vào đó được các chính sách đó cho phép rõ ràng mới được phép.
    • Khi một hoặc nhiều chính sách mạng áp dụng cho một nhóm loại đầu ra, thì chỉ lưu lượng truy cập đầu ra được các chính sách đó cho phép mới được phép.

Cài đặt mặc định cho các loại điểm cuối khác (VM, giao diện máy chủ) là chặn lưu lượng. Chỉ lưu lượng truy cập được chính sách mạng cho phép cụ thể mới được phép, ngay cả khi không có chính sách mạng nào áp dụng cho điểm cuối.

Thực tiễn tốt nhất: Chính sách từ chối mặc định ngầm định

Bạn phải định cấu hình chính sách từ chối mặc định ngầm được tạo cho nhóm Kubernetes của mình. Điều này đảm bảo rằng lưu lượng truy cập không mong muốn sẽ tự động bị chặn. Hãy nhớ rằng các chính sách từ chối mặc định ngầm luôn có hiệu lực sau cùng; nếu bất kỳ chính sách nào khác cho phép lưu lượng truy cập, thì việc từ chối sẽ không áp dụng. Việc từ chối chỉ được thực hiện sau khi tất cả các chính sách khác đã được xem xét.

Làm cách nào để tạo Chính sách từ chối mặc định cho Kubernetes Pods?

Chúng tôi khuyên bạn nên sử dụng chính sách mạng toàn cầu ngay cả khi có thể sử dụng bất kỳ quy tắc nào sau đây để xây dựng chính sách từ chối mặc định cho nhóm Kubernetes. Chính sách mạng toàn cầu được áp dụng cho tất cả khối lượng công việc (VM và bộ chứa) trên tất cả các không gian tên và máy chủ. Chính sách mạng toàn cầu khuyến khích cách tiếp cận thận trọng đối với an ninh trong khi bảo vệ tài nguyên.

    • Bật mặc định để từ chối chính sách mạng toàn cầu, không đặt tên
    • Bật mặc định để từ chối chính sách mạng, đặt tên
    • Bật mặc định để từ chối chính sách Kubernetes, được đặt tên

Khối IP là gì?

Với điều này, các phạm vi IP CIDR cụ thể được chọn để được phép làm nguồn vào hoặc đích đi ra. Do IP Pod là tạm thời và không thể đoán trước, đây phải là IP bên ngoài của cụm.

IP nguồn hoặc đích của các gói phải thường xuyên được viết lại khi sử dụng các phương thức vào và ra của cụm. Tùy thuộc vào plugin mạng cụ thể (nhà cung cấp dịch vụ đám mây, triển khai dịch vụ, v.v.) được sử dụng, hành vi có thể thay đổi.

Điều này đúng với lối vào và nó có nghĩa là trong một số trường hợp, bạn phải lọc các gói đến dựa trên IP nguồn thực tế. Mặt khác, “IP nguồn” mà NetworkPolicy hoạt động có thể là IP của LoadBalancer hoặc thậm chí là nút của Pod, v.v.

Điều này cho thấy rằng các kết nối giữa các nhóm và IP dịch vụ được ghi lại thành IP bên ngoài của cụm có thể phải chịu các hạn chế dựa trên ipBlock về mặt đầu ra.

Chính sách mặc định là gì?

Theo mặc định, tất cả lưu lượng truy cập vào và ra đến và từ các nhóm trong một không gian tên đều được phép nếu không có kiểm soát nào cho không gian tên đó. Bạn có thể thay đổi hành vi mặc định của không gian tên bằng cách sử dụng các ví dụ sau.

Mặc định từ chối tất cả lưu lượng truy cập

Khi tạo Chính sách mạng chọn tất cả các nhóm nhưng không bao gồm bất kỳ lưu lượng truy cập đến nào đến các nhóm đó, bạn có thể tạo chính sách cách ly đầu vào “mặc định” và chính sách đó dành cho một không gian tên.


Điều này đảm bảo rằng tất cả các nhóm, bất kể có NetworkPolicy nào khác chọn chúng hay không, đều được cách ly để xâm nhập. Quy tắc này không áp dụng cho việc cách ly để thoát khỏi bất kỳ nhóm nào.

Mặc định từ chối tất cả lưu lượng đi ra

Khi bạn tạo NetworkPolicy chọn tất cả các nhóm nhưng cấm lưu lượng truy cập đi ra từ các nhóm đó, bạn có thể xây dựng chính sách cách ly đầu ra “mặc định” và chính sách đó cũng dành cho một không gian tên.

Phần kết luận

Hướng dẫn này là tất cả về việc sử dụng DenyServiceExternalIPs. Chúng tôi cũng đã thiết kế một biểu diễn dạng biểu đồ để giúp người dùng hiểu rằng nó đang hoạt động. Chúng tôi cũng đã cung cấp các cấu hình mẫu.