网站首页 > 博客文章 正文
大家好,我是mikechen。
Kubernetes是云原生非常核心的组件,也是大厂经常考察的内容,下面我就全面来详解Kubernetes原理@mikechen
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
Kubernetes
Kubernetes 含义是舵手或领航员,K8S是它的缩写,是基于容器的集群管理平台,是由Google创造容器编排系统。
Kubernetes就是一个编排容器的工具,可以从创建应用,再到应用的部署,以及为应用提供服务、扩容缩容、故障自愈等服务。
例如:一个服务器挂了,Kubernetes可以自动将这个服务器上的服务,调度到另外一个主机上进行运行,无需进行人工干涉。
Kubernetes原理
Kubernetes架构,如下图所示:
一个Kubernetes集群由两部分构成 :master节点和node节点。
master主节点
master主节点架构,如下图黄框所示:
上面黄框的地方就是Kubernetes主节点,主要负责集群的控制,对pod进行调度,已经令牌管理等等功能。
Kubernetes的主节点通过API,从CLI(命令行界面),或UI(用户界面)接收输入来管控的,如下图所示:
这里会涉及到如下4大组件:
1.API Server
API Server是Kubernetes控制程序的前端,也是用户唯一可以直接进行交互的Kubernetes组件。
2.键值存储etcd
Etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息。
3.Controller
控制器的作用是:从API Server获得所需状态,并检查要控制的节点的当前状态,确定是否与所需状态存在任何差异并解决它们。
4.Scheduler
调度程序会监视来自API Server的新请求,并将其分配给运行状况良好的节点,比如:对节点的质量进行排名,并将Pod部署到最适合的节点。
注意:最好不要在主节点上运行用户应用程序,让Kubernetes主节点可以完全专注于管理集群。
node工作节点
工作节点监听API Server发送过来的新的工作分配,他们会执行分配给他们的工作,然后将结果报告给Kubernetes主节点。
工作节点架构,如下图所示:
上面右侧的绿框就是Kubernetes工作节点,包含如下组件:
1.Kubelet
kubelet它是Kubernetes内部的主要代理,通过安装kubelet,节点的CPU,RAM和存储成为所处集群的一部分。
kubelet它监视从API Server发送来的任务,执行任务,并报告给主节点,除此还会监视Pod。
2.Container Runtime
容器运行时从容器镜像库中拉取镜像,然后启动,以及停止容器,容器运行时由第三方软件或插件,比如:Docker担当。
3.Kube-proxy
kube-proxy确保每个节点都获得其IP地址,实现本地iptables和规则以处理路由和流量负载均衡。
4.Pod
Pod是Kubernetes中一个抽象化概念,由一个或多个容器组合在一起得共享资源,如下图所示:
在Kubernetes中,Pod是调度的最小元素,没有它容器就不能成为集群的一部分,主节点会把Pod调度到特定工作节点上,并与容器运行时协调以启动容器。
一个pod中无论是一个容器还是多个容器,当pod被master调度至某一node上时,这个pod中的所有容器都被调度到了一台node上
Kubernetes集群
Kubernetes集群,如下图所示:
每一个服务都有一个service,用来调度请求流量,如果其中的某个服务中的pod宕机了,pod控制器会自动创建一个新的pod并加入到该服务中。
总之,Kubernetes集群是Kubernetes最核心的部分,由上面我谈到的:Kubernetes工作节点,和一个、或多个Kubernetes主节点组成,用于运行和管理容器化的应用程序。
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
猜你喜欢
- 2024-09-11 K8S从懵圈到熟练 - 我们为什么会删除不了集群的命名空间?
- 2024-09-11 从零开始入门 K8s | Kubernetes 存储架构及插件使用
- 2024-09-11 「云原生」Spark on k8s 讲解与实战操作
- 2024-09-11 K8S扫盲什么是云?什么是云架构?什么是云原生?什么是K8S?
- 2024-09-11 K8S | 核心原理分析(k8s原理图)
- 2024-09-11 《深入浅出Prometheus》 原理、应用、源码与拓展详解
- 2024-09-11 Kubernetes(k8s)CNI(flannel)网络模型原理
- 2024-09-11 「云原生」k8s 中的 hostNetwork 和 NetworkPolicy 讲解与实战操作
- 2024-09-11 「云原生」Kubernetes(k8s)最完整版环境部署(V1.24.1)
- 2024-09-11 Kubernetes(k8s)五种控制器详解(k8s controllermanager作用)
你 发表评论:
欢迎- 06-23MySQL合集-mysql5.7及mysql8的一些特性
- 06-23MySQL CREATE TABLE 简单设计模板交流
- 06-23MYSQL表设计规范(mysql设计表注意事项)
- 06-23MySQL数据库入门(四)数据类型简介
- 06-23数据丢失?别慌!MySQL备份恢复攻略
- 06-23MySQL设计规范(mysql 设计)
- 06-23MySQL数据实时增量同步到Elasticsearch
- 06-23MySQL 避坑指南之隐式数据类型转换
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)