kubernetes的服务发现(二)

如前面的文章我们说了,kubernetes的服务发现是服务端发现模式。它有一个服务注册中心,使用DNS作为服务的注册表。每个集群都会运行一个DNS服务,默认是CoreDNS服务。每个服务都会在这个DNS中注册。注册的大致过程:
1、向kube-apiserver提交一个新服务对象的定义
2、创建服务对象,并分配它一个ClusterIP,保存服务对象数据到etcd中
3、DNS服务监听kube-apiserver,一旦有新服务对象创建就创建一个从服务对象名称映射到ClusterIP的域名记录。服务就是不需要主动去DNS中注册,靠DNS的控制器就能完成服务的自动注册。

一旦注册完成后,服务对象后面的Pod列表就会被更新。服务对象中的label selector字段与选择器中定义的标签相匹配的Pod就会纳入当前服务对象的Pod列表中。服务对象的选择控制器会持续扫描和服务对象的标签相匹配的Pod,然后更新到EndPoint对象中。

在kubernetes中,Pod列表对应一个EndPoint对象,这个对象负责保存一个和服务标签选择器相配匹的Pod列表。

每个Pod都要知道集群DNS服务地址,Pod容器的/etc/resolv.conf文件都被配置为使用集群的DNS进行解析。

在kubernetes中的DNS服务查询过程如下:
1、调用者向DNS服务发起域名(服务名称)查询,如果本地没有缓存就会被提交到DNS服务,DNS服务返回对应的ClusterIP。ClusterIP是服务对象的IP地址,并不是具体提供服务的Pod的IP地址。
2、通过返回的ClusterIP访问对应的Pod。kubernetes的每个节点(Node)上都有一个kube-proxy代理服务,这个代理会通过服务对象和Pod的对应关系创建iptables或IPVS路由规则,节点Node会基于这些规则将请求转发到具体的Pod上。

顺便提一下服务网格中边车代理(sidecar proxy),流量会首先被这个代理劫持,这是通过修改iptables路由规则来做到这一点的。其次服务网格也会监听集群内服务对象的变化情况,从而获得最的服务地址。最后一点是关于负载均衡,服务网络是基于服务对象而不是基于Pod的。它给服务对象前加上一层负载均衡,这样才能实现基于服务层面的流量管理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
kubernetes-learning.pdf,网盘文件永久链接 ├ 一、课程介绍 │ └ 11.课程介绍.mp4 ├ 七、深入理解Pod │ │ 18.YAML 文件.mp4 │ │ 19.静态 Pod.mp4 │ │ 20.Pod Hook.mp4 │ │ 21.Pod 的健康检查.mp4 │ └ 22.初始化容器.mp4 ├ 三、Docker三架马车 │ │ 10.Docker Swarm.mp4 │ │ 8.Docker Compose.mp4 │ └ 9.Docker Machine.mp4 ├ 九、持久化存储 │ │ 35.PV 的使用.mp4 │ │ 36.PVC 的使用.mp4 │ └ 37.StorageClass 的使用.mp4 ├ 、Docker基础 │ │ 2.Docker 简介与安装.mp4 │ │ 3.Docker 基本命令.mp4 │ │ 4.Dockerfile 基本用法.mp4 │ │ 5.Docker 私有仓库.mp4 │ │ 6.数据共享与持久化.mp4 │ └ 7.Docker 网络模式.mp4 ├ 五、Kubernetes基础 │ │ 14.Kubernetes 初体验.mp4 │ └ 15.基本概念和组件.mp4 ├ 八、常用资源对象 │ │ 23.Replication Controller 与 Replica Set.mp4 │ │ 24.Deployment 的使用.mp4 │ │ 25.Pod 自动扩缩容.mp4 │ │ 26.Job 和 CronJob 的使用.mp4 │ │ 27.Service 的使用.mp4 │ │ 28.ConfigMap 的使用.mp4 │ │ 29.Secret 的使用.mp4 │ │ 30.RBAC 的使用(1).mp4 │ │ 31.RBAC 的使用(2).mp4 │ │ 32.WordPress 部署示例(1).mp4 │ │ 33.WordPress 部署示例(2).mp4 │ └ 34.DaemonSet 与 StatefulSet 的使用.mp4 ├ 六、集群环境搭建 │ │ 16.使用 Kubeadm 搭建集群环境.mp4 │ └ 17.Dashboard 插件安装.mp4 ├ 十、服务发现 │ │ 38.集群内部服务发现-kubedns.mp4 │ │ 39.traefik 的安装使用.mp4 │ └ 40.Ingress TLS 与 PATH 使用.mp4 ├ 十一、Helm包管理工具 │ │ 41.Helm 的安装使用.mp4 │ │ 42.Helm 的基本使用.mp4 │ │ 43.Helm 模板之内置函数和 Values.mp4 │ │ 44.Helm 模板之模板函数与管道.mp4 │ │ 45.Helm 模板之控制流程.mp4 │ │ 46.Helm 模板之命名模板.mp4 │ │ 47.Helm 模板之其他注意事项.mp4 │ └ 48.Helm Hooks 的使用.mp4 ├ 十三、集群监控 │ │ 52.手动安装 Prometheus.mp4 │ │ 53.Prometheus 安装错误排查.mp4 │ │ 54.监控 Kubernetes 集群应用.mp4 │ │ 55.node-exporter 的安装使用.mp4 │ │ 56.Prometheus 自动发现 K8S 节点.mp4 │ │ 57.Kubernetes 常用资源对象监控.mp4 │ │ 58.Grafana 的安装使用.mp4 │ │ 59.Grafana 的插件和监控.mp4 │ │ 60.AlertManager 的安装使用.mp4 │ │ 61.AlertManager 结合钉钉的报警.mp4 │ │ 62.Prometheus Operator 的安装使用.mp4 │ │ 63.自定义 Prometheus Operator 监控.mp4 │ │ 64.自定义 Prometheus Operator 报警.mp4 │ └ 65.Prometheus Operator 高级配置.mp4 ├ 十、调度器 │ │ 49.调度器解析.mp4 │ │ 50.节点亲和性.mp4 │ └ 51.Pod 亲和性与反亲和性以及污点和容忍.mp4 ├ 十五、CICD │ 69.动态 Jenkins Slave.mp4 │ 70.Jenkins Pipeline 部署 K8S 应用.mp4 │ 71.Jenkins Blue Ocean 的使用.mp4 │ 72.Harbor.........

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值