每天进步一点点

2020-05-18【Istio服务治理,K8S各个组件】

2020-05-18  本文已影响0人  桢桢claire
可爱的小松鼠

今日鸡汤:

廖一梅在书里写到:人这一生,遇见爱,遇见性,都不稀罕,稀罕的是遇见了解。

愿你能遇到了解你的人:)

云原生服务网格Istio

Istio流量治理的目标是什么?
以基础设施的方式提供给用户非侵入的流量治理能力,用户只需要关注自己的业务逻辑开发,无须关注服务访问管理。

Istio流量治理的方式是什么?
在控制面:管理员通过命令或API创建流量规则,Pilot将该规则转换为Envoy标准形式后下发给Envoy。
在数据面:Envoy拦截Pod本地容器的Inbound和Outbound流量,在流量经过Envoy时执行对应的流量规则,进行治理。

服务发现和负载均衡的工作流程是什么?
第一步,服务注册,各服务将服务名和服务实例注册到服务注册中心;
第二步,服务发现,客户端发起服务访问时,从服务注册中心获取服务对应的实例;
第三步,负载均衡,从实例列表中选择一个服务实例。

Pilot将服务发现数据通过Envoy的标准接口发给数据面,Envoy根据配置的负载均衡策略选择一个实例转发请求。

为什么需要服务熔断?
防止网络和服务调用故障级联发生,限制故障的影响范围,防止故障蔓延导致系统整体性能下降或雪崩。
在Istio中提供了连接池和故障实例隔离的能力。
-连接池:在Istio中通过限制某个客户端对目标服务的连接数、访问请求数等,避免对一个服务的过量访问,如果超过配置阈值,则快速断路请求。
-故障实例隔离:如果某个服务频繁超时或出错,则将该实例隔离。

什么是故障注入?
使用一种手段在待测试的系统中引入故障,从而测试其健壮性和应对故障的能力。

灰度发布的场景?
第一种,蓝绿发布。新版本部署在另一套独立的资源上,当可用时,直接将所有流量从老版本切换到新版本,当有问题时,快速切回老版本。
第二种,AB测试。同时在线上部署A和B两个对等的版本来接受流量,收集反馈,最终决定用哪个版本。
第三种,金丝雀发布。上线一个新版本,从老版本切一部分流量到新版本上来判定新版本在生产环境的实际表现,没有问题的话,逐步增加切换比例直到全部切换完成。

Istio的服务访问入口是什么?
在Istio中通过Gateway访问网格内的数据,也是一个Envoy,从Istio的控制面板接受配置,统一执行配置规则,Gateway一般为LoadBalancer类型的service。

在Istio中怎么接入外部服务?
通过一个ServiceEntry的资源对象将网格外的服务注册到网格上,然后像对网格内的普通服务一样对网格外的服务访问进行治理。

换个角度入门K8S

推荐一篇文章:换个角度入门K8S,从业务演进的角度讲K8S的各个组件功能,总结一下:

运行编排系统的服务器叫做master节点,运行业务容器的服务器叫做worker节点
master节点上提供管理接口的组件叫kube apiserver
与api server交互的客户端中,提供给集群运维管理员使用的叫做kubectl,提供给worker节点使用的叫做kubelet
运维人员可以通过kubelet向master发送命令,master收到请求后,根据集群中worker节点的资源信息进行调度,然后把创建指令下发到对应的worker上,负责调度的叫kube scheduler
每个worker上的kubelet会周期性的上报节点资源和容器运行情况,然后master把数据存储到etcd的开源系统中。
为了与其他worker节点通信,每个worker节点需要有容器ip的路由转发信息,由一个专门负责监听并调整路由转发配置的组件来负责,叫kube proxy

K8S各组件
上一篇下一篇

猜你喜欢

热点阅读