一、Kubernetes介绍与集群架构

news2024/11/24 16:26:19

Kubernetes介绍与集群架构

一、认识容器编排工具

  • docker machine
    • 主要用于准备docker host
    • 现已弃用
    • 建议使用docker desktop
  • docker compose
    • Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。
    • 使用 Compose,您可以使用 YAML 文件来配置应用程序的服务。
    • 使用一个命令,您可以从您的配置中创建并启动所有服务。
  • docker swarm
    • 内置于docker引擎中
    • 对docker引擎进行集群级别的管理
  • 分布式设计,可以让集群资源更多,管理更多的主机
    • 声明式服务模型,通过YAML文件定义应用程序服务所需状态
    • 服务规模可扩大可缩小,保持用户期望状态
    • 服务发现
    • 负载均衡
    • 滚动更新等
    • docker service
    • docker stack
  • kubernetes
    • Kubernetes作为一个容器集群管理系统,用于管理容器云平台中多个主机上的容器应用,Kubernetes的目标是让部署容器化的应用变得简单且高效,所以 Kubernetes 提供了应用部署,规划,更新,维护的一整套完整的机制。
    • Kubernetes没有固定要求容器的格式,但是Kubernetes使用它自己的API和命令行接口来进行容器编排。
    • 除了Docker容器之外,Kubernetes还支持其他多种容器,如 Containerd、rkt、CoreOS 等。
    • Kubernetes 是自成体系的管理工具,可以实现容器调度,资源管理,服务发现,健康检查,自动伸缩,更新升级等,也可以在应用模版配置中指定副本数量,服务要求(IO 优先;性能优先等),资源使用区间,标签(Labels等)来匹配特定要求达到预期状态等,这些特征便足以征服开发者,再加上 Kubernetes 有一个非常活跃的社区。它为用户提供了更多的选择以方便用户扩展编排容器来满足他们的需求。但是由于 Kubernetes 使用了自己的 API 接口,所以命令系统是另外一套系统,这也是 kubernetes 应用门槛比较高的原因所在。
  • mesos+marathon
    • Apache Mesos 是一个分布式系统内核的开源集群管理器,Apache Mesos 的出现要远早于 Docker Swarm 和 Kubernetes。
    • 其结合Marathon 这个基于容器的应用程序的编排框架,它为 Docker Swarm 和 Kubernetes 提供了一个有效的替代方案。
    • Mesos 能够在同样的集群机器上运行多种分布式系统类型,可以更加动态高效的共享资源。
    • Messos 也提供服务失败检查,服务发布,服务跟踪,服务监控,资源管理和资源共享。
    • Messos 可以扩展伸缩到数千个节点。
    • 如果你拥有很多的服务器而且想构建一个大的集群的时候,Mesos 就派上用场了。
    • 很多的现代化可扩展性的数据处理应用都可以在 Mesos 上运行,包括大数据框架 Hadoop、Kafka、Spark。
    • 但是大而全,往往就是对应的复杂和困难,这一点体现在 Messos 上是完全正确,与Docker 和 Docker Swarm 使用同一种 API 不同的,Mesos 和 Marathon 都有自己的 API,这使得它们比其他编排系统更加的复杂。Apache Mesos 是混合环境的完美编配工具,由于它包含容器和非容器的应用,虽然 Messos 很稳定,但是它的使用户快速学习应用变得更加困难,这也是在应用和部署场景下难于推广的原因之一。
分布式资源管理框架主要特点备注
Apache Mesos功能强大,但系统复杂不易用2019年Twitter宣布弃用
Docker Swarm集成在docker引擎中,不需要单独安装,但功能较少2019年阿里云宣布弃用
Google Kubernetes功能强大,但学习成本与管理成本高目前没有替代者,多领域应用

二、认识kubernetes

2.1 kubernetes含义、起源、归属

2.1.1 含义

希腊语:舵手、飞行员

1557045795562

2.1.2 起源

  • 源自于谷歌Borg

  • 使用golang语言开发

  • 简称为k8s

2.1.3 归属

现归属于CNCF

  • 云原生(CloudNative)计算基金会

  • 是一个开源软件基金会,致力于使云计算普遍性和持续性

  • 官方:http://www.cncf.io

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L0XqwQge-1691633580010)(kubernetes介绍与集群架构.assets/image-20220324160124674.png)]

2.2 kubernetes版本

  • 2014年9月第一个正式版本
  • 2015年7月1.0版本正式发布
  • 现在稳定版本为1.23
  • 主要贡献者:Google,Redhat,Microsoft,IBM,Intel
  • 代码托管github:https://github.com/kubernetes/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HQDav7ue-1691633580012)(kubernetes介绍与集群架构.assets/1557046658333.png)]

2.3 Kubernetes用户

  • 2017年docker官方宣布原生支持kubernetes
  • RedHat公司 PaaS平台 OpenShift核心是kubernetes
  • Rancher平台核心是kubernetes
  • 现国内大多数公司都可使用kubernetes进行传统IT服务转换,以实现高效管理等。

2.4 Kubernetes网址

  • 官方网址

https://kubernetes.io/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rpDcPapc-1691633580013)(kubernetes介绍与集群架构.assets/1557046832480.png)]

https://kubernetes.io/zh/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CojzCz5r-1691633580014)(kubernetes介绍与集群架构.assets/image-20220324145026425.png)]

  • 中文社区

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H5IMR0uj-1691633580015)(kubernetes介绍与集群架构.assets/image-20220324145137982.png)]

三、kubernetes架构

3.1 软件架构说明

  • 有中心节点分布式架构

    • hadoop集群
    • ceph集群
  • 无中心节点分布式架构

    • glusterFS
  • kubernetes是具有中心节点的分布式架构,也就是说有master管理节点

    • Master Node
      • 中心节点
      • manager
      • 简单叫法
        • master节点
    • Minion Node
      • 工作节点
      • worker
      • 简单叫点
        • node节点
        • worker节点

3.2 Kubernetes架构图示图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WUAau0oa-1691633580016)(kubernetes介绍与集群架构.assets/1557048978763.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mJFiJkkI-1691633580017)(kubernetes介绍与集群架构.assets/2)]

四、Kubernetes集群节点组件

4.1 Master节点组件

master节点是集群管理中心,它的组件可以在集群内任意节点运行,但是为了方便管理所以会在一台主机上运行Master所有组件,并且不在此主机上运行用户容器

Master组件包括:

  • kube-apiserver

​ 用于暴露kubernetes API,任何的资源请求/调用操作都是通过kube-apiserver提供的接口进行。

  • kube-controller-manager

​ 控制器管理器,用于对控制器进行管理,它们是集群中处理常规任务的后台线程。

  • kube-scheduler

    监视新创建没有分配到Node的Pod,为Pod选择一个Node运行。

  • ETCD

    是kubernetes提供默认的存储系统,保存所有集群数据。

4.2 Node节点组件介绍

node节点用于运行以及维护Pod, 管理volume(CVI)和网络(CNI),维护pod及service等信息

Node组件包括:

  • kubelet
    • 负责维护容器的生命周期(创建pod,销毁pod),同时也负责Volume(CVI)和网络(CNI)的管理
  • kube-proxy
    • 通过在主机上维护网络规则并执行连接转发来实现service(iptables/ipvs)
    • 随时与apiserver通信,把Service或Pod改变提交给apiserver,保存至etcd(可做高可用集群)中,负责service实现,从内部pod至service和从外部node到service访问。
  • Container Runtime
    • 容器运行时(Container Runtime)
    • 负责镜像管理以及Pod和容器的真正运行
    • 支持docker/containerd/Rkt/Pouch/Kata等多种运行时

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CTB2OTGz-1691633580018)(kubernetes介绍与集群架构.assets/k8s架构图2.png)]

4.3 Add-ons介绍

Add-ons(附件)使功能更丰富,没它并不影响实际使用,可以与主体程序很好结合起来使用

  • coredns/kube-dns: 负责为整个集群提供DNS服务
  • Ingress Controller 为服务提供集群外部访问
  • Heapster/Metries-server 提供集群资源监控(监控容器可以使用prometheus)
  • Dashboard 提供集群GUI
  • Federation 提供跨可用区的集群
  • Fluentd-elasticsearch 提供集群日志采集、存储与查询

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c语言--浮点数(float)与0值比较

我们定义一个float类型的数据a,赋值为123456789并输出: int main() {float a;a 123456789;printf("%f\n",a);return 0; }输出结果为: 由此可以看出,程序输出的结果并不是其被赋予的值。即说明了浮点数存在一定的误差。…

MD-MTSP:星雀优化算法NOA求解多仓库多旅行商问题MATLAB(可更改数据集,旅行商的数量和起点)

一、星雀优化算法NOA 星雀优化算法(Nutcracker optimizer algorithm,NOA)由Mohamed Abdel-Basset等人于2023年提出,该算法模拟星雀的两种行为,即:在夏秋季节收集并储存食物,在春冬季节搜索食物的存储位置。星雀优化算法(Nutcrack…

Optional 使用方法详解

Optional的作用是什么?他都有哪些方法?阿里规范点名说尽量用Optional来避免空指针,那么什么场景用Optional?本篇文章围绕这三点来进行讲解。 一、Optional类的来源 到目前为止,臭名昭著的空指针异常是导致Java应用程…

Go For Web:踏入Web大门的第一步——Web 的工作方式

Web 的工作方式 了解当你访问一个网页时,背后是如何运作的,发生了一些什么? 其实当你输入网址(URL)并按下回车之后,你的浏览器相当于扮演了 客户端 的角色,首先你的浏览器会去请求 DNS 服务器进…

uniapp软键盘谈起遮住输入框和头部被顶起的问题解决

推荐: pages.json中配置如下可解决头部被顶起和表单被遮住的问题。 { "path": "pages/debug/protocol/tagWord", "style": { "app-plus": { "soft…

外呼系统是什么?有什么功能?AI智能系统人工系统

很多企业往往会选择通过使用外呼系统来解决封卡问题。与传统人工拨打相比,外呼系统一方面可以协助销售进行高效外呼,同时还能保障线路稳定不封号,与系统的接入也可以保证客户信息的跟进,助力销售持续性跟进。但是看到这里也不要误…

php通过各种函数判断0和空php实例

php通过各种函数判断0和空php实例 本文给大家介绍php同各种函数判断0和空的方法,在文章给大家补充介绍了php 语法里0不等于null为空的解决办法 补充:下面给大家介绍下php 语法里0不等于null为空的解决办法 今天遇到这样一个问题是这样的: php 语句里,我…

Allure2测试报告详解

目录: allure2安装allure2运行方式allure2报告生成allure2报告中添加用例标题allure2报告中添加用例步骤allure2报告中添加用例链接allure2报告中添加用例分类allure2报告中添加用例描述allure2报告中添加用例优先级allure2报告中添加用例支持tags标签allure2报告中…

冠达管理:A股继续缩量整理 创业板指数走势相对偏强

周三,A股低开后震动调整,三大指数均小幅跌落,创业板指相对偏强。到收盘,上证综指跌0.49%,报3244.49点;深证成指跌0.53%,报11039.45点;创业板指跌0.01%,报2228.73点。 资金…

用于3D MRI和CT扫描的深度学习模型总结

医学成像数据与其他我们日常图像的最大区别之一是它们很多都是3D的,比如在处理DICOM系列数据时尤其如此。DICOM图像由很多的2D切片组成了一个扫描或身体的特定部分。 那么如何为这类数据构建深度学习解决方案呢?本文中将介绍6种神经网络架构,可以使用它…

Window版 Redis6.0.6安装

一、准备工作 下载Redis6.0.6版本(redis官网地址:http://www.redis.cn/download.html) 下载MSYS2(清华的源:https://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/x86_64/) 安装板exe结尾的文件&#xf…

chapter14:springboot与安全

Spring Boot与安全视频 Spring Security, shiro等安全框架。主要功能是”认证“和”授权“,或者说是访问控制。 认证(Authentication)是建立在一个声明主体的过程(一个主体一般指用户,设备或一些可以在你的应用程序中…

【ARM64 ATF 系列 3 -- ARM64 warm reset 与 cold reset】

文章目录 ARM64 Reset1.1.1 reset 运行级别1.1.2 warm reset 寄存器1.1.3 PSCI Suspend/Resume ARM64 Reset ARMv8-A支持两种复位,冷复位和热复位。两者主要区别是冷复位会将debug 功能模块也一同复位,热复位在默认情况则不会复位 debug 功 能模块。 处理…

手机便签中可以打勾的圆圈或小方块怎么弄?

在日常的生活和工作中,很多网友除了使用手机便签来记录灵感想法、读书笔记、各种琐事、工作事项外,还会用它来记录一些清单,例如待办事项清单、读书清单、购物清单、旅行必备物品清单等。 在按照记录的清单内容来执行的时候,为了…

创建好的VMware虚拟机如何连接上外网?MobaX和XShell如何连接虚拟机

配置虚拟机网卡 首先点击VMware菜单栏,编辑-虚拟网络编辑器-更改设置 选择VMnet8-NAT设置,并记住子网IP之后有用 记住网关IP 修改实际创建的虚拟机网卡 修改设置,vi /etc/sysconfig/network-scripts/ifcfg-ens32 修改前: 修…

预测地震引发的洪水

当断层陡坡像水坝一样发挥作用时,地表破裂地震可能会突然改变河流的路线。研究人员现已成功模拟发生在新西兰的此类事件。 当断层位移突然改变地貌时,地表破裂地震可能会改变河流的路线,例如新西兰的怀奥托阿/克拉伦斯河,如图所示…

SpringBoot 的自动装配特性

1. Spring Boot 的自动装配特性 Spring Boot 的自动装配(Auto-Configuration)是一种特性,它允许您在应用程序中使用默认配置来自动配置 Spring Framework 的各种功能和组件,从而减少了繁琐的配置工作。通过自动装配,您…

算法40:移动零

一、需求 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2: 输入: nums …

opencv 基础54-利用形状场景算法比较轮廓-cv2.createShapeContextDistanceExtractor()

注意:新版本的opencv 4 已经没有这个函数 cv2.createShapeContextDistanceExtractor() 形状场景算法是一种用于比较轮廓或形状的方法。这种算法通常用于计算两个形状之间的相似性或差异性,以及找到最佳的匹配方式。 下面是一种基本的比较轮廓的流程&…

B2B2C多商户电子商务网站开发--海外商城系统搭建

一、明确目标与需求 在开始搭建海外商城系统之前,企业需要明确自己的目标和需求。例如,要面向哪些国家和地区、主要销售哪些产品、需要提供哪些语言和货币支持等。这些目标和需求将有助于企业制定合理的开发计划和方案。 二、选择合适的开发平台和工具…