K8S学习记录一:容器化基础

一个很好地k8s介绍视频:https://www.bilibili.com/video/BV18t411u7kX?t=1504
k8s可以简单理解为一个使用了数据库的web服务
K8S学习记录一:容器化基础
1、k8s相关组件介绍:

K8S学习记录一:容器化基础
a). kubectl : kubectl相当于客户端,是操作k8s的入口,是k8s定制化的curl命令行,相当于请求地址
b). etcd : etcd是这个“web服务的键值数据库”,用于存储,用于存储容器健康状态、pod信息等
c). API server :API server 相当于“web服务的接口调用层”,类似于web项目中的Controller
d). Scheduler : 任务调度器
e). Controller Manager : 和 Scheduler一样指挥调度API Server
f). Node : Node工作节点,node中的kubelet 通过API server 进行互相链接调用,每一个Node包含(Kubelet、kube-proxy、pod)
g). Kubelet : 每一个node都要运行一个worker 对node中的容器进行生命周期管理,kubelet 的主要功能就是pod管理、容器健康检查、以及容器监控;
h). pod: node中调度的最小单位,一般由一个容器和一个pause组成
i). deployment : 用来维持pod的数量 其中有一个replicas配置参数记录pod的个数
j). kube-proxy :部署在每一个node节点上,它是实现k8s service通信与负载均衡的重要组件,从apiserver获取所有server信息,并根据server信息创建代理服务,实现server到Pod的请求路由和转发,从而实现K8s层级的虚拟转发网络。
K8S学习记录一:容器化基础
kube-proxy会在集群层面上抽象一个虚拟交换机,分配ip,为每一个deployment分配一个虚拟化ip,当请求到指定ip和端口之后会有一个负载均衡算法将每一个请求均匀分发到不同的pod上。