Dải IP hoặc IP công cộng ổn định cho các kết nối ra trong GKE


20

Tôi sử dụng Google Kubernetes Engine để chạy theo nhóm yêu cầu. Mỗi nhóm được hiển thị công khai trên internet bằng cách sử dụng dịch vụ gật đầu.

Tôi đang tìm cách trong GKE để có được một IP hoặc một dải IP cho các kết nối ra ngoài, để đưa chúng cho API của bên thứ ba để đưa chúng vào danh sách trắng.

IP nút GKE không thể quản lý được khi các nút tự động phát hiện hoặc khi tôi nâng cấp chúng. Tôi cần một cách để duy trì một IP bên ngoài nhất quán.

Tôi đã thử sử dụng Cổng NAT đơn giản cho các nút Kubernetes (Sử dụng ví dụ từ đây ) và trong khi tuyến này kết nối các kết nối ra tới Cổng NAT, nó sẽ phá vỡ lưu lượng truy cập đến các nhóm (dịch vụ Nodeport) vì chúng bị mất tại Cổng NAT.

  • Có phạm vi IP mặc định cho khu vực đám mây google mà tôi có thể cung cấp cho bên thứ ba để đưa vào danh sách trắng (hoặc)

  • Nếu GKE cung cấp một cách để chọn các IP bên ngoài nút từ danh sách dành riêng của IP tĩnh (hoặc)

  • Có cách nào khác để thực hiện việc có một IP tĩnh hoặc một dải IP đại diện cho lưu lượng truy cập đi từ các nhóm không

Tôi đã tìm thấy những câu hỏi tương tự như thế này , nhưng chúng không giải quyết được vấn đề của tôi vì các vỏ nên có thể kết nối bên ngoài, nó sẽ bị vỡ khi sử dụng NAT.

Câu trả lời:


6

Google Cloud hiện cung cấp dịch vụ NAT Gateway được quản lý - Cloud NAT .

Cổng này có thể được sử dụng với cụm GKE, cung cấp IP đầu ra công cộng ổn định cho tất cả các nhóm bên trong nó, cho phép chúng được các nhà cung cấp dịch vụ bên thứ ba đưa vào danh sách trắng.

Việc triển khai ví dụ để sử dụng Cloud NAT với GKE được cung cấp tại đây - https://cloud.google.com/nat/docs/gke-example


Liệu cụm phải được riêng tư?
Gajus

3
Vâng, cụm phải là riêng tư, nhưng chủ có thể được công khai. Nếu bất kỳ dịch vụ nào của bạn cũng cần được công khai, chúng có thể bị lộ bởi một bộ cân bằng tải.
Parag

@Parag Có bắt buộc cụm phải ở chế độ riêng tư không? Có cách nào không, tôi có thể sử dụng nếu IP Node được công khai.
Suhas Chikkanna

1
@SuhasChikkanna Với CloudNAT không. Nếu bạn muốn các nút có IP bên ngoài nhưng cũng muốn có một IP bên ngoài, bạn có thể tạo cá thể cổng NAT của riêng mình bằng Squid và có định tuyến có điều kiện, sẽ định tuyến trực tiếp các máy chủ nội bộ của bạn đến các phiên bản, nhưng bất kỳ lưu lượng truy cập nào từ bên ngoài đều xuất hiện thông qua NAT. Điều này sẽ cung cấp cho người dùng của bạn một IP bên ngoài duy nhất, đồng thời làm cho các nút của bạn có thể truy cập được vào các nguồn IP được chọn.
Parag

@Parag Nghe hay đấy! Chắc chắn sẽ thử điều đó. Cảm ơn rất nhiều :)
Suhas Chikkanna

1

Bạn có thể thử giải pháp này:

https://cloud.google.com/solutions/USE-a-nat-gateway-with-kubernetes-engine

Trong các trường hợp thông thường, các nút Google Kubernetes Engine định tuyến tất cả lưu lượng truy cập đi qua cổng internet được liên kết với cụm nút của chúng. Lần lượt, kết nối cổng internet được xác định bởi mạng Compute Engine được liên kết với cụm nút. Mỗi nút trong cụm có một địa chỉ IP bên ngoài phù du. Khi các nút được tạo và hủy trong quá trình tự động hóa, địa chỉ IP của nút mới được phân bổ tự động.

Các hành vi cổng mặc định hoạt động tốt trong các trường hợp bình thường. Tuy nhiên, bạn có thể muốn sửa đổi cách phân bổ địa chỉ IP bên ngoài phù hợp để:

  • Cung cấp dịch vụ của bên thứ ba với một địa chỉ IP bên ngoài nhất quán.
  • Giám sát và lọc lưu lượng truy cập ra khỏi cụm Google Kubernetes Engine.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.