【Kubernetes专项】容器编排:基本介绍及架构与服务
Kubernetes容器编排
一、基本介绍
1.1 官网及常识
官网:https://kubernetes.io/
中文官网:https://kubernetes.io/zh-cn/
学习K8s必须要知道Pod
Pod跟容器的关系,可以说是容器的集合。
Pod可以类似于虚拟机,虚拟机可以运行多个系统,Pod可以运行多个容器。
K8s是可移植、可拓展、开源的容器管理平台。
K8s开源地址:https://github.com/kubernetes/kubernetes
发行版:https://kubernetes.io/zh-cn/releases/
补丁版:https://kubernetes.io/releases/patch-releases/
1.2 Linux、Docker与K8s的联系
Linux操作系统:
是一个开源的操作系统内核、许多不同的Linux发行版(ps:Ubuntu,Centos,Debian,Rhel)都建立在在内核之上。
容器化技术:
容器是一个轻量级的虚拟化技术,允许将应用程序及其依赖打包到一个独立的运行环境中(镜像),容器基于镜像运行。
Docker 是一个著名的容器化平台,它基于Linux操作系统的特性,如cgroups和命名空间,实现了容器的隔离和资源管理。
Kubernetes-K8s:
k8s是一个开源的容器编排工具;
基于pod运行服务,pod具备自动扩缩容、故障自修复等功能。
关联性:Linux作为宿主环境,K8s集群中的每个节点都是运行在Linux操作系统之上的。K8s的各种组件(如apiserver、Scheduler、Controller-manager等)也运行在Linux上。
二、K8s架构及服务
架构网址:Cluster Architecture | Kubernetes
2.1 K8s的物理架构
master/node 模式;
K8s集群至少需要一个主节点(Master)和多个工作节点(Worker);
Master节点是集群的控制节点,负责整个集群的管理和控制,主要用于:暴露API,调度部署和节点的管理。
多架构图示:

2.2.1 K8s架构体系-组件介绍
`kubectl`
管理k8s的命令行工具
可以操作k8s中的资源对象
1.控制节点(控制平面、控制节点、主节点、master节点)上的服务:
`etcd`
是一个高可用的键值对数据库
存储k8s的资源状态信息和网络信息的
etcd中的数据变更是通过api server进行的
`apiserver`
提供k8s api,是整个系统的对外接口
提供资源操作的唯一入口--供客户端和其它组件调用
提供了k8s各类资源对象(pod、development、service等)的增删改查
整个系统的总线、数据中心--并提供认证、授权、访问控制、API注册和发现等机制
将操作对象持久化到etcd中
相当于--营业厅
`scheduler`
负责k8s集群中pod的调度
scheduler通过与api server交互监听到创建pod副本的信息后
它会检索所有符合该pod要求的工作节点列表
开始执行pod调度逻辑
调度成功后将pod绑定到目标节点上
相当于--调度室
`controller-manager`
与api server交互
实时监控和维护k8s集群的控制器的健康状况
对有故障的进行处理和恢复
相当于--大总管
`kubelet`
每个Node节点上的kubelet定期就会调用api server的REST接口去报告自身的状态
api server接收到这些信息,将节点状态信息更新到etcd中
kubelet也通过api server监听pod信息
从而对node机器上的pod进行管理,ps:创建、删除、更新pod
`kube-proxy`
提供网络代理和负载均衡
实现service的通信与负载均衡机制的重要组件
负责为pod创建代理服务,从api server获取所有service信息
根据service信息创建代理服务,实现service到pod的请求路由和转发从而实现k8s层级的虚拟转发网络,将发送到service的请求转发到后端的pod上
`calico`
网络插件,生成ip的组件
`容器-docekr、containerd...`
2.工作节点(工作节点、工作平面、worker节点、node节点)上的服务:
calico、kube-proxy、kubelet、容器、coredns(dns服务)
更多推荐



所有评论(0)