在Kubernetes中,负载均衡通常由服务对象来实现。你可以使用Service资源来暴露一个容器(或一组容器),并且提供负载均衡功能。

以下是一个简单的服务定义示例,它使用了Cluster内部负载均衡器实现(也就是说,它不暴露给外部网络,只在集群内部使用):

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 9376

在这个例子中,my-service 服务将会将进入的流量均衡到标签为app=my-app的Pod上,这些Pod的目标端口是9376。

如果你需要一个外部负载均衡器,你可以设置type: LoadBalancer,这将依赖于你的云提供商,但大多数云服务提供商都支持这种类型的服务。

apiVersion: v1
kind: Service
metadata:
  name: my-loadbalancer
spec:
  type: LoadBalancer
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 9376

在这个例子中,Kubernetes将为你的服务设置一个外部可访问的负载均衡器,你可以通过服务状态中的LoadBalancer Ingress字段找到它的IP地址。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐