kubernetes&&基础学习3

Service

Service的概念

kubernetes Service定义了这样一种抽象:一个Pod的逻辑分组,一种可以访问它们的策略,通常称为微服务。
这一组Pod能够被Service访问到,通常是通过Label Selector
通过Label标签,监控一组Pod
在这里插入图片描述
Service能够提供负载均衡的能力,但是在使用上有以下的限制:

  • 只提供4层负载均衡能力,而没有7层功能,但有时我们可能需要更多的匹配规则来转发请求,这点上4层负载均衡是不支持的

Service的类型

Service在k8s中有以下四种类型:

  • ClusterIp : 默认类型,自动分配一个仅Cluster内部可以访问的虚拟IP
  • NodePort : 在ClusterIP 的基础上为每台机器上绑定一个端口,这样就可以通过NodeIP:NodePort来访问该服务
  • LoadBalancer :在NodePort的基础上,借助cloud provider创建一个外部负载均衡器,并将请求转发到NodeIP:NodePort
  • ExternalName : 把集群外部的服务引入到集群内部来,在集群内部直接使用,没有任何类型代理被创建,这只有kubernetes 1.7或更高版本的kube-dns才支持

在这里插入图片描述

VIP和Service代理

在这里插入图片描述

代理模式的分类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

# 查看所有svc信息
kubectl  get  svc

ClusterIP

在这里插入图片描述
在这里插入图片描述

实现过程

创建Deployment
在这里插入图片描述
为Deployment绑定svc
在这里插入图片描述

# 查询全部svc信息
kubectl  get  svc
# 查询ipvs信息
ipvsadm  -Ln
# 通过指定文件的方式删除对应的svc
kubectl  delete  -f  svc.yaml

Headless Service

在这里插入图片描述

NodePort

在这里插入图片描述
在这里插入图片描述

LoadBalancer

在这里插入图片描述

需要花钱

ExternalName

在这里插入图片描述
引入外部服务集群至服务内部,令内部服务可以使用外部负载集群。如引入mysql集群。

7层代理

在这里插入图片描述
在这里插入图片描述

部署Ingress-Nginx

# 下载Ingress的yaml文件
wget  https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml
# 使用yaml文件创建Ingress-nginx的Pod
kubectl  apply  -f  mandatory.yaml
# 下载svc的yaml文件
wget  https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/baremetal/service-nodeport.yaml
# 运行
kubectl  apply  -f  service-nodeport.yaml

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 查看当前ingress规则
kubectl  get  ingress

Ingress HTTPS 代理访问

在这里插入图片描述
在这里插入图片描述

Nginx 进行 BasicAuth

在这里插入图片描述

Nginx进行重写

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值