service 四种类型
clusterIp
NodePort
LoadBalancer
ExternalName是别名

service是实现负载均衡的一个对象通过kube-proxy创建ipvs 或者是iptables创建的规则

apiVersion: v1
kind: Service
metadata:name: my-nginx
spec:selector:app: nginxtype: NodePortports:- protocol: TCPport: 80

svc = service
svc 与 pod 看着是label相同而关联的,其实是通过endpoint进行关联的,endpoint controller 会监听pod对象以及svc对象,如果创建了svc对象且包含了selector,那么ep controller对象会创建一个同名的endpoint对象,按照selector去寻找是否有同样label的pod,看pod是否就绪,pod不就绪在notreadaddress ,就绪了addresses里,一个service对应多个pod,多对多的关系,关系由endpoint这个中间表来维护svc与pod关系,selector找到的所有的podip存放在address中的,ready的是存在address中,Notready的存在notreadaddress
不就绪的pod不接受流量。

endpoint 对象

apiVersion: v1
kind: Endpoints
metadata:annotations:endpoints.kubernetes.io/last-change-trigger-time: "2022-10-13T09:40:26Z"creationTimestamp: "2022-10-13T08:23:29Z"name: my-nginxnamespace: defaultresourceVersion: "14270"uid: 42940e41-d988-4637-b1e8-cf730baf8cd2
subsets:
- addresses:- ip: 172.22.189.199nodeName: izwz9b6ehvw4yhz5f1wa4uztargetRef:kind: Podname: nginx-deployment-66b6c48dd5-5f6rrnamespace: defaultresourceVersion: "14227"uid: 32336232-7012-461e-8537-167cfdbfd6e4- ip: 172.22.189.200nodeName: izwz9b6ehvw4yhz5f1wa4uztargetRef:kind: Podname: nginx-deployment-66b6c48dd5-pjtkdnamespace: defaultresourceVersion: "14268"uid: 2fdd93aa-2c88-49fb-8581-8d80dde47a75ports:- port: 80protocol: TCP

但是放某个service后的pod数很多的时候这个ep会特别的庞大,当pod变化会引起ep变化,然后会将变化推送到比如5000个节点上,所以出现了serviceSlice,将service进行切片,降低带宽压力


clusterIP是一个虚ip+port,通过负载均衡到podIP+targertport

root@iZwz9b6ehvw4yhz5f1wa4uZ:~/101/module8/service# kubectl get svc
NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1     <none>        443/TCP        4h11m

service Topology就近访问
k8s提供通用标签标记所处的物理位置,解决就近访问,增加访问速度

service Topology key

apiVersion: v1
kind: Service
metadata:name: nodelocal
spec:ports:- port: 80protocol: TCPname: httpselector:app: nginxtopologyKeys:- "kubernetes.io/hostname #定义客户与服务端在一台机器上

就近访问由近到远的配置

apiVersion: v1
kind: Service
metadata:name: prefer-nodelocal
spec:ports:- port: 80protocol: TCPname: httpselector:app: nginxtopologyKeys:- "kubernetes.io/hostname" #找本机有没有对应ep- "topology.kubernetes.io/zone"#没有到zone里找- "topology.kubernetes.io/region"#到region中找- "*"#更大区域

kube-proxy是运行在每台机器上运行的服务,它监听apiserver和ep和svc,通过iptables实现负载均衡(仅支持TCP UDP)
kube-proxy可运行在物理机上以daemonset 或者shistatic pod运行
kube-proxy支持 iptables 与 ipvs v1.8新增ipvs模式,采用增量式更新,并保证service更新期间不断开。

k8s service对象初识相关推荐

  1. k8s service服务发现详解:ipvs代理模式、服务类型

    目录 k8s服务发现Service 理解 Service的实现模型 userspace代理模式 iptables代理模式 ipvs代理模式 Service定义 Service配置清单重要字段 创建Cl ...

  2. k8s - Service ExternalName

    类型ExternalName 类型为 ExternalName 的服务将服务映射到 DNS 名称,而不是典型的选择器,例如 my-service 或者 cassandra. 您可以使用 spec.ex ...

  3. k8s三 | 使用YAML文件创建k8s资源对象

    参考资料:从Docker到Kubernetes进阶-阳明 目录标题 一.YAML基础 1. Maps 2. Lists 二.使用Yaml创建k8s资源对象 1. 使用Yaml创建创建Pod 2. 使用 ...

  4. CoreDNS与k8s资源对象详解-Day03

    1. K8s DNS 官网地址:https://github.com/coredns/coredns https://coredns.io/ https://coredns.io/plugins 1. ...

  5. Kubernetes Service 对象的使用

    我们前面的课程中学习了Pod的基本用法,我们也了解到Pod的生命是有限的,死亡过后不会复活了.我们后面学习到的RC和Deployment可以用来动态的创建和销毁Pod.尽管每个Pod都有自己的IP地址 ...

  6. 使用kubectl port-forward暴露minikube k8s service端口

    kubectl port-forward暴露minikube k8s service端口 第一种方式 minikube service hello-minikube 第二种方式: kubectl po ...

  7. android 获取服务对象,android 如何取得正在运行的service对象

    在写有关推送的代码,用的长连接的方式. 具体逻辑:登录时 启service,service中启一个线程,线程中构建一个CommunicateManegr对象,此对象里面有一个BlockingDeque ...

  8. Kubernetes系列之理解K8s Service的几种模式

    原文地址:Kubernetes系列之理解K8s Service的几种模式 今天给大家介绍下k8s的service的几种访问模式. 概述 我们知道pod的ip不是固定的,是根据所在宿主机的docker0 ...

  9. k8s object对象(pod controller)介绍

    参考https://www.imooc.com/learn/978 Name UID 1 集群中所有对象都通过name和UID明确标识 2 API中的对象访问的路径: /api/{version}/n ...

最新文章

  1. python中的模块如何学习_在python中学习队列模块(如何运行它)
  2. 远程连接MySQL慢的原因及解决
  3. Tomcat问题 无法启动
  4. 上传头像,layui上传图片
  5. [LeetCode]--160. Intersection of Two Linked Lists
  6. 【星球知识卡片】图像风格化与翻译都有哪些核心技术,如何对其长期深入学习...
  7. 【写实与风格化】技术概述
  8. HTML+CSS+JS实现 ❤️3D万花筒图片相册展示特效❤️
  9. 计算机考试忘记备注班级了,2012年计算机二级Access第二十五套上机试题及答案详解...
  10. java 常量池技术
  11. 波动方程的行波解(一)| 一维波动方程的通解和初值问题的达朗贝尔(d' Alembert)公式 | 偏微分方程(九)
  12. 台式计算机突然连接不到网络,电脑突然网络感叹号导致不能上网的解决方法
  13. 周浩正:写给编辑人的信 关于“编辑”
  14. 北大国际医院:基于互联网医疗的移动诊疗方案分析与设计
  15. C#版OPOS打印(基于北洋OPOS SDK二次开发包,支持EPSON和北洋、佳博、商祺等支持标准ESC/POS指令的POS打印机)
  16. 青春励志感悟人生语录
  17. 《Python 黑帽子》学习笔记 - 命令行选项和参数处理 - Day 4
  18. 风讯 4.0之前所有版本通杀拿SHELL 0day
  19. 超好用的Scihub文献下载工具又双叒叕更新了
  20. iOS 自动打包工具 ipa server,当然使用蒲公英分发平台更好

热门文章

  1. 网络安全发展前景如何?发展方向有哪些?
  2. 信号与系统-2-奇异函数平衡法
  3. 中值定理、不等式与零点问题
  4. 参加2009英雄会有感
  5. vue中引入其他网站页面
  6. 无线WLAN隧道转发模式下数据的封装以及转发过程
  7. i3 13100f参数 酷睿i313100f怎么样相当于什么水平
  8. 软件测试--芝麻开门
  9. 神奇的Css3(3) 多列布局
  10. 基本操作——word中怎样同一页中放入多张图片