当前位置: 首页 > news >正文

Kubernetes(K8S)内部功能总结

Kubernetes(K8S)是云技术的最核心的部分,也是构建是云原生的基石

K8S

K8S,是Kubernetes的缩写,是Google开发的容器编排平台,现在由云原生计算基金会(CNCF)进行维护。

K8S,主要解决以下4大点:

1、容器编排

Docker解决了容器部署的问题,容器部署后,就会涉及到容器的编排。

K8S是一个强大而灵活的容器编排平台,可以帮助用户轻松地部署、扩展、和管理容器化应用程序。

2、容器管理

K8S可以管理多个容器化的应用程序,它负责调度、和管理容器实例的生命周期,包括:创建、启动、监控、重启和销毁等操作。

3、自动化部署

K8S可以自动化地部署,和扩展容器化的应用程序。

并且,K8S还可以根据应用程序的负载需求,自动扩展容器实例数量,确保应用程序能够满足变化的负载需求。

4、安全可用

K8S具有强大的高可用性、和容错性,可以在节点故障、或者容器故障时,自动重新调度容器实例,确保应用程序的可用性。

K8S架构

K8S架构,如下图所示:

K8S主要会包含:主节点(Master)、和子节点(Node),这两大组件。

Master组件

Master 组件,是 K8S控制平面的核心部分,负责:管理整个集群的状态、和配置,类似人的《大脑》。

Master 组件通常运行在单独的节点上,以确保高可用性和可靠性。

1.kube-apiserver

kube-apiserver :是 Kubernetes 集群的前端接口,是所有组件、和用户与集群通信的,唯一入口。

kube-apiserver 提供了RESTful API接口,用于管理,比如:集群状态、配置、和操作...等。

并且,kube-apiserver 还可用通过认证、授权、和准入控制,来保护、和管理 API 的访问权限。

2.etcd

etcd 是一个分布式、一致性的键值存储数据库,这个与Redis类似,都是key-value的组件。

etcd 主要用于存储:集群的配置信息、状态、和元数据,这些信息都存储在etcd中。

3.kube-scheduler

kube-scheduler :是 Kubernetes 的调度组件,负责将新创建的 Pod ,调度到集群中的节点上,并考虑节点资源的可用性、和负载情况。

4、kube-controller-manager

Kubernetes控制器管理器,包含:多个控制器,负责监控集群的状态,并根据预设的期望状态来实现集群的自愈、和自动化操作。

常见的控制器包括 ReplicaSet 控制器、Deployment 控制器、StatefulSet 控制器...等等,如下图所示:

这些控制器,主要负责管理:Pod 、和其他资源的生命周期,确保它们按照用户期望的方式运行、和管理。

2、Node组件

Node 节点是 Kubernetes 集群的工作节点,类似K8S的手和脚,类似《四肢》,执行Master的操作指令。

主要分为,如下组件:

  • kubelet: kubelet负责:管理节点上的Pod和容器,与主Master通信,并根据Master的指令创建、启动、监控、和终止Pod。

  • kube-proxy: kube-proxy负责:实现Kubernetes Service的负载均衡和代理转发,以及维护网络规则和iptables规则等。

  • Container Runtime: 负责管理和运行容器,比如:Docker、containerd......等容器,都可用在运行。

3、Networking组件

Pod网络插件,负责为Pod分配IP地址,并提供Pod之间和Pod与外部网络之间的网络通信。

Cluster网络组件,负责为集群中的节点分配IP地址,并提供节点之间的通信。

K8S和Docker的关系

Docker 、和 Kubernetes 是两个不同的技术,它们分别解决:容器化应用程序、和容器化编排。

两者的关系,类似:操作系统和应用场景的关系,两者主要是:结合起来使用的。

Docker 是一种开源的容器化平台,用于:创建、打包和运行容器化应用程序。

Docker 主要提供了容器构建、镜像管理、容器运行、和容器存储等功能,适用于单个容器应用程序的构建和部署。

而K8S, 则是一个容器编排平台,用于自动部署、扩展和管理容器化应用程序的。

K8S支持多种容器运行时环境,包括:Docker、containerd、cri-o 等,也就是说Docker只是K8S其中的一种容器而已。

尽管,K8S不依赖于 Docker,但 Docker 作为目前最流行、和广泛使用的容器运行时环境,通常被视为K8S的默认容器。

K8S总结

总之,K8S提供了容器编排和集群管理的能力,而 Docker 提供了容器化应用程序的构建、打包和运行的能力,两者结合起来共同构建云原生系统。

相关文章:

Kubernetes(K8S)内部功能总结

Kubernetes(K8S)是云技术的最核心的部分,也是构建是云原生的基石 K8S K8S,是Kubernetes的缩写,是Google开发的容器编排平台,现在由云原生计算基金会(CNCF)进行维护。 K8S&#xff…...

智谱最新模型GLM4是如何练成的

写在前面 这篇博客将基于《ChatGLM: A Family of Large Language Models from GLM-130B to GLM-4 All Tools》,深入剖析 GLM-4 系列在**模型架构设计、预训练、后训练(对齐)、以及关键技术创新(如长上下文处理、Agent 能力构建)**等环节的实现逻辑与设计考量,带你全面了…...

类头文件相互包含的问题

1.预编译指令: #ifndef CLASS_A_ #define CLASS_A_#include CLASS_B.h#endif 2.#pragma once 3.将类A中声明类B,并类中声明类B的指针,在类中的实现文件中包含类B的头文件。在类B中包含类A的头文件 a.h:class Bclass A {public:private:B*…...

云原生周刊:K8s 中的 GPU 共享

开源项目推荐 A2A Google 的 Agent2Agent(A2A)协议是一个开源标准,旨在促进不同框架和供应商构建的 AI 代理之间的互操作性。它允许代理通过统一的协议安全地交换信息、协同执行任务,并在多种企业平台和云环境中无缝协作。 A2A…...

(五)机器学习---决策树和随机森林

在分类问题中还有一个常用算法:就是决策树。本文将会对决策树和随机森林进行介绍。 目录 一.决策树的基本原理 (1)决策树 (2)决策树的构建过程 (3)决策树特征选择 (4&#xff0…...

DeepReaserch写的文献综述示例分享

目录 DeepReaserch提供的文献综述: 人工智能在医疗影像诊断中的研究进展综述(2015–2025) 引言 1 近十年研究进展回顾 1.1 深度学习崛起阶段(2015–2017年) 1.2 方法完善与临床初探(2018–2020年&…...

Token安全存储的几种方式

文章目录 1. EncryptedSharedPreferences示例代码 2. SQLCipher示例代码 3.使用 Android Keystore加密后存储示例代码1. 生成密钥对2. 使用 KeystoreManager 代码说明安全性建议加密后的几种存储方式1. 加密后采用 SharedPreferences存储2. 加密后采用SQLite数据库存储1. Token…...

阶段性使用总结-通义灵码

序言 前段时间用通义灵码,参加了下数字中国闽江流域的比赛。https://www.dcic-china.com/competitions/10173 最后成绩一般般,106名,大概有2000多人参加这题目,估计有一堆小号。 按照下面这个思路建模的,迭代了大概15…...

SpringBoot 与 Vue3 实现前后端互联全解析

在当前的互联网时代,前后端分离架构已经成为构建高效、可维护且易于扩展应用系统的主流方式。本文将详细介绍如何利用 SpringBoot 与 Vue3 构建一个前后端分离的项目,展示两者如何通过 RESTful API 实现无缝通信,让读者了解从环境搭建、代码实…...

Flutter 图标和按钮组件

引言 在 Flutter 应用开发中,图标和按钮是构建用户界面不可或缺的元素。图标能够以直观的图形方式传达信息,增强应用的视觉吸引力;而按钮则是用户与应用进行交互的重要途径。本文将详细介绍 Flutter 中图标和按钮组件的使用,涵盖…...

大模型平台Dify工作流高效调用Ragflow知识库,解决其原生知识库解析和检索能力不足的问题

Dify调用Ragflow知识库的详细步骤,安装详细部署在我之前文章 多图超详细:Docker安装知识库AI客服RAGFlow的详细步骤、使用教程及注意事项:。超详细:Dify大语言模型工作流开发平台的安装与使用,deepseek知识库客服等。…...

数据库的基本原则

数据库的核心原则 原子性与持久性:原子性(Atomicity)确保一个事务中的所有操作要么全部完成,要么完全不执行,不会出现部分完成的情况。持久性(Durability)则保证一旦事务提交成功,即…...

项目集管理汇报报告 (范本)

该文档适用于企业管理层、项目经理、项目团队成员以及对项目集管理感兴趣的人员。它对企业项目管理至关重要,通过全面分析 揭示了如目标达成率低、数据缺失严重、成本进度管控有风险等关键问题,为管理层提供决策依据,助力其了解项目整体状况&…...

阿里云 MSE Nacos 发布全新“安全防护”模块,简化安全配置,提升数据保护

作者:张文浩 阿里云在其微服务引擎(MSE)注册配置中心 Nacos 上正式推出全新“安全防护”功能模块,旨在帮助企业用户有效管理安全状态和降低开启安全相关功能的学习成本,提升微服务架构的安全性。首期推出的“安全防护…...

Pydantic v2 的使用

一、前言 Pydantic 是一个 Python 数据验证 和 设置管理 库,使用 Python 类型 注解。具有以下特点: 1.1 核心功能 数据验证:自动验证数据类型和约束条件类型转换:自动将输入数据转换为声明类型Schema 生成:自动生成…...

从零开始学A2A二 : A2A 协议的技术架构与实现

A2A 协议的技术架构与实现 学习目标 技术架构掌握 深入理解 A2A 协议的分层架构设计掌握各层次的功能和职责理解协议的工作原理和数据流 实现能力培养 能够搭建基本的 A2A 服务端掌握客户端开发方法实现智能体间的有效通信 架构设计理解 理解与 MCP 的本质区别掌握多智能体协…...

设计模式每日硬核训练 Day 12:装饰器模式(Decorator Pattern)完整讲解与实战应用

🔄 回顾 Day 11:适配器模式小结 在 Day 11 中,我们学习了适配器模式(Adapter Pattern): 用于将“不兼容”的接口适配为目标接口,解决新旧系统之间的桥接问题。强调“接口兼容、外部桥接”&…...

[CMake] CMakePresets.json简单使用

解决的问题 CMakePresets.json是为了解决在使用命令行编译使用CMake的项目时&#xff0c;可能会十分麻烦。如类似的参数-DCMAKE_BUILD_TYPEDebug所以有了CMakePresets.json来配置configure和build时的命令&#xff0c;然后在使用时 cmake --preset<configure-preset-name&…...

智能办公如何创建e10流程

智能办公如何创建e10流程 配置e10流程前&#xff0c;您要做的事情&#xff1a; 1、进入e10管理后台&#xff0c;创建应用&#xff0c;开放接口权限&#xff1b;2、进入e10管理后台&#xff0c;配置千里聆套件&#xff0c;配置同步人员&#xff1b;3、进入千里聆系统&#xff…...

Mac关闭sip方法

Mac关闭sip方法 导航 文章目录 Mac关闭sip方法导航完整操作流程图详细步骤 完整操作流程图 这东西是我在网上搬运下来的&#xff0c;但是我在为业务实操过程中&#xff0c;根据实操情况还是有新的注意点的 详细步骤 1.在「关于本机」-「系统报告」-「软件」;查看SIP是否开启…...

Flutter 播放利器:`media_kit` 的详细介绍与使用指南

在 Flutter 项目中实现音视频播放&#xff0c;开发者过去主要依赖如 video_player、just_audio 等第三方库&#xff0c;但这些库或多或少存在一些局限性&#xff0c;比如平台兼容性差、定制能力不足、播放格式有限等问题。 而 media_kit 是近年崛起的一款全平台音视频播放解决…...

GEO优化中的关键底座:知识图谱如何提升生成式AI的准确性与实时性?

今天&#xff0c;我将与大家分享如何通过GEO优化&#xff08;生成式人工智能优化&#xff09;和动态知识图谱&#xff0c;帮助企业提升智能化水平并实现高效的业务运营。首先&#xff0c;GEO优化利用生成式AI为企业提供内容生成、客服自动化和智能销售等服务&#xff0c;而知识…...

案例 - 登录认证:保障系统安全访问的实现

摘要&#xff1a;本文介绍了为Tlias智能学习辅助系统添加登录认证功能的过程&#xff0c;涵盖从需求分析、接口文档设计&#xff0c;到思路分析、功能开发以及最后的测试等多个关键环节&#xff0c;旨在实现只有通过登录认证的用户才能安全访问后台系统功能的目标。 关键词&am…...

Node.js Session 原理简单介绍 + 示例代码

目录 ✅ Session 原理简要说明 &#x1f9e9; 示例项目 - 使用 Node.js Express 实现简单 Session 登录 &#x1f4c1; 文件结构 &#x1f539; server.js (JavaScript) &#x1f538; index.html (HTML) ▶️ 程序运行步骤 ✅ 程序运行效果 &#x1f3af; 总结 在 We…...

C# 类型、存储和变量(C#程序是一组类型声明)

本章内容 C#程序是一组类型声明 类型是一种模板 实例化类型 数据成员和函数成员 预定义类型 用户定义类型 栈和堆 值类型和引用类型 变量 静态类型和dynamic关键字 可空类型 C#程序是一组类型声明 如果广泛地描述C和C程序源代码的特征&#xff0c;可以说C程序是一组函数和数据…...

复变函数摘记3

复变函数摘记3 5. 留数5.1 可去奇点、极点、本性奇点5.2 零点与极点的关系5.3 在无穷远点处的情形5.4 留数 5. 留数 \quad 如果函数 f ( z ) f(z) f(z) 在 z 0 z_0 z0​ 及 z 0 z_0 z0​ 的邻域内处处可导&#xff0c;那么称 f ( z ) f(z) f(z) 在点 z 0 z_0 z0​ 处解析。…...

深入定制 QSlider——实现精准点击跳转与拖拽区分

在使用 Qt 编写界面应用时,QSlider 是一个常用的滑动控件。但你可能会注意到,默认情况下点击滑轨(groove)区域时,滑块并不会直接跳到鼠标点击的位置,而是按照内部的分页步进(page step)行为响应。此外,垂直 Slider 在点击最底部时还存在 releaseEvent(或 sliderRelea…...

Summary

一、数据结构 1.1 哈希 主要是HashMap和HashSet&#xff1b;其中HashSet底层是一个HashMap属性。 // 获取HashMap元素,HashSet均不支持 map.keySet (); // Set<k> map.values (; // Collection<V> map.entrySet();//Set<Map.Entry<K,V>> for (Map.E…...

MCP Server 开发实战 | 大模型无缝对接 Grafana

前言 随着大模型的飞速发展&#xff0c;越来越多的 AI 创新颠覆了过往很多产品的使用体验。但你是否曾想过&#xff0c;在向大型语言模型提问时&#xff0c;它能否根据你的需求精准返回系统中的对应数据&#xff1f;例如&#xff0c;当用户查询 Grafana 服务时&#xff0c;模型…...

【ROS2】行为树 BehaviorTree(六):各种各样的节点

1、装饰器节点 Decorators 1)否操作 Inverter 如果子项失败则返回 SUCCESS,如果子项成功则返回 FAILURE。 如果子节点返回 RUNNING,则该节点也返回 RUNNING。 2)强制成功 ForceSuccess 如果子节点返回 RUNNING,则该节点也返回 RUNNING。 否则,它总是返回 SUCCESS。 3)…...

Docker Swarm 集群使用指南概述

概述 对于简单轻量级集群管理&#xff0c;利用 Docker Swarm 就够用了&#xff0c;适合中小型应用程序的容器编排。如果是比较重的中心化集群管理方案或需要更复杂的功能&#xff0c;可以考虑使用 Kubernetes Helm Consul 等更强大的容器编排工具。 Docker Swarm 1. Docke…...

【行业树选择器组件:基于Vue3与Element Plus的高性能树形选择组件优化与重构】

行业树选择器组件&#xff1a;基于Vue3与Element Plus的高性能树形选择组件优化与重构 组件概述与背景 行业树选择器是一个基于Element Plus的ElTreeSelect封装的业务组件&#xff0c;主要应用于能源管理系统中&#xff0c;用于展示和选择国标行业分类体系的四级层级结构。该…...

PasteForm框架开发之Entity多级嵌套的表单的实现

你相信么,使用PasteForm框架开发&#xff0c;管理端居然不要写代码&#xff01;&#xff01;&#xff01; 一起来看看PasteForm是否支持多级表模式(外表) 需求假设 假如有这么一个需求&#xff0c;就是订单表&#xff0c;包含了多级的信息&#xff0c;比如这个订单包含了哪些…...

Anaconda笔记

下载Anaconda 清华源 官方源 本文下载&#xff1a;Anaconda3-2024.10-1-Windows-x86_64.exe 建议不要安装到C盘&#xff0c;我的安装到D&#xff1a;Anaconda目录 设置环境变量 WinR cmd命令行输入&#xff1a; conda --version&#xff1a;可以查看到版本信息安装成功c…...

Linux——共享内存

目录 一、共享内存概念 二、共享内存的一些函数 2.1 shmget 创建共享内存 2.2 shmat 访问共享内存 2.3 shmdt 解除共享内存的映射 2.4 shnctl 删除共享内存段 三、共享内存 3.1 创建测试进程 3.2 使用循环测试 ​编辑 3.3 共享内存写入程序 3.4 带有信号量的共享内…...

计算机系统---烤机(性能测评)

计算机烤机 一、烤机的定义与核心目的 烤机&#xff08;Burn-in Test&#xff09; 是通过对计算机硬件施加持续高负载&#xff0c;模拟极端运行环境&#xff0c;以验证硬件稳定性、性能极限、散热能力及潜在缺陷的测试方法。核心目标包括&#xff1a; 硬件稳定性验证&#x…...

Linux命令+Git命令

Linux命令Git命令 linux查看两个操作系统cd命令的区别操作文件和文件夹vim不同模式保存和退出 Git linux Linux操作系统中&#xff0c;几乎所有的东西都以文件夹或文件形式存在&#xff0c;这些文件夹/文件有一个共同的根目录/。如果我们在某块磁盘A上&#xff08;无其他分区&…...

【前端】Nuxt打包部署的几种方式

一、总结知识点 Nuxt 是基于 Vue 的服务端渲染框架&#xff0c;部署方式主要取决于你使用的 Nuxt 模式&#xff1a;Universal (SSR)、SPA 或 Static Site Generation (SSG)。不同模式下的打包部署流程略有不同。以下将分别介绍 Nuxt 应用的打包和部署方式。 二、详细说明 1. …...

DP 16bit位宽数据扰码实现和仿真

DisplayPort 1.4协议中数据需进行扰码&#xff0c;扰码用到了16-bit LFSR&#xff0c;表达式如下。 LFSR每移位8个bit后&#xff0c;用最高有效 8 位以相反的位顺序与一个字节数据进行异或从而实现数据加扰/解扰。 我们已利用这个框图进行8个时钟周期迭代&#xff0c;得到了和…...

力扣每日打卡 1534. 统计好三元组 (简单)

力扣 1534. 统计好三元组 简单 前言一、题目内容二、解题方法1. 暴力解法2.官方题解2.1 方法一&#xff1a;枚举2.2 方法二&#xff1a;枚举优化 前言 这是刷算法题的第十二天&#xff0c;用到的语言是JS 题目&#xff1a;力扣 1534. 统计好三元组 (简单) 一、题目内容 给你一…...

CExercise_13_1排序算法_1插入排序

题目&#xff1a; 请自己手动实现插入排序算法&#xff1a; // 插入排序 void insertion_sort(int arr[], int len); 然后给定一个int数组&#xff0c;实现将它从小到大进行排序。 关键点 分析&#xff1a; 在插入排序中&#xff0c;稳定性指的是排序算法能够保持相等元素的原始…...

图论--DFS搜索图/树

目录 一、图的存储结构 二、题目练习 846. 树的重心 - AcWing题 dfs&#xff0c;之前学习的回溯算法好多都是用dfs实现搜索的&#xff08;把题目抽象成树形结构来搜索&#xff09;&#xff0c;其实 回溯算法就是 深搜&#xff0c;只不过针对某一搜索场景 我们给他一个更细分…...

blender 超逼真角色daz 纹理材质 humanpro插件

https://www.youtube.com/KhanhVo-zp9lh/featured https://superhivemarket.com/products/humanpro https://superhivemarket.com/products/humanpro HUMANPRO 插件 - BLENDER HumanPro 是一款专为帮助用户轻松快速地创建高度精细逼真的人体皮肤纹理和复杂皱纹而设计的插件…...

关于响应式编程框架ReactiveUI的感悟

1.我第一个接触的MVVM框架是Caliburn Micro&#xff0c;后来接触到了ReactiveUI这种响应式编程思想的框架&#xff0c;主要说一下本人目前学习感想&#xff08;针对尽快上手使用MVVM开发WPF&#xff09;&#xff1b; 首当其冲的工具是DeepSeek&#xff0c;总结好问题直接提问&…...

Swift —— delegate 设计模式

一、什么是 delegate 模式 所谓 delegate 就是代理模式。简单来说&#xff0c;delegate 模式就是在类的函数里运行完一段代码后&#xff0c;你可以通过一个符合某个代理协议的属性来调代理的方法。其中&#xff0c;代理方法就是回调函数。 二、delegate 模式与闭包比的优势 …...

远方游子的归家记:模仿美食网页的制作与实现

前言 2023年的夏天&#xff0c;闲得无聊学了一个礼拜前端知识点。并根据所学知识点模仿制作了一篇网络上公开发布的关于家乡美食的文章。今天才想到有这个不错的案例可以分享出来&#xff0c;以供大家学习参考。 知识点简介 运用的知识点比较简单&#xff0c;常规的div盒子&…...

React JSX?

JSX JSX 是 JavaScript XML 的缩写&#xff0c;它是一种 JavaScript 的语法扩展&#xff0c;允许你在 JavaScript 中写 HTML 类似的代码&#xff0c;常用于 React 中定义 UI 组件的结构。 JSX 示例代码&#xff1a; import React from react;function App() {return (<di…...

【Pandas】pandas DataFrame iterrows

Pandas2.2 DataFrame Indexing, iteration 方法描述DataFrame.head([n])用于返回 DataFrame 的前几行DataFrame.at快速访问和修改 DataFrame 中单个值的方法DataFrame.iat快速访问和修改 DataFrame 中单个值的方法DataFrame.loc用于基于标签&#xff08;行标签和列标签&#…...

docker多架构镜像构建

docker多架构镜像构建 Docker 多架构镜像构建&#xff08;Multi-Architecture Image Build&#xff09;允许你为不同平台&#xff08;如 linux/amd64, linux/arm64, linux/arm/v7 等&#xff09;构建和推送统一的镜像标签&#xff0c;解决在不同硬件架构之间部署的问题。 Doc…...

日志查询 Less命令:/搜索

跟more命令一样&#xff0c;唯一不同的是less命令可以向上翻页&#xff0c;但是more命令不行 注意&#xff1a;按空格或F -- 进行翻页&#xff1b; 按回车 -- 一行一行往下翻&#xff1b; 按q或Q – 表示退出 Page up:一页一页向上翻&#xff1b; 向上键&#xff1a;一行一行…...