![](/img/trans.png)
[英]Kubernetes ingress service should be LoadBalancer or NodePort
[英]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.