k8s集群-7 service

工作负载的应用是如何暴露出去的 解决访问问题

Service可以看作是一组提供相同服务的Pod对外的访问接口。借助Service,应用可以方便地实现服务发现和负载均衡。
service默认只支持4层负载均衡能力,没有7层功能。(可以通过Ingress实现)
service的类型:
ClusterlP:默认值,k8s系统给service自动分配的虚拟IP,只能在集群内部访问。NodePort: 将Service通过指定的Node上的端口暴露给外部,访问任意一个NodelP:nodePort都将路由到ClusterIP.LoadBalancer:在 NodePort 的基础上,借助 cloud provider 创建一个外部的负载均衡器,并将请求转发到 :NodePort,此模式只能在云服务器上使用。ExternalName:将服务通过DNS CNAME记录方式转发到指定的域名(通过spec.externIName 设定)。

作用就是 不管在集群内还是集群外  都可以访问pod 上面的应用

并且对集群内的应用pod 自动发现和负载均衡

service默认支持四层负载均衡 七层需要 inggress 来支持

Service 是由 kube-proxy 组件,加上iptables 来共同实现的
kube-proxy 通过 iptables 处理 Service 的过程,需要在宿主机上设置相当多的iptables 规则,如果宿主机有大量的Pod,不断刷新iptables规则,会消耗大量的CPU资源。
IPVS模式的service,可以使K8s集群支持更多量级的Pod.

必须要有proxy 如果跨主机网络通信 还需要flannel 节点 然后在结合每个节点上的 iptables 从而再实现负载均衡

k8s集群-7 service_第1张图片

k8s集群-7 service_第2张图片k8s集群-7 service_第3张图片

默认类型是ClusterIP  不指定就是 CLusterIP

k8s集群-7 service_第4张图片

默认使用iptables 调度 iptables 算法是随机的    推荐使用 lvs 

k8s集群-7 service_第5张图片

ipvs 模式   LVS内核调度 算法更强大 性能更好

减少在刷 iptables 所带来的消耗

k8s集群-7 service_第6张图片

修改proxy配置

k8s集群-7 service_第7张图片k8s集群-7 service_第8张图片

重启pod

k8s集群-7 service_第9张图片k8s集群-7 service_第10张图片

切换ipvs模式后,kube-proxy会在宿主机上添加一个虚拟网卡:kube-ipvs0,并分配service IP

k8s集群-7 service_第11张图片

==============================

Nodeport

k8s集群-7 service_第12张图片k8s集群-7 service_第13张图片


nodeport在集群节点上绑定端口,一个端口对应一个服务

k8s集群-7 service_第14张图片

=============================

headless

k8s集群-7 service_第15张图片

headless模式不分配vip

k8s集群-7 service_第16张图片

这种类型也是 一种特殊的clusterIP 类型  cluserIp 仅限于集群内访问

headless通过svc名称访问,由集群内dns提供解析

k8s集群-7 service_第17张图片

集群内直接使用service名称访问

k8s集群-7 service_第18张图片

仅限于集群内

============================

从外部访问的第二种方式 适用于 k8S 服务

k8s集群-7 service_第19张图片

默认无法分配外部访问IP

k8s集群-7 service_第20张图片

LoadBalancer模式适用云平台,裸金属环境需要安装metallb提供支持

loadBlabcer -> nodeport -> clusterip -> pod

官网:https://metallb.universe.tf/installation/

metallb

k8s集群-7 service_第21张图片k8s集群-7 service_第22张图片

下载部署文件

k8s集群-7 service_第23张图片

修改文件中镜像地址,与harbor仓库路径保持一致

k8s集群-7 service_第24张图片k8s集群-7 service_第25张图片k8s集群-7 service_第26张图片

拉取镜像

k8s集群-7 service_第27张图片

打标签

上传镜像

k8s集群-7 service_第28张图片k8s集群-7 service_第29张图片

部署服务

k8s集群-7 service_第30张图片

配置分配地址段

k8s集群-7 service_第31张图片

k8s集群-7 service_第32张图片k8s集群-7 service_第33张图片k8s集群-7 service_第34张图片

你可能感兴趣的:(kubernetes,java,容器)