(二十一)从零开始搭建k8s集群——kubernates核心组件及功能介绍

前言

Kubernetes是一个可移植、可扩展、开源的平台,用于管理容器化的工作负载和服务,它促进了声明性配置和自动化。Kubernetes容器可以持续开发、集成和部署:可靠且频繁地构建和部署容器镜像,快速有效地回滚;开发与运维分离:在构建/发布时创建应用程序容器镜像,而不是在部署时,从而解耦应用程序与基础设施;观测性:不仅提供操作系统级别的信息和指标,还提供应用程序的健康状态和其他信号;可在不同的云平台和操作系统发行版上移植:支持在Ubuntu、RHEL、CoreOS、本地环境、主要公共云以及其他任何地方运行;松耦合、分布式、弹性的微服务架构:将应用程序拆分为更小、独立的组件,可以动态地部署和管理,而不是在单一用途的大型单机上运行整个单体堆栈;资源隔离:可预测的应用程序性能;资源利用率:高效且密集。

本节内容是对k8s支持的功能及核心组件的说明。

正文

k8s支持的功能

  • 服务发现和负载均衡:Kubernetes可以使用 DNS名称或IP地址暴露容器,并可以对网络流量进行负载均衡,确保在高流量情况下部署稳定。

  • 存储编排:Kubernetes 允许自动挂载来自各种提供商的存储系统,如本地存储或公共云存储,使管理和访问容器化应用程序中的持久数据更加简便。

  • 自动滚动更新和回滚:Kubernetes 可以帮助您定义容器的期望状态,并自动化更新、扩展和回滚部署,确保一致性和可靠性。

  • 自动容器装箱:通过指定容器的资源需求,Kubernetes 优化资源利用率,有效地将容器打包到集群中的节点上,最大程度地提高资源利用效率。

  • 自愈能力:Kubernetes 监控容器和工作负载的健康状况,并自动采取措施重新启动或替换失败的容器,确保应用程序保持可用和响应。

  • 密钥和配置管理:Kubernetes 提供安全机制,用于存储和管理敏感信息,如密码和 API 令牌,而无需将其暴露在配置文件或容器镜像中。

  • 批处理执行:除了长时间运行的服务,Kubernetes还支持批处理作业管理,自动替换失败的容器,并有效管理 CI 工作负载。

  • 水平扩展:Kubernetes 允许根据工作负载需求手动或自动增加或减少实例来扩展应用程序,例如基于 CPU 使用率等指标。

  • IPv4/IPv6 双栈支持:Kubernetes 支持为 Pod 和服务分配 IPv4 和 IPv6 地址,实现在具有混合寻址方案的网络中的无缝通信。

  • 可扩展设计:Kubernetes 设计时考虑了可扩展性,允许用户向集群中添加自定义功能和功能,而无需修改核心源代码,使其适应各种用例和环境。

k8s的核心组件

Control Plane Components(控制面板组件)

  • 负责全局决策和集群事件响应
kube-apiserver
  • 是集群中所有操作的入口,负责提供 REST API服务
  • 能够通过部署多个实例来实现水平扩展,实现实例之间平衡流量,以确保高效处理API请求,并提高容错能力
etcd
  • 一个分布式键值存储,用于保存集群的状态数据,包括配置数据、状态数据
  • 集群数据的后端存储,对其进行备份是非常重要的,以防止数据丢失或毁坏,并确保集群的稳定运行
kube-scheduler
  • 负责将新创建的 Pod分配给集群中的节点,根据一系列策略来选择合适的节点

  • 调度器考虑的因素包括:单个和集体资源需求、硬件/软件/策略约束、亲和性和反亲和性规范、数据位置、工作负载间干扰以及截止日期等

kube-controller-manager
  • 运行一些控制器,负责管理集群中的各种资源控制器,如副本控制器、节点控制器
  • 每个控制器是一个独立的进程,但为了降低复杂性,它们都被编译到一个单独的二进制文件中,并在单个进程中运行
cloud-controller-manager
  • 将集群链接到云服务提供商的 API,并将与该云平台交互的组件与仅与集群交互的组件分离开来

Node Components(节点组件)

kubelet
  • 在每个节点上运行,负责与容器运行时(如 Docker)交互,管理 Pod 的生命周期
  • kubelet 负责维护节点上的容器状态,监控它们的健康状况,并根据 PodSpecs 的定义来启动、停止或重新启动容器
  • kubelet 还与容器运行时(如 Docker、containerd 等)进行交互,以实际创建和管理容器
kube-proxy
  • 负责维护网络规则和代理网络流量,实现 Kubernetes服务的负载均衡
  • 在节点上维护网络规则,这些网络规则允许来自集群内部或外部网络会话的通信到达您的 Pod
Container runtime
  • 负责在 Kubernetes 环境中管理容器的执行和生命周期

  • 是一个符合 Kubernetes CRI(容器运行时接口)规范的实现

Addons

  • 添加到 Kubernetes 集群的额外组件或服务,用于扩展其功能以超越核心特性

  • Dashboard web控制台、网络插件、Ingress 控制器等

DNS

  • 用于在Kubernetes集群内部提供服务发现和命名解析的重要组件

  • 通过服务名称来进行服务间通信,而无需担心具体的IP地址变化或者服务的部署位置

Web UI (Dashboard)

  • Dashboard是Kubernetes集群的通用、基于Web的用户界面

  • 用户可以方便地查看和管理集群资源、部署新应用、监控应用性能,并进行故障排除等操作

Container Resource Monitoring 

  • 容器的通用时间序列指标,帮助用户跟踪容器的资源使用情况,例如CPU利用率、内存使用量等指标,并以可视化的方式呈现这些数据

Cluster-level Logging

  • 集群级别的日志记录机制负责将容器日志保存到一个中央日志存储库,并提供搜索/浏览界面。

  • 收集和管理来自各个容器的日志数据,使他们能够在需要时查找特定的日志信息、分析日志内容,并监控整个集群中的应用程序运行情况

Network Plugins

结语

至此,关于kubernates核心组件及功能介绍到这里就结束了,我们下期见。。。。。。

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

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

相关文章

【计算机组成与原理】基于SPIM-CACHE的Cache实验

实验目的 (1)熟悉SPIM-CACHE模拟器环境 (2)深入认识CACHE的工作原理及其作用。 实验内容 (1)阅读实验指导书资料 (2)下载SPIM-CACHE软件,理解英文论文的基本内容之后&a…

css使用

一、什么是CSS <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>div{color: red;}</style> </head> <body><div>Hello CSS</div></…

每日好题3.5

前缀和 这个题目巨妙&#xff0c;打的时候没写出来&#xff0c;后面补题发现太牛了 思路&#xff1a;当前区间左端点 L L L &#xff0c;当我们向右移动一次&#xff0c;就相当于&#xff0c;原式 - f ( L ) f ( L 1 e 18 ) f(L) f(L 1e18) f(L)f(L1e18)&#xff0c;值就…

【SQL】指定日期的产品价格(IFNULL函数)

题目描述 leetcode题目&#xff1a;指定日期的产品价格 思路 找出所有的产品的指定的日期的价格&#xff1b;若找不到某个产品的更改日期&#xff0c;则将该产品价格设置为10。 关键点&#xff1a; if没有16号的&#xff0c;怎么找到前一个日期的&#xff1f;> 日期小…

html标签元素类型,web开发工具

面试题 HTML 1&#xff0c;html5有哪些新特性&#xff1f; 2&#xff0c;html5移除了那些元素&#xff1f; 3&#xff0c;如何处理HTML5新标签的浏览器兼容问题&#xff1f; 4&#xff0c;如何区分 HTML 和 HTML5&#xff1f; CSS 1&#xff0c;CSS 选择符有哪些&#xf…

uniapp 手写 简易 时间轴 组件

一、案例如图 该案例设计条件&#xff1a; 左侧时间 和竖线、点、内容都是居中对其的&#xff0c;上下时间点中间要有一段距离 二、编写逻辑 1. 布局结构&#xff1a;一共三个元素&#xff0c;左侧是时间和黑点&#xff0c;中间是线条&#xff0c;右侧是内容 2. 样式难点&#…

【SpringBoot】秒杀业务:redis+拦截器+自定义注解+验证码简单实现限流

&#x1f3e1;浩泽学编程&#xff1a;个人主页 &#x1f525; 推荐专栏&#xff1a;《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》《项目实战》 &#x1f6f8;学无止境&#xff0c;不骄不躁&#xff0c;知行合一 文章目录 …

STM32CubeMX学习笔记12 ---低功耗模式

在实际使用中很多产品都需要考虑低功耗的问题&#xff0c;STM32F10X提供了三种低功耗模式&#xff1a;睡眠模式&#xff08;Sleep mode&#xff09;、停机模式&#xff08;Stop mode&#xff09;和待机模式&#xff08;Standby mode&#xff09;。这些低功耗模式可以有效减少系…

【笔记】ArkTS 语言(OpenHarmony系统)

一、官方简介和文档 介绍&#xff1a;aArkTS 语言 | 华为开发者联盟 (huawei.com) 学习指南&#xff08;文档&#xff09;&#xff1a;初识ArkTS语言-学习ArkTS语言-入门 | 华为开发者联盟 (huawei.com) 二、ArkTS语言知识 &#xff08;一&#xff09;编程语言介绍 Mozilla创…

jmeter 弹性压测数据库

当前版本&#xff1a; jmeter 5.6.3mysql 5.7.39 简介 JMeter 通过 Open Model Thread Group 来实现弹性模拟负载测试&#xff0c;它是5.4.1 版本中引入的一个实验性线程组。例如设置多个线程模式&#xff0c;再根据这些线程模式调整不同的并发数、暂停时间。由于Open Model T…

【Linux】Linux C编程

gcc编译器 gcc [options] [filenames] 其中&#xff0c;options是编译器所需要的选项参数&#xff0c;filenames是文件名。 gcc编译过程 C语言编译过程一般可以分为预处理、编译、汇编、链接四个步骤。 1.预处理阶段 预处理阶段主要处理宏定义和include&#xff0c;并进行语…

Luajit 2023移动版本编译 v2.1.ROLLING

文章顶部有编好的 2.1.ROLLING 2023/08/21版本源码 Android 64 和 iOS 64 luajit 目前最新的源码tag版本为 v2.1.ROLLING on Aug 21, 2023应该是修正了很多bug, 我是出现下面问题才编的. cocos2dx-lua 游戏 黑屏 并报错: [LUA ERROR] bad light userdata pointer 编…