k8s-深入理解Service(为Pod提供负载均衡和发现)

一、Service存在的意义

二、Service的定义和创建

Pod与Service的关系

Service的定义和创建

三、Service使用NodePort对外暴露应用

四种类型,常用的三种:

指定Service的NodePort端口

在实际生产中,k8s的集群不会直接暴露在公网中,一般会在k8s集群前加一个负载均衡器,这个负载均衡器暴漏在公网。

四、Service负载均衡实现之iptables

Service代理模式

k8s默认使用iptables模式,如果要使用IPVS模式,需要单独启用IPVS模式,见下一小节。

查看iptables关于指定Service的负载均衡规则:

五、Service负载均衡实现之iptables

修改后,需要重新加载ConfigMap,有一个简单粗暴的方式,删除任一一个Pod,会自动重新加载ConfigMap。

查看ipvs规则,需要安装一个辅助工具

下面就是当前这个Pod设置Service暴露后,在IPVS的实际规则

rr - 轮询

实际上在宿主机上创建了一个虚拟网卡,用来接收内部流量请求

六、Service的DNS名称解析

创建一个临时的Pod,验证通过ServiceName访问Pod

正常解析到了,在程序代理里,可以使用ServiceName替换以前写的IP。

可以看到你请求的ServiceName,本质请求的是CoreDNS,CoreDNS保存有从K8s获得的A记录,然后返回真实服务IP。

七、iptables与ipvs对比

Iptables有性能衰减,k8s已将IPVS加入,IPVS性能非常稳定,建议使用IPVS。

相关推荐

  1. k8s负载均衡

    2024-02-06 07:46:01       14 阅读
  2. 如何查看k8sservice负载均衡策略

    2024-02-06 07:46:01       5 阅读
  3. brpc负载均衡load balance服务发现name servicing

    2024-02-06 07:46:01       31 阅读
  4. k8s学习-通过Service访问Pod

    2024-02-06 07:46:01       32 阅读

最近更新

  1. 使用tkinter 制作工作流ui

    2024-02-06 07:46:01       0 阅读
  2. postman工具介绍

    2024-02-06 07:46:01       0 阅读
  3. vue-路由自动化

    2024-02-06 07:46:01       1 阅读
  4. el-date-picker 扩展

    2024-02-06 07:46:01       1 阅读
  5. Go语言入门之变量、常量、指针以及数据类型

    2024-02-06 07:46:01       1 阅读
  6. Kotlin 处理livedata数据倒灌

    2024-02-06 07:46:01       1 阅读
  7. 针对vue3的render函数添加自定义指令

    2024-02-06 07:46:01       1 阅读
  8. Kotlin中的关键字

    2024-02-06 07:46:01       1 阅读
  9. Matlab 使用

    2024-02-06 07:46:01       1 阅读
  10. AI学习指南机器学习篇-层次聚类原理

    2024-02-06 07:46:01       1 阅读
  11. k8s-第一节-minikube

    2024-02-06 07:46:01       1 阅读

热门阅读

  1. zk集群--集群同步

    2024-02-06 07:46:01       28 阅读
  2. 设计模式(创建型模式)原型模式

    2024-02-06 07:46:01       30 阅读
  3. 系统架构设计师-22年-上午答案

    2024-02-06 07:46:01       25 阅读
  4. spring-boot-actuator 服务监控

    2024-02-06 07:46:01       28 阅读
  5. 汽车信息安全--SHE中的密钥管理(一)

    2024-02-06 07:46:01       28 阅读
  6. 汽车信息安全--SHE中的密钥管理(二)

    2024-02-06 07:46:01       31 阅读