K8s将集群中的机器划分为一个主节点和一群工作节点,在主节点上运行着集群管理相关的一组进程kube-apiserver、kube-controller-manager 和 kube-scheduler,这些进程实现了整个集群的资源管理、pod 调度、弹性伸缩、安全控制、系统监控和纠错等管理功能,并且都是全自动完成的。集群中的工作节点运行真正的应用程序,各自又通过若干组件的组合来实现。在节点上,K8s管理的最小运行单元是pod。负载均衡模式需要通过kubelet、kube-proxy等这些服务进程实现,下图是K8s的整体架构

主节点即中央控制节点是K8s 集群的管理节点,管理集群当中数据的接口、状态监测和回滚、状态更新、调度等功能,kubectl是K8s的命令行工具集,用于通过命令行与API server进行交互,而对K8s进行操作,实现在集群中进行各种资源的管理控制等操作,通过节点控制器来与工作节点交互。主节点内部架构如下图所示:

上图可以看出主节点的核心组件以及内部的交互流程,主节点提供的核心组件如下。

(1) etcd 是集群的状态 K8s 默认使用分布式的etcd集群整体存储用来实现发现服务和共享配置集群的所有状态都存储在etcd 实例中,并具有监控的能力,因此当etcd中的信息发生变化时,能够快速地通知集群中相关的组件。

(2) API server提供了集群网关,API server在客户端对集群进行访问, 客户端需要通过认证, 并使用API server作为访问节点和 pod (以及服务)的堡垒和代理/通道。

(3) Scheduler主要功能是资源调度,讲pod调度到对应的主机上。依据请求资源的可用性、服务请求的质量等约束条件,K8s也支持用户自己提供的调度器。

4)controller负责维护集群的状态,比如故障检测、内存垃圾回收、滚动更新等,也执行API业务逻辑;K8s默认提供replication controller、controller、daemonset controller等控制器。

5)kube-ui为可选组件,自带的一套用来查看集群状态的Web界面。

6)kube-dns 为可选组件,记录启动的pod和服务地址,提供域名到地址的转换映射。

7)其他组件包括容器资源使用监控、日志记录等。这些管理组件可以任意部署在相同或者不同的机器上,只要可以通过标准的HTTP接口相互访问即可。这意味着K8s的管理组件进行扩展将变得十分简单。在创建K8s集群过程中,都要预装一些必要的软件来响应主节点的管理,另外还有负责网络和负载均衡的接入代理。节点具体负责真正的容器的启停、状态监测、执行结果上报等工作。工作节点内部组件如下图所示:

 

工作节点主要由以下核心组件组成:

1)本地的容器运行时环境,负责镜像管理以及pod和容器的真正运行。K8s本身并不提供容器运行时环境,但提供了接口,可以插入所选择的容器运行时环境,目前支持Docker和rkt。

2)kubelet是节点上最主要的工作代理,用于汇报节点状态并负责维护pod的生命周期,也负责volume(CVI)和网络(CNI)的管理。kubelet是pod和节点API的主要实现者,负责驱动容器执行层。作为基本的执行单元,pod可以拥有多个容器和存储卷,能够方便地在每个容器中打包一个单一的应用,从而解耦了应用构建时和部署时所关心的事项,方便在物理机或虚拟机之间进行迁移。

3)kube-proxy代理对抽象的应用地址的访问,服务提供了一种访问一群pod的途径, kube-proxy负责为服务提供集群内部的服务发现和应用的负载均衡(通常利用iptables规则),实现服务到pod的路由和转发。此方式通过创建一个虚拟的IP来实现,客户端能够访问此IP,并能够将服务透明地代理至pod。

4)辅助组件,可选,Supervisord用来保持kubelet和Docker进程运行,Fluentd用来转发日志等。节点的重要属性有地址信息、状态、资源容量、节点信息。这些属性用来标识节点的运行状态,并可以被外部组件访问识别。

基本上这4类服务就能涵盖所有的在线交易类业务场景。

 

标签智能推荐:

《第四期(2021-2022)传统行业原生技术落地调研报告——金融篇》重磅发布!

行业,面临着更大的安全建设压力。金融企业在云原生转型过程中,应当始终把安全性放在首位,制定完善的安全策略,稳中求进。在容器及K8s层面,通常需要保证镜像安全、容器运行时安全、容器网络安全、权限安全等问题。另外,可以进一步关注K8s的Pod安全策略PSP。容器运行时安全:主要是对容器在容器平台上运行过程中的对于宿主机系统以内安全设置,例如容器特权、提升权限、主机PID、主机IPC、主机网络、只读文件

演讲实录 | 基于原生的敏态微服务全生命周期支撑平台

云原生领导力论坛”上,博云售前解决方案架构师庞玉海带来《基于云原生的敏态微服务支撑平台》为题的主题演讲。演讲围绕什么是云原生,云原生的技术特征及优势、博云落地的实践经验三个方面展开。 什么是云原生云原生是一系列的云计算的体系和企业管理的方法的集合,它的核心概念在于它是一套技术体系和管理方法,而不能说是靠一个技术平台就能解决,没有企业的管理和方法的配合是无法体现云原生最大优势的。接下来,庞

揭秘5名运维如何轻松管理数亿级流量系统

国企而言,采用云原生技术加速“上云用数赋智”已经成为必然趋势。然而,采用云原生只是第一步,企业依然面临着IT架构设计、应用容器化改造、DevOps实施、微服务迁移等诸多实际转型问题,如何充分利用云原生技术的价值、享受到更大的技术红利呢?为此,我们精选了国内头部央国企云原生转型的先锋实践案例、落地调研报告、以及实用转型指南,为您企业的云原生转型提供有力参考。《央国企云原生技术实践案例汇编》看知名头部

揭秘5名运维如何轻松管理数亿级流量系统

国企而言,采用云原生技术加速“上云用数赋智”已经成为必然趋势。然而,采用云原生只是第一步,企业依然面临着IT架构设计、应用容器化改造、DevOps实施、微服务迁移等诸多实际转型问题,如何充分利用云原生技术的价值、享受到更大的技术红利呢?为此,我们精选了国内头部央国企云原生转型的先锋实践案例、落地调研报告、以及实用转型指南,为您企业的云原生转型提供有力参考。《央国企云原生技术实践案例汇编》看知名头部

如何攻破容器持久化存储挑战?

​背景云原生趋势下,应用容器化比例正在快速增长,Kubernetes也已成为云原生时代新的基础设施。观察今天的容器和Kubernetes的应用现状,可以看到两个普遍的现象:首先,在云上托管Kubernetes已经成为企业上云及运行容器的优先选择;另外,用户使用容器的方式也在发生改变,从“无状态应用”到“核心企业应用到数据智能应用”,越来越多的企业使用容器来部署生产级别、复杂度高和高性能计算的有状态

什么是原生

时代在召唤云原生

.NET Core on K8S学习与实践系列文章 (2020版)

度应用K8S,需要尝试迁移现有各类应用&中间件至K8S:⑴常见应用K8S部署之GFS⑵常见应用K8S部署之Helm⑶常见应用K8S部署之Redis集群⑷常见应用K8S部署之RabbitMQ集群⑸ 常见应用K8S部署之GitLab集群⑹ 常见应用K8S部署之Jenkins⑺常见应用K8S部署之Harbor⑻ 常见应用K8S部署之Prometheus+Grafan

原生是什么?

云:云和本地是相对的,传统的应用跑在本地服务器上,现在流行的应用跑在云端;IaaS,PaaS,SaaS;云原生:CloudNative,原生表示土生土长的意思,我们在开始设计应用的时候,就考虑到应用将来是运行在云环境中的;要充分利用云资源的优点:弹性和分布式;云原生= 微服务+DevOps+持续交付+容器化;可以大概这么理解;保持更新,更多内容请关注cnblogs.com/xuyaowe

原生年度技术盘点出炉!乘风破浪正当时

熟,大数据、物联网、人工智能、区块链各种新兴技术百花齐放。云原生已经成为势不可挡的技术趋势。Gartner预测到2025年,95%数字化运维将通过云原生平台进行支撑。为了让更多的开发者、架构师获取云原生技术红利与实践经验,阿里巴巴云原生推出了年度技术盘点,方便大家更好地学习和思考。云原生架构​​浅谈云原生架构的7个原则​​​​云原生不仅颠覆了技术栈,背后的每个岗位也在悄然发生改变​​​​云原生架构

【GOTC 预告】王思宇:从 OpenKruise 看原生应用负载发展趋势

pectroCloud等25+企业。​在本次论坛上,王思宇将分享哪些在社区中观察到的云原生趋势,又将介绍哪些值得关注的OpenKruise最新动态?让我们先睹为快。​GOTC讲师王思宇:从OpenKruise看云原生应用负载发展趋势​讲师简介王思宇,OpenKruise作者&负责人,阿里云技术专家,Kubernetes、OAM社区贡献者。长期从事云原生、容器、调度等领域研发;阿里巴巴百万容