簡體   English   中英

Kubernetes pod 重定向到另一個 pod 中的相同端口

[英]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 使用socatkubectl進行端口轉發,所以如果他們非常信任它,那么你也可以信任它似乎是合理的。

將它放在與 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM