首页 运维干货k8s之Service资源

k8s之Service资源

运维派隶属马哥教育旗下专业运维社区,是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai
领取学习更多免费Linux云计算、Python、Docker、K8s教程关注公众号:马哥linux运维

Service资源是为动态管理的Pod对象添加一个固定访问入口。

k8s之Service资源插图

Service为四层调度器

service通过标签选择器关联至拥有相关标签的Pod对象

客户端向Service进行请求,而非目标Pod对象,当Service资源变动时,有kube-proxy控制器将规则应用至本机iptables或者ipvs规则。

而kube-proxy为DaemonSet 控制器将会在集群中每个节点运行一个Pod或者守护进程
如果需要转换ipvs规则,则需要手动加载ipvs模块进入内核

iptables代理模式,对于每个Service对象,kube-proxy会创建iptables规则直接捕获到达cluster ip和Port流量,并将其重定向至当前Service对象的后端Pod资源,对于每个Endpoint对象,Service资源会为其创建iptables规则并关联

ipvs代理模式 kube-proxy跟踪API server上 Service和Endpoints(ip+port)对象变动,来调用netlink接口创建ipvs规则,并确保于API server中变动同步,于iptables规则不同之处仅在处于其请求流量的调度功能有ipvs实现,余下的其他功仍然由iptables完成

servcie资源定义:

svc类型

clusterIP:为一个svc分配一个当前集群内的动态地址,客户端pod对象访问服务的Pod对象时不会进行源地址转换,且不会被外部地址访问,只能在集群内部被访问。

NodePort:对于某svc来说会在每个节点生成一个ipvs规则打开节点端口,映射至svc ip的端口上。

还可以手动创建endpoints资源将ip地址指向外部。将名称命名为svc相同时即可

k8s之Service资源插图(1)

在线修改configmap文件,使其加载ipvs规则

k8s之Service资源插图(2)

生效之后的pod会生成ipvs规则。

Ingress资源,7层代理|调度

标准的api对象,管理外部请求到内部流量。协议为http,仅用域定义流量转发和调度的通用格式的配置信息,它们需要转换为特定的具有http协议转发和调度功能的应用程序的配置文件,并由相应的应用程序生效,相应的配置后完成流量转发

部署svc使其外部网络能够访问至ingress

k8s之Service资源插图(3)
k8s之Service资源插图(4)

创建后端pod,并为pod指定svc资源

创建ingress资源,为之前创建的ingress-nginx这个程序提供ingress配置。

k8s之Service资源插图(5)

创建成功,会自动关联至myapp此svc,且会绑定后端资源

k8s之Service资源插图(6)

此时直接访问宿主机即可访问后端资源

使用https访问

k8s之Service资源插图(7)

创建完成

k8s之Service资源插图(8)
k8s之Service资源插图(9)
k8s之Service资源插图(10)

原文来自:http://dwz.date/caJN
作者: woaiyitiaochai

本文链接:http://www.yunweipai.com/37039.html

网友评论comments

发表评论

电子邮件地址不会被公开。

暂无评论

Copyright © 2012-2020 YUNWEIPAI.COM - 运维派
扫二维码
扫二维码
返回顶部