Service 存在的意义是提供服务发现与负载均衡功能。
<br/>
**1. 服务发现**
```shell
# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE ...
tomcat9-dep01-776d959696-7vknf 1/1 Running 0 95m 10.244.2.16 k8s-node2 ...
tomcat9-dep01-776d959696-dg7sh 1/1 Running 0 95m 10.244.1.21 k8s-node1 ...
tomcat9-dep01-776d959696-l8znb 1/1 Running 0 95m 10.244.1.20 k8s-node1 ...
```
上面的 IP 列是每个 pod 的 ip 地址,它们都是唯一的。但是当 pod 回滚、更新时这些 ip 地址是会变的,这就无法访问到 pod 了。这时就需要用 Service 来做服务发现,如下图:
![](https://img.kancloud.cn/fe/46/fe46a9196cef6a655210db00e8b567af_1222x603.png)
每个 Pod 都会将自己更新后的 ip 注册到 Service 中,当想要访问 Pod 时,访问 Service 即可,Service 会将请求转发到对应的 pod 中。
<br/>
**2. 负载均衡**
![](https://img.kancloud.cn/8a/78/8a78318d3e93438b85c797db788d1e19_1230x453.png)
上图的 3 个 pod 提供的服务是一样的,利用 Service 可以将压力分摊到这些 pod 上,不至于导致一个 pod 压力过大。
****
参考文档:https://feisky.xyz/kubernetes-handbook/concepts/service.html
- K8s是什么
- K8s特点
- K8s功能
- 为什么用容器
- K8s集群搭建
- 1. 集群架构
- 2. 机器初始化
- 3. 安装Docker
- 4. 配置k8s镜像仓库
- 5. 安装k8s核心工具
- 6. 初始化主节点
- 7. node节点加入集群
- 8. 安装Pod网络插件
- 9. 测试k8s集群
- yaml资源文件
- yaml文件作用
- yaml文件编辑语法
- 资源清单描述方法
- 命令行工具kubectl
- kubectl是什么
- kubectl命令语法
- Pod
- Pod是什么
- Pod特征
- Pod定义
- Pod基本操作
- Pod分类
- Pod生命周期
- Pod重启策略
- 镜像拉取策略
- 资源限制
- 健康检查
- Label
- Namespace
- ReplicationController
- ReplicaSet
- Deployment
- HorizontalPodAutoscaler
- Service
- Service是什么
- 应用Service
- Ingress
- Ingress是什么
- 部署ingress-nginx
- Helm
- Helm是什么
- Volume
- Volume是什么
- NFS的使用
- PV与PVC
- PV与PVC是什么
- PV与PVC的使用
- ConfigMap
- ConfigMap是什么
- ConfigMap创建
- ConfigMap使用
- ConfigMap热更新
- 滚动更新Pod
- Secret
- Secret作用
- Secret类型