Nếu bạn muốn hai thùng chứa được chia sẻ cùng một máy vật lý và tận dụng lợi thế của loopback để liên lạc nhanh, thì tốt hơn bạn nên định nghĩa chúng với nhau thành một Pod đơn với hai container.
Nếu hai container có nghĩa là trôi nổi trên một cụm lớn hơn và được kết hợp lỏng lẻo hơn, thì tôi khuyên bạn nên tận dụng lợi thế của dịch vụ xây dựng trong Kubernetes (dưới OpenShift) và sử dụng nó cho phát hiện thích hợp.
Dịch vụ được ghi nhận tại https://kubernetes.io/docs/concepts/services-networking/service/, và cùng với một dịch vụ DNS nội bộ (nếu được thực hiện - phổ biến ở Kubernetes 1.4 và mới hơn) mà họ cung cấp một phương tiện để cho Kubernetes quản lý nơi mà mọi thứ là, cập nhật một mục DNS nội bộ theo hình thức <servicename>.<namespace>.svc.cluster.local
. Vì vậy, ví dụ, nếu bạn thiết lập một Pod với một dịch vụ có tên là "backend" trong không gian tên mặc định, Pod còn lại có thể tham chiếu nó là backend.default.svc.cluster.local
. Tài liệu Kubernetes về phần DNS này có sẵn tại https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
Điều này cũng tránh được biến chứng "hostnetwork = true" và cho phép OpenShift (hoặc Kubernetes) quản lý mạng.
Tại sao bạn cần thiết lập hostnetwork thành true ngay từ đầu? Bất kỳ nhóm nào trong cùng một dự án sẽ có thể nói chuyện với bất kỳ nhóm nào khác trong cùng một dự án theo mặc định, ngay cả khi trên các nút khác nhau. Điều này là do mỗi nhóm có địa chỉ IP riêng và quyền truy cập của nó sẽ được thiết lập để cho phép kết nối. –
Bạn thực sự không nên sử dụng IP nút làm cơ chế địa chỉ cho các nhóm khác. Sử dụng tên của nhóm làm tên máy chủ hoặc vẫn sử dụng tên dịch vụ làm tên máy chủ và tin cậy định tuyến nội bộ để gửi tên đó tới một trong các nhóm cho dịch vụ đó. IOW, không cần phải sử dụng IP anyway vì có một DNS nội bộ ánh xạ các tên pod và tên dịch vụ cho các IP cho bạn. –
@Graham Dumpleton Tôi cần sử dụng hostnetwork cho thiết lập cụm REDIS. REDIS yêu cầu nó để làm việc trên Docker. Thats những gì họ nhà nước trong tài liệu chính thức của cụm REDIS. – dplesa