Kubernetes入门-Kubernetes集群构成

2024-06-19 22:04

本文主要是介绍Kubernetes入门-Kubernetes集群构成,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言

控制面板节点与工作节点

控制面板节点

工作节点

被托管的Kubernetes

用kubectl命令行工具管理Kubernetes


前言

  • 前面说过,Kubernetes是云的操作系统
  • 顾名思义,它位于应用和基础设施之间
  • Kubernetes运行在基础设施上,而应用运行在Kubernetes上,如下图所示
  • 上图显示了在4种不同的基础设施平台上运行的4个Kubernetes装置
  • 由于Kubernetes抽象了底层的基础设施,因此上图顶部的应用可以在任何一个Kubernetes装置上运行,也可以在不同的Kubernetes装置之间进行迁移
  • 我们称一个Kubernetes装置为Kubernetes集群(cluster)
  • 关于上图,还有两点需要说明一下
  • 首先,一个Kubernetes集群跨越多种基础设施的情况并不常见
  • 例如,你不可能看到单个Kubernetes集群跨多个云,也不太可能看到集群跨本地和公有云
  • 这主要是受网络速度和可靠性的制约
  • Kubernetes需要集群中的节点通过可靠的低延迟网络进行连接
  • 其次,尽管Kubernetes可以在许多平台上运行,但容器有更严格的要求:
  • Windows容器只能在有Windows节点的Kubernetes集群上运行
  • Linux容器只能在有Linux节点的集群上运行
  • 这同样适用于CPU架构——为ARM64架构构建的容器不会运行在Aarch64集群节点上

控制面板节点与工作节点

  • 一个Kubernetes集群是一台或多台安装了Kubernetes的机器
  • 这些机器可以是物理服务器、虚拟机(VM)、云实例、笔记本电脑、树莓派等
  • 在这些机器上安装Kubernetes,并将它们连接在一起,就形成了一个Kubernetes集群
  • 然后,就可以将应用部署到这个集群中
  • 我们通常把Kubernetes集群中的机器称为节点(node)
  • 说到节点,Kubernetes集群有两种类型的节点:
  • 1-控制面板节点
  • 2-工作节点
  • 在一些旧文档中可能会将控制面板节点称为“主节点”
  • 这个术语已被包容性命名倡议淘汰,这个倡议旨在避免在技术项目中使用可能有害的语言
  • 控制面板节点托管着内部Kubernetes服务,而工作节点则是运行用户应用的地方
  • 下图展示的是一个由6个节点组成的Kubernetes集群,它有3个控制面板节点和3个工作节点
  • 推荐的做法是,所有的用户应用都只在工作节点上运行,让控制面板节点运行Kubernetes系统服务

控制面板节点

  • 控制面板节点托管着内部Kubernetes系统服务,这些服务是确保Kubernetes正常运行不可或缺的,统称为控制面板
  • 控制面板可能听起来太过专业,但它不过是一种花哨的说法,意思是Kubernetes的大脑
  • 考虑到这一点,一种很好的做法是配多个控制面板节点来实现高可用性(high availability,HA)
  • 这样一来,如果其中一个出现故障,集群仍然可以继续运行
  • 在真实世界中,生产集群中通常有3或5个控制面板节点,并且它们分散在不同的故障域中
  • 不要把它们放在同一个有故障的电源上的同一个漏水的空调装置下的同一块地砖上
  • 下图是一个有3个节点的高可用控制面板,每个节点都在一个独立的故障域中,有独立的网络和电力基础设施等
  • 控制面板节点运行以下服务,它们共同组成了控制面板(集群的大脑):
  • 1-API服务器
  • 2-调度器
  • 3-存储器
  • 4-云控制器(cloud controller)
  • ……
  • API服务器是Kubernetes集群中你唯一能够直接交互的部分
  • 例如,当你向集群发送的命令被送到API服务器时,你收到的响应也都来自API服务器
  • 调度器选择在哪些工作节点上运行用户应用
  • 存储器是存储集群和所有应用的状态的地方
  • 云控制器允许Kubernetes与云服务(如存储和负载均衡器)集成
  • 后面的实践案例会把云负载均衡器与部署到Kubernetes集群的应用整合在一起

工作节点

  • 工作节点是运行用户应用的地方,可以是Linux工作节点,也可以是Windows工作节点
  • 一个集群中可同时包含Linux工作节点和Windows工作节点,Linux应用运行在Linux工作节点上,而Windows应用运行在Windows工作节点上
  • 如下图所示
  • 所有工作节点都在运行下列服务,值得了解一下:
  • 1-kubelet
  • 2-容器运行时
  • kubelet是主Kubernetes代理(agent)
  • 它将工作节点加到集群中,并与控制面板进行通信,如接收任务和报告任务的状态
  • 容器运行时负责启动和停止容器
  • Kubernetes最初使用的容器运行时是Docker,但Kubernetes于2016年引入了容器运行时接口,让这一层变成可插拔的
  • 因此,可供选择的容器运行时有很多
  • Containerd是简化版的Docker,是当今Kubernetes集群最流行的容器运行时
  • Containerd全面支持Docker创建的容器镜像

被托管的Kubernetes

  • 被托管的Kubernetes是一种消费模型,指云提供商向你出租一个Kubernetes集群,有时我们称其为Kubernetes即服务
  • 被托管的Kubernetes是获得Kubernetes最简单的方法之一
  • 在托管模式下,云提供商构建了Kubernetes集群,拥有控制面板,并负责以下所有事项:
  • 1-控制面板的性能
  • 2-控制面板的可用性
  • 3-控制面板的更新
  • 而用户通常要负责以下事项:
  • 1-工作节点
  • 2-用户应用
  • 3-支付费用
  • 被托管的Kubernetes的基本架构如下图所示
  • 大多数云提供商都有托管的Kubernetes服务

用kubectl命令行工具管理Kubernetes

  • Kubernetes集群的大部分日常管理可以通过Kubernetes命令行工具kubectl完成
  • 管理任务包括部署和管理应用,检查集群和应用的健康状况,以及执行对集群和应用的更新
  • 你可以获得适用于Linux、macOS、Windows和各种ARM/ Raspberry Pi相关的操作系统的kubectl
  • 在后面会看到如何安装这个工具
  • 下面的kubectl命令列出了集群中的所有节点

这篇关于Kubernetes入门-Kubernetes集群构成的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1076268

相关文章

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成

c++日志库log4cplus快速入门小结

《c++日志库log4cplus快速入门小结》文章浏览阅读1.1w次,点赞9次,收藏44次。本文介绍Log4cplus,一种适用于C++的线程安全日志记录API,提供灵活的日志管理和配置控制。文章涵盖... 目录简介日志等级配置文件使用关于初始化使用示例总结参考资料简介log4j 用于Java,log4c

史上最全MybatisPlus从入门到精通

《史上最全MybatisPlus从入门到精通》MyBatis-Plus是MyBatis增强工具,简化开发并提升效率,支持自动映射表名/字段与实体类,提供条件构造器、多种查询方式(等值/范围/模糊/分页... 目录1.简介2.基础篇2.1.通用mapper接口操作2.2.通用service接口操作3.进阶篇3

Python自定义异常的全面指南(入门到实践)

《Python自定义异常的全面指南(入门到实践)》想象你正在开发一个银行系统,用户转账时余额不足,如果直接抛出ValueError,调用方很难区分是金额格式错误还是余额不足,这正是Python自定义异... 目录引言:为什么需要自定义异常一、异常基础:先搞懂python的异常体系1.1 异常是什么?1.2

Python实现Word转PDF全攻略(从入门到实战)

《Python实现Word转PDF全攻略(从入门到实战)》在数字化办公场景中,Word文档的跨平台兼容性始终是个难题,而PDF格式凭借所见即所得的特性,已成为文档分发和归档的标准格式,下面小编就来和大... 目录一、为什么需要python处理Word转PDF?二、主流转换方案对比三、五套实战方案详解方案1:

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二