(二十一)从零开始搭建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.mzph.cn/news/731998.shtml

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

相关文章

点胶缺陷视觉检测都是怎么检测的?

点胶工艺是许多工业生产中不可或缺的一环,而点胶缺陷的存在往往直接影响到产品质量。为了提升点胶工艺的品质控制,点胶缺陷的视觉检测成为了一个重要的技术手段。 一、点胶缺陷的类型 点胶缺陷主要包括胶点大小不均、位置偏移、漏点、多点等。这些缺陷如…

VS Code搭建远程开发环境的几种情况

VS Code远程开发环境的三种情况: 一、本地桌面系统远程Linux系统 windowswsl是属于这种情况下的一种特殊情况。 使用Remote - SSH插件来解决这种情况 二、本地桌面系统本地Docker环境 windowswslwindows上部署Docker Desktop也是属于这种情况下的一种特殊情况。…

测开面经学习笔记

1. mysql 和 redis的区别? ① 数据存储方式 MySQL:数据以表格的形式以行和列的方式存储在磁盘上,支持复杂的关系型数据模型。Redis:数据存储在内存中,因此具有更快的读写速度,但受到内存容量的限制。 ②…

IntelliJ IDEA 2020.2.4试用方法

打开idea,准备好ide-eval-resetter压缩包。 将准备好的压缩包拖入idea中 选中弹窗中的自动重置选项,并点击重置 查看免费试用时长

启动查看工具总结

启动目标:2s内优秀,2-5s普通,之后的都需要优化,热启动则是1.5s-2s内 1 看下大致串联启动流程: App 进程在 Fork 之后,需要首先执行 bindApplication Application 的环境创建好之后,就开始activ…

【Web前端】Vue核心基础

文章目录 1. Vue简介2. Vue官网使用指南3. 初识Vue3.1 搭建Vue开发环境3.2 HelloWorld案例3.3 el与data的两种写法3.4 MVVM模型3.5 模板语法 4. 数据绑定4.1 v-bind单向数据绑定4.2 v-model双向数据绑定 5. 事件处理5.1 v-on绑定事件5.2 事件修饰符5.3 键盘事件 6. 计算属性6.1…

java实现冒泡排序

目录 算法 概念 算法步骤 代码示例 例题实战 算法 概念 冒泡排序 是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误,就把他们交换过来。走访数列的工作时重复地进行直到没有再需要交换&#…

typescript学习(更新中)

目录 开发环境搭建类型如何声明有哪些类型编译配置文件 开发环境搭建 npm i -g typescripttsc检查是否安装成功 类型如何声明 // 先声明再赋值 let a: number a 1// 直接赋值 let b 1function sum(a: number, b: number): number {return a b } console.log(sum(1, 2))有…

leetcode72. 编辑距离

leetcode72. 编辑距离 题目 思路 dp[i][j] 代表 word1 到 i 位置转换成 word2 到 j 位置需要最少步数,所以, 当 word1[i] word2[j],dp[i][j] dp[i-1][j-1]; 当 word1[i] ! word2[j],dp[i][j] 1 min(dp[i-1][j-1]…

这样用redission分布式锁才优雅-自定义redission分布式锁注解(含spel表达式)

废话后面说,先上干货。 最终的使用效果是这样的: /*** 这里只是一个简单的示例,实际业务中,可能需要根据订单号查询订单信息,然后进行发货操作* 仅仅是为了证明相同订单号不能够同时操作,但是在实际的业务场…

Ubantu 18.04 如何映射IP到公网,外网可以访问

介绍一种简单的方式,就是通过路由侠 inux 系统安装路由侠,可通过两种方式进行,一种是通过直接脚本安装,一种是通过 Docker 安装。 windows下载地址:路由侠-局域网变公网 方式一:通过脚本安装 1、获取安…

java算法第十七天 | ● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和

110.平衡二叉树 leetcode链接 思路: 使用后序遍历分别求左右子树的高度,若高度只差大于一,则返回-1,否则返回当前节点的最大高度。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* Tree…

【数据分享】2013-2022年全国范围逐日SO2栅格数据

空气质量数据是在我们日常研究中经常使用的数据!之前我们给大家分享了2013-2022年全国范围逐月SO2栅格数据和逐年SO2栅格数据(均可查看之前的文章获悉详情)。 本次我们给大家带来的是2013-2022年全国范围的逐日的SO2栅格数据,原始…

阿里云几核服务器够用?内存多少合适?

阿里云服务器配置怎么选择?CPU内存、公网带宽和系统盘怎么选择?个人开发者或中小企业选择轻量应用服务器、ECS经济型e实例,企业用户选择ECS通用算力型u1云服务器、ECS计算型c7、通用型g7云服务器,阿里云服务器网aliyunfuwuqi.com整…

python基础总复习

Python基础班总复习 一、Python基础语法 1、注释概念 单行注释 # 多行注释 注释内容 ,支持换行 > 在实际工作中,主要用于实现函数说明文档 2、变量的概念 场景:保存数据,所以理论上有数据的地方都有变量! 变…

OJ_二叉排序树

题干 C实现 循环双指针法(一个指向父亲&#xff0c;一个指向待插入结点) #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <queue> using namespace std;struct TreeNode {char data;TreeNode* left;TreeNode* right; };void InsertBST(TreeNode* …

C# OpenCvSharp DNN FreeYOLO 人脸检测

目录 效果 模型信息 项目 代码 下载 C# OpenCvSharp DNN FreeYOLO 人脸检测 效果 模型信息 Inputs ------------------------- name&#xff1a;input tensor&#xff1a;Float[1, 3, 192, 320] --------------------------------------------------------------- Outp…

每日OJ题_链表⑤_力扣25. K 个一组翻转链表

目录 力扣25. K 个一组翻转链表 解析代码 力扣25. K 个一组翻转链表 25. K 个一组翻转链表 难度 困难 给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总…

音视频按照时长分类小工具

应某用户的需求&#xff0c;编写了这款根据音视频时长分类小工具。 实际效果如下&#xff1a; 显示的是时分秒&#xff1a; 核心代码&#xff1a; MediaInfo MI; if (MI.Open(strPathInput.c_str()) 0){return -1;}_tstring stDuration MI.Get(stream_t::Stream_Audio,0,_T…

斐波那契数 爬楼梯 使用最小花费爬楼梯

509. 斐波那契数 力扣题目链接(opens new window) 斐波那契数&#xff0c;通常用 F(n) 表示&#xff0c;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n) F(n -…