使用 Kubernetes 实现负载均衡,可以通过 Kubernetes 的内置服务(Service)资源,配合负载均衡器(如云平台提供的负载均衡器或 Ingress 控制器)来完成。以下是详细的步骤和调优案例。
一、Kubernetes 负载均衡的基本概念
-
ClusterIP(默认类型)
只能在集群内部访问,分发到 Pod 的流量通过 IPtables 或 IPVS 转发。 -
NodePort
通过每个节点的固定端口将流量暴露给外部,适合简单的开发或测试环境。 -
LoadBalancer
在云平台中使用负载均衡服务,将流量从外部分发到节点。 -
Ingress
提供基于域名和路径的 HTTP/HTTPS 负载均衡。
二、实现负载均衡的步骤
1. 创建 Deployment
一个 Deployment 管理 Pod 副本,确保应用具有高可用性。
示例:运行一个 Nginx 服务的 Deployment。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3 # 创建三个副本
selector:
matchLabels:
app: nginx
templ