[英]Kubernetes pod redirect to the same port in another pod
我有一個帶有 php 映像的部署,該映像與 6379 端口中的 redis 部署連接。
問題是php應用連接在自己pod的主機127.0.0.1中,而redis在另一個pod中(並且有自己的ClusterIP服務)。
我無法更改應用程序代碼,因此我想將 php pod 的 6379 端口重定向到 redis 端口上的同一端口。
我怎么能做到這一點?
kubernetes 使用socat
從kubectl
進行端口轉發,所以如果他們非常信任它,那么你也可以信任它似乎是合理的。
將它放在與 php 容器一起運行的第二個容器中,以轉發模式運行socat
,並希望最好:
containers:
- name: my-php
# etc
- name: redis-hack
image: my-socat-container-image-or-whatever
command:
- socat
- TCP4-LISTEN:6379,fork
- TCP4:$(REDIS_SERVICE_HOST):$(REDIS_SERVICE_PORT)
# assuming, of course, your Redis ClusterIP service is named `redis`; adjust accordingly
由於所有 Pod 共享相同的網絡命名空間,因此第二個容器也將偵聽“127.0.0.1”
說了這么多,作為對你的情況的評論,引入這么多黑客來解決一個非常非常簡單的問題,即沒有將應用程序硬編碼“127.0.0.1”作為redis連接,這是一個可怕的情況主持人
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.