在kubernetes中使用externalIP作为带有网络负载均衡器的本地服务

在kubernetes中使用externalIP作为带有网络负载均衡器的本地服务,kubernetes,Kubernetes,我公司的内部部署中有3个节点k8集群,运行端口58047上公开的TCP侦听器 我们有一个网络负载均衡器,它可以在这个节点上运行 我可以将端口公开给每个节点中的主机,这样NLB将负责,或者我应该创建一个服务,公开NLB中指定的单个外部ip 哪种方法最好 NAME READY STATUS RESTARTS AGE pod/iothubdeployment-57bbb5f4d6-m62df 1/1 Run

我公司的内部部署中有3个节点k8集群,运行端口58047上公开的TCP侦听器

我们有一个网络负载均衡器,它可以在这个节点上运行

我可以将端口公开给每个节点中的主机,这样NLB将负责,或者我应该创建一个服务,公开NLB中指定的单个外部ip

哪种方法最好

NAME                                    READY   STATUS    RESTARTS   AGE
pod/iothubdeployment-57bbb5f4d6-m62df   1/1     Running   1          50m
pod/iothubdeployment-57bbb5f4d6-r9mzr   1/1     Running   1          50m
pod/iothubdeployment-57bbb5f4d6-w5dq4   1/1     Running   0          50m

NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   5d18h

NAME                               READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/iothubdeployment   3/3     3            3           56m

NAME                                          DESIRED   CURRENT   READY   AGE
replicaset.apps/iothubdeployment-57bbb5f4d6   3         3         3       50m
replicaset.apps/iothubdeployment-6b78b96dc5   0         0         0       56m 

看起来您正在直接尝试通过主机端口公开部署。不建议这样做:您应该创建一个服务,指导Kubernetes如何将部署公开给集群内外的其他工作负载

NodePort服务允许您正确地公开每个节点上的部署:然后可以将负载平衡器配置为连接到任何节点IP上的该端口

apiVersion: apps/v1 
kind: Deployment
metadata:
  name: iothubdeployment
spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 67%
  minReadySeconds: 5
  selector:
    matchLabels:
     app: iothub
  template:
    metadata:
      labels:
        app: iothub
        version: 1.1.0
    spec:
      containers:
        - name: iothubpod
          image: gitlab.dt.local:5555/cere-brum/iot_gateway/iot_hub/iot_hub:latest
          imagePullPolicy: Always
          ports:
          - containerPort: 58047
            hostPort: 58000
            protocol: TCP
      imagePullSecrets:
        - name: regcred