我必须手动在 MS Azure 中创建一个 Kubernetes 集群,而不是使用 AKS。所以:
- 我在一个可用性集中创建了 2 个 VM:一个用于 k8s 主节点,第二个用于 k8s 节点。
- 我创建了外部负载均衡器并将 2 个虚拟机添加到后端池。
- 我已经使用 kubespray 创建了 k8s 集群。
我创建了部署和负载平衡器服务:
apiVersion: apps/v1beta1 kind: Deployment metadata: name: wrapper spec: replicas: 2 template: metadata: labels: app: wrapper spec: containers: - name: wrapper image: wrapper:latest ports: - containerPort: 8080 name: wrapper --- apiVersion: v1 kind: Service metadata: name: wrapper spec: loadBalancerIP: <azure_loadbalancer_public_ip> type: LoadBalancer ports: - port: 8080 selector: app: wrapper
但 LoadBalancer 服务 External-IP 始终处于挂起状态:
kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP
wrapper LoadBalancer 10.233.38.7 <pending>
此外,telnet azure_loadbalancer_public_ip 不起作用。我尝试使用 NodePort 而不是 LoadBalancer,但在这种情况下,我在 k8s 主节点和 k8s 节点上有两个端点用于我的服务。
我想要的是一个入口点:azure_loadbalancer_public_ip
,即平衡集群中所有节点之间的流量。
您能否帮我理解我做错了什么,是否可以在 Kubernetes 中将 Azure 外部负载均衡器与 LoadBalancer 服务“绑定”?