簡體   English   中英

kubernetes:帶有節點端口的負載均衡器服務

[英]kubernetes: loadbalancer service with a nodeport

我有一個 LoadBalancer 服務,它在集群外公開 3300 端口。 我想為內部通信打開一個新端口,以便其他 pod 可以與此服務通信,但此端口不應暴露在集群外部。
基本上,通信如下所示:

                                   my-svc:3301
    pod/my-app  <--- svc/my-svc  <------------- pod/my-new-app
                      ^
                      | ext-ip:3300
                      |
                   outside_world
apiVersion: v1
kind: Service
metadata:
  name: my-svc
spec:
  type: LoadBalancer
  ports:
  - name: my-port
    protocol: "TCP"
    port: 3300
    targetPort: 3300
  selector:
    app: my-app

有沒有辦法將新端口包含在此服務本身中? 我是否必須創建另一個 NodePort 類型的服務?

如果“內部”和“外部”通信路徑使用不同的端口,則需要單獨的(ClusterIP)服務。 沒有辦法說您希望服務創建 LoadBalancer(或 NodePort),但只能用於某些服務端口。

如果兩者都可以使用相同的端口,那么您只需將其他 pod 指向http://my-svc:3300 即使它是一個 LoadBalancer(或 NodePort)服務,也可以使用它的name:port:來調用它,就像 ClusterIP 服務一樣。

如另一個答案所述,使用內部通信所需的端口創建 ClusterIP(默認服務類型)類型的新服務。

apiVersion: v1
kind: Service
metadata:
  name: my-svc-internal
spec:
  type: ClusterIP
  ports:
  - name: my-port
    protocol: "TCP"
    port: 3301
    targetPort: 3301
  selector:
    app: my-app

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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