一、Kubernetes介绍与集群架构

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.mzph.cn/news/30020.shtml

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

相关文章

电源控制--对数与db分贝

在控制理论中,"db"通常表示分贝(decibel)的缩写。分贝是一种用于度量信号强度、增益或衰减的单位。 在控制系统中,分贝常用于描述信号的增益或衰减。通常,增益以正数的分贝值表示,而衰减以负数的…

分布式定时任务框架Quartz总结和实践(1)

一、概述 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或…

营收、净利同比微增,喜临门品牌升级“临门一脚”?

8月8日晚,喜临门发布2023上半年业绩报告。根据财报,2023年上半年,喜临门营业收入约38.05亿元,同比增加5.53%;归属于上市公司股东的净利润约2.22亿元,同比增加1.2%。 如果仅从这份财报看,喜临门…

解决Spring Boot 2.6及之后版本取消了循环依赖的支持的问题

目录 1、问题: 2、报错: 3、解决方案: 1、问题: 循环依赖指的是两个或者多个bean之间相互依赖,形成一个闭环。直接表现为两个service层互相调用对方。 此时会遇到以下问题: 2、报错: 当启动项目时&…

Python AI 绘画

Python AI 绘画 本文我们将为大家介绍如何基于一些开源的库来搭建一套自己的 AI 作图工具。 需要使用的开源库为 Stable Diffusion web UI,它是基于 Gradio 库的 Stable Diffusion 浏览器界面 Stable Diffusion web UI GitHub 地址:GitHub - AUTOMATI…

【设计模式】-建造者模式

Java建造者模式:创建复杂对象的灵活构建者 在软件开发中,我们经常遇到需要创建一个复杂对象的情况。如果使用传统的构造函数进行对象创建,可能会导致构造函数参数过多,难以管理和维护。建造者模式(Builder Pattern&am…

数据结构-队列(C语言的简单实现)

简介 队列也是一种数据结构,队列也可以用来存放数字每次只能向队列里将入一个数字,每次只能从队列里获得一个数字在队列中,允许插入的一段称为入队口,允许删除的一段称为出队口它的原则是先进先出(FIFO: first in first out)&…

Docker之jenkins部署harbor在harbor中完成部署

Docker之jenkins部署harbor在harbor中完成部署 1、harbor作用 Harbor允许用户用命令行工具对容器镜像及其他Artifact进行推送和拉取,并提供了图形管理界面帮助用户查阅和删除这些Artifact。在Harbor 2.0版本中,除容器镜像外,Harbor对符合OCI…

商品推荐系统浅析 | 京东云技术团队

一、综述 本文主要做推荐系统浅析,主要介绍推荐系统的定义,推荐系统的基础框架,简单介绍设计推荐的相关方法以及架构。适用于部分对推荐系统感兴趣的同学以及有相关基础的同学,本人水平有限,欢迎大家指正。 二、商品…

【ChatGPT 指令大全】怎么使用ChatGPT辅助程式开发

目录 写程式 解读程式码 重构程式码 解 bug 写测试 写 Regex 总结 在当今快节奏的数字化世界中,程式开发变得越来越重要和普遍。无论是开发应用程序、网站还是其他软件,程式开发的需求都在不断增长。然而,有时候我们可能会遇到各种问题…

直播课 | 大橡科技研发总监丁端尘博士“类器官芯片技术在新药研发中的应用”

从类器官到类器官芯片,正在生物科学领域大放异彩。 药物研发需要新方法 众所周知,一款新药是一个风险大、周期长、成本高的艰难历程,国际上有一个传统的“双十”说法——10年时间,10亿美金,才可能成功研发出一款新药…

SpringCloud实用篇4——MQ RabbitMQ SpringAMQP

目录 1 初识MQ1.1 同步和异步通讯1.1.1 同步通讯1.1.2 异步通讯 1.2 技术对比 2.快速入门2.1 安装RabbitMQ2.1.1 单机部署2.1.2集群部署 2.2 RabbitMQ消息模型2.3.导入Demo工程2.4 入门案例2.4.1 publisher实现2.4.2 consumer实现 3 SpringAMQP3.1 Basic Queue 简单队列模型3.1…

玩一玩通义千问Qwen开源版,Win11 RTX3060本地安装记录!

大概在两天前,阿里做了一件大事儿。 就是开源了一个低配版的通义千问模型--通义千问-7B-Chat。 这应该是国内第一个大厂开源的大语言模型吧。 虽然是低配版,但是在各类测试里面都非常能打。 官方介绍: Qwen-7B是基于Transformer的大语言模…

Java EE 突击 9 - Spring Boot 日志文件

Spring Boot 日志文件 学习目标一 . 日志有什么用1.1 日志格式说明 二 . 自定义日志打印2.1 得到日志对象2.2 使用日志对象提供的方法 , 输出自定义的日志内容2.3 日志的级别 三 . 日志持久化3.1 在配置文件里面设置日志名称3.2 设置日志的保存目录 四 . 日志级别的设置五 . 简…

flutter 手写日历组件

先看效果 直接上代码 calendar_popup_view.dart import package:flutter/material.dart; import package:intl/intl.dart;import custom_calendar.dart; import hotel_app_theme.dart;class CalendarPopupView extends StatefulWidget {const CalendarPopupView({required th…

【【萌新的STM32 学习-6】】

萌新的STM32 学习-6 BSP 文件夹,用于存放正点原子提供的板级支持包驱动代码,如:LED、蜂鸣器、按键等。 本章我们暂时用不到该文件夹,不过可以先建好备用。 CMSIS 文件夹,用于存放 CMSIS 底层代码(ARM 和 ST…

深度学习之用PyTorch实现逻辑回归

0.1 学习视频源于:b站:刘二大人《PyTorch深度学习实践》 0.2 本章内容为自主学习总结内容,若有错误欢迎指正! 代码(类比线性回归): # 调用库 import torch import torch.nn.functional as F#…

HDFS小文件解决方案---archive归档文件命令

小文件解决方案 背景Archive概述创建archive查看归档文件查看归档之后的样子查看归档文件之前的样子 提取archivearchive注意事项 背景 hdfs并不擅长存储小文件,因为每个文件最少一个block,每个block的元数据都会在namenode占用内存,如果存在…

Linux驱动之设备树添加蜂鸣器驱动

目录 一、蜂鸣器简介 二、硬件原理分析 三、蜂鸣器驱动原理 四、开发环境 五、修改设备树文件 1、添加 pinctrl 节点 2、添加 BEEP 设备节点 3、检查 PIN 是否被其他外设使用 六、蜂鸣器驱动程序编写 七、测试程序编写 八、运行验证 在 I.MX6U-ALPHA 开发板上有一个有源…

一种水文水利行业满管非满管双声道流量计安装调试

供电电源 用户应该特别注意:若是交流(AC220V)供电的主机插入直流电源,或者直流(DC24V)供电的主机接入AC220V电源,就会把流量计烧毁。 普通主机(包括固定式主机、盘装式主机&#x…