首页 > 其他分享 >k8s架构

k8s架构

时间:2023-07-24 17:36:56浏览次数:36  
标签:容器 架构 Kubernetes namespace API 集群 Pod k8s

核心组件

  • etcd保存整个集群的状态
  • apiserver提供资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制
  • controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等
  • scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上
  • kubelet负责维护容器的生命周期,同时也负责Volume(CSI)和网络(CNI)的管理
  • container runtime负责镜像管理以及Pod和容器的真正运行(CRI)
  • kube-proxy负责为Service提供cluster内部的服务发现和负载均衡

常用插件

  • CoreDNS负责为整个集群提供DNS服务
  • Ingress Controller 为服务提供外网入口
  • Prometheus 提供资源监控
  • Dashboard 提供GUI
  • Federation 提供跨可用区的集群

整体架构

image-20230201112155429

image-20230201113359142

Master架构

image-20230201113952695

Node架构

image-20230201114016194

分层架构

image-20230201114039143
  • 核心层:Kubernetes最核心的功能,对外提供API构建高层的应用,对内提供插件式应用执行环境
  • 应用层:部署(有、无状态应用、批处理任务、集群应用等)和路由(服务发现、DNS解析等)、Service(部分位于应用层)
  • 管理层:系统度量(如基础设施、容器和网络的度量),自动化以及策略管理(RBAC、Quota、PSP、NetworkPolicy等)、Service Mesh(部分位于管理层)
  • 借口层:kubectl命令行工具、客户端SDK以及集群联邦
  • 生态系统:在借口层之上的庞大容器集群管理调度的生态系统,可以话费为两个范畴
    • Kubernetes外部:日志、监控、配置管理、CI/CD、Workflow、FaaS、OTS应用、ChatOps、GitOps、SecOps等
    • Kubernetes内部:CRI、CNI、CSI、镜像仓库、Cloud Provide、集群自身的配置和管理等

Kubernetes 的核心技术概念和API对象

API对象是Kubernetes集群中的管理操作单元。

Kubernetes集群系统每支持一项新功能,引入一项新技术,一定会引入对应的API对象。

API对象的三大类属性:

  • 元数据metadata:用来标识API对象,每个对象至少有3个元数据
    • namespace
    • name
    • uid
  • 规范spec:描述用户期望Kubernetes集群中的分布式系统达到的理想状态
  • 状态status:系统实际当前达到的状态

Kubernetes中所有的配置都是通过API对象的spec去设置的,也就是用户通过配置系统的理想状态来改变系统

即所有的操作都是声明式而不是命令式

Pod

Pod 是 Kubernetes 集群中所有业务类型的基础,可以看作运行在 Kubernetes 集群中的小机器人,不同类型的业务就需要不同类型的小机器人去执行。目前 Kubernetes 中的业务主要可以分为长期伺服型(long-running)、批处理型(batch)、节点后台支撑型(node-daemon)和有状态应用型(stateful application);分别对应的小机器人控制器为 Deployment、Job、DaemonSet 和 StatefulSet。

Pod 是在 Kubernetes 集群中运行部署应用或服务的最小单元,它是可以支持多容器的。Pod 的设计理念是支持多个容器在一个 Pod 中共享网络地址和文件系统,可以通过进程间通信和文件共享这种简单高效的方式组合完成服务

RC:副本控制器

RS:副本集

Node:节点

是所有Pod运行所在的工作主机,上面要运行kubelet管理节点上运行的容器

密钥对象(Secret)

明文信息存储为Secret对象,在配置文件中通过Secret对象引用敏感信息

用户账户和服务账户

用户帐户对应的是人的身份,人的身份与服务的 namespace 无关,所以用户账户是跨 namespace 的;

而服务帐户对应的是一个运行中程序的身份,与特定 namespace 是相关的。

namespace

docker中的namespace

在容器内运行ps,默认会显示pid为1,从操作上来说,我们并没有脱离本身的系统,只是运行了一个名为docker的软件,为什么在软件中执行ps命令会显示进程pid为1,而不是这个docker软件本身的pid,比如100

主要是因为Linux的Namespace机制,在Linux中创建线程的系统调用是clone()

这个系统调用会创建一个新进程,并返回它的PID,其中的可选参数CLONE_NEWPID参数如果使用,则心创建的这个进程会认为自己在一个新的进程空间,也就是认为自己的pid为1

通过这种方式从挂载、网络、用户、设备之类的方向让这个进程认为自己在一个全新的空间中,从而实现与宿主机隔离

所以,Docker项目帮助用户启动的还是原来的应用进程,不过在创建这些进程时,Docker为他们加上了各种Namespace参数,让它们以为自己是一个独立的网络设备,也就是容器。

命名空间为 Kubernetes 集群提供虚拟的隔离作用。

Kubernetes 集群初始有两个命名空间,分别是默认命名空间 default 和系统命名空间 kube-system。

除此以外,管理员可以可以创建新的命名空间满足需要。

RBAC授权(Role-based Access Control)

标签:容器,架构,Kubernetes,namespace,API,集群,Pod,k8s
From: https://www.cnblogs.com/pr1s0n/p/17577814.html

相关文章

  • 尚硅谷 k8s 学习笔记
    K8S进阶部分       1.Deployment部署           1.1自愈能力           1.2多副本           1.3扩容、缩容           1.4滚动更新           1.5版本回退           1.6工作负载  ......
  • 直播架构图
    直播架构图解析及代码示例随着直播行业的快速发展,直播架构成为了直播系统的核心组成部分。本文将对直播架构图进行解析,并提供代码示例来帮助读者更好地理解直播架构的实现。直播架构图概述直播架构图是对直播系统中各组件和其相互关系的可视化表示。它展示了直播系统的核心功能......
  • sqlserver:拒绝了对对象 'QualityChxxx' (数据库 'xxx',架构 'dbo')的 SELECT 权限
    选择数据库(xxxx)—>安全性—->架构—->dbo(属性)—>权限—>添加—>浏览–>QualityChxxx  ......
  • android usb 驱动架构
    AndroidUSB驱动架构简介AndroidUSB驱动架构是在Android系统中实现USB设备与应用程序之间通信的一种连接方式。通过USB接口,Android设备可以与外部设备进行数据交互,比如连接手机和电脑进行文件传输。USB驱动层次结构AndroidUSB驱动架构分为以下几个层次:USBStack......
  • 火山引擎DataLeap如何解决SLA治理难题(三): 平台架构与未来展望
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群平台架构总结火山引擎DataLeapSLA平台整体主要分为基础组件、规划式治理服务、响应式治理服务三大块,系统组件架构图如下:规划式治理服务所谓“规划式治理”,即在问题发现前治理,通过主动规划约定SL......
  • 火山引擎DataLeap如何解决SLA治理难题(三): 平台架构与未来展望
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群平台架构总结火山引擎DataLeapSLA平台整体主要分为基础组件、规划式治理服务、响应式治理服务三大块,系统组件架构图如下: 规划式治理服务所谓“规划式治理”,即在问题发现前治理,......
  • c#三层架构实现登录
    C#三层架构实现登录1.流程概述在使用C#三层架构实现登录功能时,我们需要分为三个层次:数据访问层(DataAccessLayer,DAL)、业务逻辑层(BusinessLogicLayer,BLL)和表示层(PresentationLayer,UI)。下面是实现登录功能的整体流程:步骤描述1用户输入用户名和密码2UI层调用BLL......
  • 高级系统架构师学习(一)系统工程与信息系统基础
    一、前言已经有一段时间没有写博客了,最近事情比较多,工作和家里的事情也比较忙,慢慢的就没写了,不写博客以后人就懒了,故今天下定决心,重新开始强迫自己提升,挤时间学习一些新的东西!这次的专题就不写应用技术了,写一写我学习高级系统架构师的一些心得吧。我是去年报名学习高级......
  • 对比 5 个开源网关项目,这家 SaaS 企业如何统一网关架构
    作者:古建国关于美洽美洽作为全球智能云客服服务商,10年来深耕智能客服领域,旗下拥有在线客服、呼叫中心、客服机器人、工单系统、语音机器人等智能客服系列产品矩阵,覆盖不同行业客户服务场景,致力于帮助企业获客、销售和服务场景的效率提升。目前,美洽全链路产品已经服务超过40万......
  • 物联网PaaS架构
    物联网PaaS架构实现流程1.确定需求和功能在实现物联网PaaS架构之前,首先需要明确具体的需求和功能。这包括确定要连接的物联网设备类型、数据采集和处理需求、云端服务功能等。2.设计系统架构在确定需求和功能后,需要设计物联网PaaS的系统架构。这包括确定云端服务的组件、设备......