Kubernetes集群部署(8)——service

本文详细介绍了Kubernetes中的Service,包括ClusterIP、NodePort、Headless Service和LoadBalancer等类型,以及如何通过ipvsadm更改iptables规则。重点讲解了如何使Service能够从外部访问,如通过LoadBalancer类型分配公有IP或使用ExternalName实现域名映射。

1.什么是service

在这里插入图片描述

2.service的类型

2.1 clusterip类型

运行原先的service发现默认类型是clusterip:

在这里插入图片描述
运行一个pod2使其可以访问:
在这里插入图片描述

2.2 NodePort类型的service

更改其service类型
在这里插入图片描述
在这里插入图片描述
发现类型已更改:

在这里插入图片描述
发现server3和server4上分别开启了31069的端口
在这里插入图片描述
在这里插入图片描述
测试:
在这里插入图片描述

2.3.更改iptables规则的方式为ipvsadm

在这里插入图片描述
所有节点安装ipvsadm
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
发现生成了好多ip_vs的规则
在这里插入图片描述
修改IPVS模式
在这里插入图片描述
在这里插入图片描述
更新kube-proxy pod
为了更新可以将其删除再重新生成即可:
在这里插入图片描述
在这里插入图片描述
IPVS模式下,kube-proxy会在service创建后,在宿主机上添加一个虚拟网卡: kube-ipvs0,并分配service IP
ip addr查看:
在这里插入图片描述
kube-proxy通过linux的IPVS模块,以rr轮询方式调度service中的Pod:
在这里插入图片描述
可以直接访问
在这里插入图片描述
发现访问几次论调就发生几次
**加粗样式**
在这里插入图片描述
若增加副本则策略也会随之增加
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样可以直接访问域名,防止删除以后解析不到ip
在这里插入图片描述
在这里插入图片描述
虽然删除后ip变了但是域名不变可以继续访问
在这里插入图片描述

2.4.Headless Service “无头服务”

• Headless Service不需要分配一个VIP,而是直接以DNS记录的方式解析出被代理Pod 的IP地址。
• 域名格式:$(servicename).$(namespace).svc.cluster.local

在这里插入图片描述
在这里插入图片描述
虽然没有ip依然可以通过域名访问
在这里插入图片描述
在这里插入图片描述

Pod滚动更新后,依然可以解析
在这里插入图片描述
在这里插入图片描述
四个地址:
在这里插入图片描述

3. 外部访问service

从外部访问 Service 的第二种方式,适用于公有云上的 Kubernetes 服务。
这时 候,你可以指定一个 LoadBalancer 类型的 Service。 在service提交后,Kubernetes就会调用 CloudProvider 在公有云上为你创建
一个负载均衡服务,并且把被代理的 Pod 的 IP地址配置给负载均衡服务做 后端 LoadBalancer 类型的 Service

3.1 LoadBalancer 类型的 Service

在这里插入图片描述

在这里插入图片描述

3.2 ExternalName类型的服务器

保证虚拟机正常上网
• 从外部访问的第三种方式叫做ExternalName。
在这里插入图片描述
发现只是多了一个别名,依然可以访问域名:
在这里插入图片描述
在这里插入图片描述

3.3 分配公有ip的service

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以直接访问
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值