首页 > 其他分享 >k8s核心组件详解和分层架构

k8s核心组件详解和分层架构

时间:2024-05-05 15:55:07浏览次数:25  
标签:插件 k8s 详解 集群 应用 组件 kube

k8s核心组件

img
img

master中的核心组件

  1. api-server(接口服务,基于rest风格开放k8s接口的服务)
  2. kube-controller-manager(管理各个类型的控制器,针对k8s中的各种资源进行管理)
    img
  3. cloud-controller-manager(云控制管理器,第三方云平台提供的控制器,api对接管理功能)
  4. kube-scheduler(调度器,负责将pod基于一定的算法,将其调用到更合适的节点(服务器)上)
  5. etcd(理解为k8s的数据库,键值类型的分布式数据库,提供了基于raft算法实现自助的集群高可用[老版本:基于内存 新版本:持久化存储])
    ps:官方对于整个存储的地方称之为面板,控制面板

node中的核心组件

  1. kubelet(负责pod的生命周期,存储,网络)
  2. kube-proxy(网络代理(内部网络),负责service的服务发现 负载均衡[4层负载])
  3. container-runtime(容器运行时环境:docker,containerd,cri-o[一般会在三者中选择一个])

附加组件

  1. kube-dns(负责为整个集群提供dns服务)
  2. ingress controller(为服务提供外网入口)
  3. prometheus(监控)
  4. dashboard(ui界面)
  5. federation(提供跨可用区的集群)
  6. fluentd-elasticsearch(提供集群日志采集,存储和查询)

分层架构

img

  1. 生态系统(最顶层)
    基于k8s的生态系统所创建出来的应用
  2. 接口层(所有的应用都需要调用k8s的接口)
  3. 管理层(管理层,系统度量(基础设施,容器和网络的度量),自动化(如自动扩展,动态provision等)以及策略管理(RBAC,Quota,psp,networkpolicy等))
  4. 应用层(部署(五状态应用,有状态应用,批处理任务,集群应用等)和路由(服务发现,dns解析))
  5. 核心层(kubernetes最核心的功能,对外提供api构建高层的应用,对内提供插件式应用执行环境)
  6. 插件(整个架构从上往下,最后调用不同的插件)

标签:插件,k8s,详解,集群,应用,组件,kube
From: https://www.cnblogs.com/humlogs/p/18173515

相关文章

  • kind部署k8s集群和kube-ovn
    #docker容器作为k8snode,容器里面通过containerd拉起Pod。cat<<EOF|kindcreatecluster--namekube-ovn--config-kind:ClusterapiVersion:kind.x-k8s.io/v1alpha4networking:kubeProxyMode:ipvsdisableDefaultCNI:trueipFamily:ipv4apiServerAddress......
  • 进程上下文详解
    由于现在大多计算机都是多核CPU,多线程往往会比单线程更快,更能够提高并发,但提高并发并不意味着启动更多的线程来执行。更多的线程意味着线程创建销毁开销加大、上下文非常频繁,你的程序反而不能支持更高的TPS。时间片多任务系统往往需要同时执行多道作业。作业数往往大于机器的CPU......
  • CyberRT_概念组件以及基本流程
    CyberRT两大功能任务调度数据通信基本组件componentnodechannelreader/writersevice/clientTaskroutine通信1.通信的方式:01.intras-process02.sharedMemory 03.socket--fastRTPSDDS也是采用发布/订阅机制进行网络通讯通过抽象出DDS接口,让RO......
  • List的remove()方法详解
    https://blog.csdn.net/anxin_hw/article/details/128312846一、错误使用场景1、普通for循环遍历List删除指定元素,list.remove(index)示例:将姓张的名字移除掉List<String>nameList=newArrayList<>(Arrays.asList("张三","李四","王五","赵六"));na......
  • K8S 创建Spring-boot项目并进行项目启动与访问
     ##Spring-boot 的helloworld项目packagecom.example.demo;importjava.time.LocalDateTime;importjava.time.format.DateTimeFormatter;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RequestMappi......
  • Kubernetes源码二次开发系列(一到三),玩转高阶K8s开发
    Kubernetes源码二次开发通常涉及以下步骤:环境准备:安装和配置Go环境,确保Go版本与Kubernetes项目兼容。获取源码:从GitHub克隆Kubernetes仓库到本地。设置工作环境:通过make命令设置编译环境。修改源码:根据需求修改Kubernetes源码。编译:使用makeall编译所有组......
  • 【c语言】编译过程详解
    为什么我们编写的C语言要进行编译❓什么是编译❓编译时发生了什么❓机器无法理解我们编写的C语言,而编译就是将面向人类的高级语言转换成为面向机器的机器语言的过程,图1是GCC编译器进行编译的过程,编译时主要分为了4个阶段,每个阶段的具体作用将在接下来进行介绍。图1......
  • iptables使用详解(centos7)
    iptables使用详解(centos7)小百菜已于2024-03-2114:40:02修改阅读量7.2k收藏22点赞数2文章标签:iptables限速版权GitCode开源社区文章已被社区收录加入社区我们需要安装iptables-services,用来启动和停止iptables服务防火墙配置文件/etc/sysconfig/iptables查......
  • 详解csrf(跨站请求伪造)
    1.什么是csrf(csrf攻击原理)?用户正常访问A网站,A网站设置cookie被用户浏览器保存用户不关闭浏览器,直接访问恶意网站,该恶意网站内隐藏式内嵌了A网站接口的请求链接触发该请求链接,自动携带浏览器保存的cookie,请求成功。2.涉及的基础知识我们先梳理下上面所涉及的一些......
  • 高效遍历:C++中分隔字符串单词的3种方法详解与实例
     概述:在C++中,遍历由空格分隔的字符串的单词有多种方法,包括使用`std::istringstream`、手动遍历字符和正则表达式。其中,`std::istringstream`是简单高效的选择,通过流提取单词。手动遍历字符较为繁琐,正则表达式方法更灵活但可能有性能开销。根据实际需求选择方法,本文提供了清晰......