容器技术之快速了解K8S各抽象资源及组件架构
带你快速了解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就像一个标签,可以贴到很多对象上。比如Pod,Service,Node,ReplicaSet等等。
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上都有Kubelet,Kubelet就像是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
容器技术之快速了解K8S各抽象资源及组件架构相关推荐
- 【云原生|K8s系列第1篇】:K8s的基础概念、组件架构及实战安装
云原生|K8s系列第1篇目录 1.先从K8s不是什么讲起 2.K8s是什么及核心基础概念 2.1 Container容器 2.2 Pod 2.3 Node 2.4 Label 2.5 Annotati ...
- 每天5分钟玩转容器技术 ---- 系列文章
通过 Service 访问 Pod - 每天5分钟玩转 Docker 容器技术(136) 定时执行 Job - 每天5分钟玩转 Docker 容器技术(135) 并行执行 Job - 每天5分钟玩转 ...
- 云原生之路:容器技术落地最佳实践
简介: 随着容器技术的快速发展和广泛应用,毫无疑问云原生技术是未来发展的必然趋势.作为国内最早布局容器技术的阿里云,无论在技术还是产品上,都取得了极大的成果.阿里云资深技术专家易立通过阿里云容器服务, ...
- 云计算与大数据-虚拟化与容器技术题库
第2章 虚拟化与容器技术习题 2.1 选择题 1.典型的虚拟化架构不包括( D ). A.宿主机操作系统 B.虚拟机 C.虚拟化层 ...
- 多平台支持:下一步容器技术热点
Linux容器技术最近几年发展迅速,从最初的互联网公司的实验技术发展成为分布式应用事实上的标准.Docker资深副总裁Marianna Tessel说,这项技术可以支持多容器,多主机应用,并且从lin ...
- 前沿|十位顶级大咖为您把脉容器技术大势
5月18-19日,北京 • 朝阳门悠唐皇冠假日酒店,CSDN主办的中国云计算技术大会(http://cctc.csdn.net/)将围绕当前最热门.最前沿的云计算技术与行业实践进行展开.在这场盛大的技 ...
- 探索入门云计算风向标Amazon的ECS容器技术
Amazon ECS 概述 对于经常接触云计算服务技术的同学们估计一听到ECS,耳朵都能磨出茧子,印象中ECS不就是弹性计算服务么,再人话点就是你按量充值的一台虚拟主机,然后通过SSH远程维护这台虚拟 ...
- linux有哪些容器技术,Linux容器技术和docker
发展历程: 容器技术最早出现在FreeBSD上叫做 jail,将一个进程放入jail中运行,不管这个进程在其中发生怎样的错误都不会影响到系统上其他进程的运行 jail技术在Linux中的实现叫做vse ...
- k8s 重要概念 - 每天5分钟玩转 Docker 容器技术(117)
在实践之前,必须先学习 Kubernetes 的几个重要概念,它们是组成 Kubernetes 集群的基石. Cluster Cluster 是计算.存储和网络资源的集合,Kubernetes 利用 ...
最新文章
- 帝国重新生成html,帝国CMS实现提交评论后自动重新生成内容页
- DNS主从类型的架设
- qt5.5 静态编译 mysql_QT5.3.2+mingw静态编译(生成exe大约14M)
- Java中几个主流的数据库连接池
- 文件共享服务器地址格式,文件共享服务器配置
- [Teamcenter 2007 开发实战] 获取错误或提示信息
- linux 创建mbr分区,MBR分区类型简介
- 怎么判断日出时间早晚_怎样判断一个地方的日出或日落时间
- taptap评论爬虫
- 政府普及政务工作邮箱的难题
- 详解语言模型NGram及困惑度Perplexity
- 使用Scratch制作打弹球游戏(一)弹球游戏过关
- JVM虚拟机相关知识
- phpcms下载页直接显示下载真实地址方法
- 计算机打字无限长页面,Win10电脑键盘自动无限输入怎么办
- oracle 12c rac tablespace 表空间删除办法
- 好的用户界面-界面设计的一些技巧
- 女生节礼物清单分享,38节适合送女生的礼物合集
- AE制作全息风扇视频制作笔记
- 5分钟包你搞懂箱形图分析!
热门文章
- 【Day41】Python之路——AJAX
- EasyUI-右键菜单变灰不可用效果
- JavaScript匿名函数与托付
- c 语言str.size,C/C++ strlen(str)和str.length()和str.size()的区别
- java中412是什么错_HTTP 412 错误 – 先决条件失败 (Precondition failed)
- 如何利用python自动化办公项目_python办公自动化:自动进行word文档处理和排版
- win10升级后chrome碰到对话框就卡死
- 21.和和instance of
- python人脸关键点识别_用Face++实现人脸关键点检测
- 平板电脑可以插u盘吗_有手机还需要平板电脑吗 酷比魔方iplay30平板电脑评测