K8S 角色/组件及部署方式的简单概述

1.宏观架构图

2.角色详情

2.1 Master(Controller Plane)

早期是叫 Master 节点,后期改名为 Controller Plane,负责整个集群的控制和管理

Master 不会干活的(当然你让它干也是会干的,涉及到污点容忍),而是起到访问入口(API Server)、调度协调(Scheduler)、管理作用(Control Manager)。

  • API Server

    kube-apiserver,集群的统一入口,各组件协调者,以RESTFUL API提供接口服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提交给etcd存储。

  • Scheduler

    kube-scheduler 根据调度算法为新创建的Pod选择一个Node节点,可以任意部署,可以部署在同一个节点上,也可以部署在不同的节点上。调度决策考虑的因素包括单个 Pod 及 Pods 集合的资源需求、软硬件及策略约束、 亲和性及反亲和性规范、数据位置、工作负载间的干扰及最后时限。

  • Control Manager

    Kube-controller-manager,处理集群中常规后台任务,一个资源对应一个控制器,而ControllerManager就是负责管理这些控制器的。

    • 节点控制器(Node Controller):负责在节点出现故障时进行通知和响应
    • 任务控制器(Job Controller):监测代表一次性任务的 Job 对象,然后创建 Pod 来运行这些任务直至完成
    • 还有其他,rs,rc,sts, CronJob等
  • Cloud Controller Manager

    用在云平台上的Kube-controller-manager组件。如果我们直接在物理机上部署的话,可以不使用该组件。

  • Etcd

    分布式键值存储系统,用于保存集群状态元数据信息,比如Pod,Service等对象信息。这个数据库是可以单独拿出来部署,只需要API server可以连接到该分布式数据库集群即可

2.2 Slave(worker node)

        早期叫 slave 节点,后期改名为 Worker node,负责执行和运行工作负载的节点

        slave(worker node) 节点默认不得超过 5000个,也就是集群中不能超过5000台机器,如果超过则多集群管理

        容器不得超过 30W个

        单个节点的Pod数量默认不能超过 110 个,服务器规格高的话,可以调大,默认是不需要修改的

  • kubelet

    可以理解为Master在工作节点上的Agent,管理本机运行容器的生命周期,比如创建容器,Pod挂载数据卷,下载secret,获取容器的节点状态等工作。kubelet 将每一个Pod转换成一组容器。会定期收集这些信息上报给API Server,APIserver收到后会存储到etcd存储中。

  • kube-proxy

    在工作节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。换句话说,就是用于负责Pod网络路由,用于对外提供访问的实现。可以找到你关心的项目所在的pod节点。

  • POD

    用户划分容器的最小单位,一个POD可以存在多个容器

3. kubernets 部署方式

3.1 目前生产环境部署kubernetes集群主要由两种方式

3.1.1 kubeadm 方式部署

        kubeadm是一个K8S部署工具,提供kubeadm init和kubeadm join,用于快速部署kubernetes集群。

        kubeadm init 初始化一套集群

        kubeadm join 加入已存在集群

3.1.2 二进制方式部署

        从GitHub下载发行版的二进制包,手动部署每个组件,组成kubernetes集群。

        集群规模较多的话,推荐使用二进制部署。

3.2 其他部署方式的途径

  • yum:

    已废弃,目前支持的最新版本为2017年发行的1.5.2版本。

  • minikube:

    适合开发环境,能够快速在Windows或者Linux构建K8S集群,单点部署

  • rancher:

    基于K8S改进发行了轻量级K8S,让K3S孕育而生。阉割版

  • KubeSphere:

    青云科技基于开源KubeSphere快速部署K8S集群。可在现有的K8S集群上面安装部署,提供图形化管理界面以及可视化监控。

  • kuboard:

    也是对k8s进行二次开发的产品,新增了很多独有的功能。

  • kubeasz:

    使用ansible部署,扩容,缩容kubernetes集群。

  • 第三方云厂商:

    比如aws,阿里云,腾讯云,京东云等云厂商均有K8S的相关SAAS产品。

以上基本都是基于K8S二次开发的产品,有兴趣的可以自行了解一下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/363437.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【python】一篇文零基础到入门:快来玩吧~

本笔记材料源于: PyCharm | 创建你的第一个项目_哔哩哔哩_bilibili Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法-CSDN博客 0为什么安装python和pycharm? 不同于c,c&#xff0…

深度学习训练基于Pod和RDMA

目录 ​编辑 引言 RDMA技术概述 InfiniBand iWARP RoCE Pod和容器化环境 深度学习训练与RDMA结合 MPI和RDMA 深度学习框架与RDMA 实战:基于Pod和RDMA的深度学习训练 环境准备 步骤 YAML 性能和优势 结论 引言 随着深度学习在人工智能领域的快速发展…

微服务框架中Nacos的个人学习心得

微服务框架需要学习的东西很多,基本上我把它分为了五个模块: 第一:微服务技术模块 分为三个常用小模块: 1.微服务治理: 注册发现 远程调用 配置管理 网关路由 2.微服务保护: 流量控制 系统保护 熔断降级 服…

OneForAll采坑记录

一、OneForAll 介绍 OneForAll是一款功能强大的子域收集工具。支持子域爆破、子域名验证、子域名置换、接管等功能。处理功能强大,速度极快,体验良好。 二、安装部署问题处理 github地址:https://github.com/shmilylty/OneForAll 环境要求…

探索未来的AI革命:GPT-5的即将登场

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

HarmonyOS ArkUi ArkWeb加载不出网页问题踩坑

使用 使用还是比较简单的,直接贴代码了 别忘了配置网络权限 Entry Component struct WebPage {State isAttachController: boolean falseState url: string State title: string Prop controller: web_webview.WebviewController new web_webview.WebviewCont…

企业级堡垒机JumpServer

文章目录 JumpServer是什么生产应用场景 Docker安装JumpServer1.Docker安装2.MySQL服务安装3.Redis服务安装4.key生成5.JumpServer安装6.登录验证 系统设置邮箱服务器用户和用户组创建系统审计员资产管理用户创建资产节点资产授权查看用户的资产监控仪表盘 命令过滤器创建命令过…

c++ 设计模式 的课本范例(上)

( 0 ) 这里补充面向对象设计的几个原则: 开闭原则 OCP : 面向增补开放,面向代码修改关闭。其实反映到代码设计上就是类的继承,通过继承与多态,可以不修改原代码,又增加新的类似的功能。 依赖倒置原则 Depen…

51单片机定时炸弹-准确计时-两根线随机一根触发中断可“拆弹“(AT89C52)

一、设计介绍: 1、使用定时器按照精确时间读秒倒计时,倒计时在LCD1602中居中显示,格式为mm:ss,每秒变化一次 2、默认倒计时10分钟,时间到后显示“Time over”“(((Boom&#xff09…

抗击.michevol勒索病毒:保障数据安全的新策略

导言: 在今天高度互联的数字化环境中,数据安全面临着越来越复杂和普遍的威胁,勒索病毒如.michevol已成为了用户和企业普遍面临的风险。本文91数据恢复将探讨.michevol勒索病毒的特点、感染方式以及创新的防御策略,旨在帮助读者更…

【IJCAI2024】LeMeViT: Efficient Vision Transformer with Learnable Meta Tokens

【IJCAI2024】LeMeViT: Efficient Vision Transformer with Learnable Meta Tokens for Remote Sensing Image Interpretation 论文:https://arxiv.org/abs/2405.09789 代码:https://github.com/ViTAE-Transformer/LeMeViT 由于相邻像素和图像块之间的高…

Solana最新上线的Blink功能引爆加密圈:杀手级应用还是花拳绣腿?

近日,Solana推出了其最新功能——Blink,这一功能迅速引爆了加密圈的讨论。Blink功能能够将链上的操作,如交易、投票、支付、铸币等转化为一个可分享的链接或二维码,允许用户在不跳转其他页面的情况下直接在推特上完成上述链上操作…

【代码工厂】简单地图生成

要求 (图片来自codingame) 代码 # 定义一个函数,用于生成模式 def generate_pattern(n, a, border_char): # 初始化一个空列表,用于存储生成地图pattern []# 最上面那一行的处理line n * border_charpattern.append(line)# 遍…

建投数据人力资源管理系统APP完成迭代升级

近日,建投数据人力资源管理系统APP完成迭代升级。 此次升级思路,遵循提升移动应用的功能和用户体验;直观的界面、快速的响应速度和安全的数据存储;个性化的功能,以满足不同员工的需求和使用偏好。 人力资源管理系统A…

行业推荐!IG5216量产工具下载,IG5216开卡软件分享

国内固态硬盘常用,且有量产工具流传出来的主控厂商包括慧荣、群联、点序、英韧、得一微、瑞昱、联芸、迈威、国科、华澜微等等。 每个主控需要用各自对应的量产工具,不同的量产工具支持的闪存颗粒也有差异,因此要根据固态硬盘实际的主控型号…

SpringBoot集成道历(实现道历日期查询)

官网地址&#xff1a;官网地址https://6tail.cn/calendar/api.html 1、导入依赖 <dependency><groupId>cn.6tail</groupId><artifactId>lunar</artifactId><version>1.3.9</version></dependency><dependency><group…

【UE5.3】笔记6-第一个简单小游戏

打砖块小游戏&#xff1a; 1、制造一面砖块组成的墙 在关卡中放置一个cube&#xff0c;放这地面上&#xff0c;将其转换成蓝图类,改名BP_Cube&#xff0c;更换砖块的贴图&#xff0c;按住alt键进行拷贝&#xff0c;堆出一面墙&#xff0c;复制出来的会很多&#xff0c;全选移动…

Servlet工作原理

Servlet 工作原理 编写Servlet 创建servlet 创建一个MyServlet继承HttpServlet&#xff0c;重写doGet和doPost方法&#xff0c;也就是看请求的方式是get还是post&#xff0c;然后用不同的处理方式来处理请求&#xff0c; 2. 配置Servlet //添加参数 <servlet><se…

项目开发 TCP-Socket连接功能实现(Android端)

前段时间在公司做项目的时候遇到了一个功能需要使用TCP-Socket连接硬件设备进行通信&#xff0c;查了很多资料也只是关于HTTP-Socket相关的&#xff0c;没法满足项目的要求&#xff0c;后来查到一个相关的插件&#xff0c;现在有时间和大家分享一下。 项目简单介绍&#xff1a…

来聊聊nacos

先关注下下方公众号呗&#xff1a; 第1部分&#xff1a;引言 微服务的挑战 尽管微服务架构带来了许多好处&#xff0c;如敏捷性、可扩展性和容错性&#xff0c;但它也带来了一些挑战&#xff0c;特别是在服务发现、配置管理、服务间通信和运维管理方面。这些挑战需要有效的解…