1 概念

定义一组Pod的访问规则。

1.1 存在的意义

  1. 防止Pod失联(服务发现)
  2. 定义一组Pod的访问策略(负载均衡)

2 Pod和Service的关系

根据label和selector建立关联。

通过service实现Pod的负载均衡。

3 常用的Service类型

3.1 ClusterIP

集群内部使用。

  1. // 1 导出
  2. kubectl expose deployment web --target-port=80 --name=web1 -o yaml > web2.yaml
  3. // 2 执行yaml文件
  4. kubectl apply -f web2.yaml
  5. // 3 查看svc
  6. kubectl get svc
  7. // 总结
  8. // 当不指定service type时,默认使用ClusterIP类型的service

3.2 NodePort

对外访问应用时使用。

  1. // 1 修改web2.yaml
  2. vi web2.yaml
  3. // 2 修改type 为NodePort
  4. type: NodePort
  5. // 3 执行yaml文件
  6. kubectl apply -f web2.yaml

3.3 LoadBalancer

对外访问应用使用,适用于共有云

一般的,node内网部署应用,外网一般不能访问到的。

  • 找到一台可以镜像外网访问机器,安装nginx反向代理
  • 手动把可以访问的节点添加到nginx里面

LoadBalancer:公有云,把负载均衡,控制器