Điều đang xảy ra là bạn đang hiển thị phiên bản Redis của mình với NodePort. Kubernetes dự trữ một phạm vi rất cụ thể của các cổng mạng được đánh số cao cho NodePorts để tránh xung đột với các cổng thường được sử dụng như 22 hoặc trong trường hợp này là 6379 như Redis.
Khi bạn chạy kubectl get svc
dịch vụ được trả về cho biết rằng Redis đang được chuyển tiếp cổng tới máy chủ lưu trữ trên cổng 32649
. Do đó, khi bạn thực hiện nỗ lực kết nối của mình với Redis, bạn nên sử dụng cổng này thay vì 6379. (Đồng thời đảm bảo rằng Tường lửa và cấu trúc liên kết mạng của bạn cũng được định cấu hình đúng cách).
Vì vậy, nơi nào chúng ta đi từ đây? Vâng, thật khó đối với tôi. Tôi thiếu thông tin để cho biết cả kết nối máy khách của bạn bắt nguồn từ đâu và cụm của bạn đang chạy ở đâu. Trong trường hợp khách hàng của bạn nằm trong cụm của bạn (AKA một Pod khác), bạn nên xem xét việc cung cấp Dịch vụ ClusterIP thay vì Dịch vụ NodePort.
Trong trường hợp khách hàng của bạn ở bên ngoài cụm của bạn, lời khuyên của tôi dành cho bạn là hãy xem xét cách cung cấp các loại dịch vụ LoadBalancer và tài nguyên Ingress trong Kubernetes.
Điều này sẽ cho phép bạn tạo ra các IP chuyên dụng. Từ đó bạn có thể phục vụ ứng dụng của mình trên bất kỳ cổng, tên máy chủ hoặc thư mục con nào mà không gặp bất kỳ sự cố nào. Tuy nhiên, để làm điều đó, bạn sẽ cần phải cài đặt cả LoadBalancer và Ingress Controller vì Máy chủ Kubernetes API đi kèm cả hai.
Nếu bạn đang sử dụng Nhà cung cấp đám mây thì có khả năng là bạn đã có Bộ điều khiển LoadBalancer. Chỉ cần yêu cầu một và sau đó kubectl get svc
và xem liệu nó có bao giờ tăng từ trạng thái Đang chờ xử lý hay không. Nếu bạn đang hoạt động trên kim loại trần, bạn có thể sử dụng bộ cân bằng tải vật lý như F5 Big IP. Hoặc bạn có thể sử dụng bộ điều khiển Cân bằng tải ảo như MetalLB.
Hai Bộ điều khiển xâm nhập phổ biến là NGINX và Istio. Bộ điều khiển NGINX xử lý riêng với quản lý xâm nhập trong khi Istio giải quyết vấn đề đó cũng như mạng có cấu hình cao và bảo mật nâng cao.
Hãy cho tôi biết nếu bạn cần thêm thông tin hoặc trợ giúp về câu hỏi này. Luôn sẵn lòng giúp đỡ!