电商网站seo优化目标分解,做苗木免费网站,公众平台是什么,地铁建设单位网站带你快速了解Kubernetes主要概念和组件架构。
Kubernetes的组件和架构比较多#xff0c;功能也比较多。
如果详细探讨#xff0c;每个Kubernetes组件都可以单独写篇博客详细讲解。
我们这里是快速了解#xff0c;就写的相对比较简单一些。
主要是针对不熟悉Kubernetes的…带你快速了解Kubernetes主要概念和组件架构。
Kubernetes的组件和架构比较多功能也比较多。
如果详细探讨每个Kubernetes组件都可以单独写篇博客详细讲解。
我们这里是快速了解就写的相对比较简单一些。
主要是针对不熟悉Kubernetes的朋友能够快速的了解一下Kubernetes的组件功能。对Kubernetes有一个直观的印象。 目录
一、快速了解kubernetes的主要概念
1、Pod
2、ReplicaSet
3、Deployment
4、Label
5、Service
二、快速了解kubernetes的主要架构
1、Master
2、Worker Node 一、快速了解kubernetes的主要概念
kubernetes架构中主要分为两个角色Master和Worker Node。
在这两个角色中都分别存在多个组件来支持Kubernetes的内部逻辑。
要熟悉这些组件我们先要了解Kubernetes的一些常见的抽象概念及资源类型。 1、Pod
Pod是kubernetes中最小的调度单位可以把他理解成在集群上运行的进程。
Pod里面可以运行单个容器或者运行多个需要协同工作的容器。
Pod运行在一个Worker Node中这个Worker Node可以是物理机也可以是虚拟机。
一个Worker Node中可能会有很多个Pod同时运行。
多个Pod可以协同工作。
在Pod中有一个容器叫pause这个是当前pod中所有容器的父容器也叫基础容器。
pause启用PID的命名空间pause的PID为1。
pause负责Pod中的容器的健康检查。
如果我们在Pod中部署两个容器分别叫Container1和Container2。
那么Container1和Container2就会共享pause容器的网络栈他们之间的通讯就会更快。
他们之间的关系是这样的 2、ReplicaSet
ReplicaSet是一个副本集简称RS。
它的作用就类似于Pod的负载均衡器。
通常情况下ReplicaSet用于实现Pod的高可用性。
就是说呢如果有Pod异常退出会自动创建新的 Pod 来代替并且自动回收异常退出的Pod。 3、Deployment
Deployment一般是用于滚动部署更新的组件。
更新Deployment的时候会自动创建ReplicaSet并自动启动新的pod
Deployment会自动实现ReplicaSet的创建和销毁的过程并自动对新老Pod进行替换。 4、Label
Label是以key/value键值对的方式存在比如app:nginx。
Label就像一个标签可以贴到很多对象上。比如PodServiceNodeReplicaSet等等。
Label可以在创建对象的时候贴上去也可以在对象创建以后再添加或者修改。
贴上Label以后我们就可以通过调用Label来调用对象。
每个Label必须是唯一的。 5、Service
Service是一个抽象的api对象。
Service可以成为多个后端Pod代理。
Service可以通过Selector指定Label名称通过Label Selector来调用对象比如调用Pod。
Service可以通过ClusterIP让外部的客户端client可以直接访问到内部的Pod。
我们可以把Service理解成一个桥梁对内串联Pod或Pod组对外串联客户端。
Service的本质是一个四层代理服务。 二、快速了解kubernetes的主要架构 Kubernetes是主从分布式架构。
Kubernetes主要包括两种角色Master Node和Worker Node。
Master Node是主节点也叫控制节点。
Worker Node是工作节点。
有时候也会直接把主节点叫做Master工作节点叫做Node。
我们分别说一下这两类节点 1、Master
Master负责Kubernetes集群的控制和管理是整个Kubernetes的控制中心。
Master通常至少都需要占据单独一台服务器生产环境建议部署三台以实现高可用。
Master中包含了四种重要的服务分别是ApiServer、Scheduler、Controller Manager和Etcd。 1.1、ApiServer
ApiServer提供HTTP/HTTPS RESTful API。
ApiServer是整个kubernetes集群的中枢神经是整个集群增删改查的唯一入口。
ApiServer串联了其他组件之间的数据交互。
ApiServer提供集群管理的授权、访问控制、发现、认证等等功能。
ApiServer是Etcd唯一的代理。
ApiServer部署在master节点上。生产环境中master节点通常会做成高可用。 1.2、Scheduler
Scheduler是一种调度器。
Scheduler会收集每个Worker资源的详细信息及运行情况包括CPU、内存等。
Scheduler会收集每个Worker上运行什么服务。
Scheduler有自己的算法在调度前会进行分析然后会安排Pod到具体的worker节点上。 1.3、Controller Manager
Controller Manager包括了很多的Controller它可以对Pod进行副本管理。
Controller Manager是处理kubernetes集群中常规任务的后台线程它也是一个守护进程。
Controller Manager通过ApiServer监视kubernetes集群的共享状态确保整个集群处于预期的工作状态。
Controller Manager是kubernetes高可用的保证。 1.4、Etcd
Etcd是一个存储组件就像是Kubernetes集群的数据库。
Etcd会存储整个kubernetes集群状态。比如各个Node的信息和状态等。
Etcd作为一个节点是相对独立的。
只有ApiServer才能和Etcd进行通讯Etcd会为ApiServer的操作记录持久化。
Etcd不光可以存储还可以监听。
Etcd的键值发生变化会通知ApiServer由ApiServer去通知客户端。
因为Etcd的重要性生产环境中Etcd最好部署多台实现高可用。 2、Worker Node
Worker Node也叫Node顾名思义就是工作节点。我们Kubernetes的程序应用就会部署在这里。
Node主要就是为Pod提供一个运行的环境以及可以对Pod进行操作的空间。
Node受Master的管理。
Node主要由Kuberlet、Container Runtime、kube-proxy组件构成。
下面快速说一下这三个组件 2.1、Kubelet
每个Worker Node上都有KubeletKubelet就像是Node的客户端。
Kubelet会监听和维护Pod的生命周期。
当Master上的Scheduler确定了某个Node后就会把Pod的配置信息发送给这个Node的kubelet
kubelet就会根据这些配置信息自动创建和运行容器。 2.2、Container Runtime
每个Worker Node上都有Container Runtime。
Container Runtime负责下载image并运行容器它提供一个容器运行环境
Kubernetes的Container Runtime支持的容器有很多最常见的就是Docker。 2.3、kube-proxy
kube-proxy就是一个代理它可以转发Service的请求到Pod。
kube-proxy可以实现一个内部Pod的负载均衡。 参考文章
https://blog.csdn.net/fangfu123/article/details/105792826