Kubernetes简略架构

news2025/1/12 19:40:21

在这里插入图片描述

kubectl

kubectl是Kubernetes的命令行工具。它的全称为Kubernetes Command Line Tool,是用于管理Kubernetes集群的工具。它可以用来创建、更新、删除资源对象、查看日志等操作

Node:

Kubernetes 通过将容器放入在节点(Node)上运行的Pod 中来执行你的工作负载。

cAdvisor

CAdvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具。

REST

REST API是一种用于与Kubernetes集群进行交互的编程接口。它是基于REST(Representational State Transfer)原则设计的,通过HTTP协议进行通信,并使用JSON或者其他格式作为数据交换的载体。
Kubernetes的REST API提供了一组标准的HTTP请求方法(如GET、POST、PUT、DELETE等),用于对集群中的资源进行操作和管理。通过REST API,用户可以执行各种操作,例如创建、删除、更新和查询Kubernetes资源,如Pods、Services、Deployments等。
与一般API相比,Kubernetes的REST API具有以下一些特点和区别:
标准化接口:Kubernetes的REST API遵循一组标准的API设计原则,例如使用HTTP方法来表示操作类型(GET、POST、PUT、DELETE),使用URL路径来定位资源,使用HTTP状态码来表示操作结果等
基于资源的操作:Kubernetes的REST API以资源为中心,用户可以操作和管理各种资源对象,如Pods、Services、Deployments等。每个资源都有自己的API端点,可以使用相应的HTTP请求方法对其进行操作。
无状态性:REST API是无状态的,服务器不会在请求之间保留任何会话信息。每个请求都是独立的,包含了所有必要的信息来执行操作,服务器不会保留任何上下文状态。
数据交换格式:REST API通常使用JSON或者其他格式(如XML)来进行数据交换。在Kubernetes中,JSON是常用的数据格式,用于表示资源对象、操作结果和错误信息。
客户端驱动:REST API允许开发者使用各种编程语言和工具来编写客户端代码。通过HTTP请求,客户端可以与Kubernetes集群进行通信,执行相应的操作。
总之,Kubernetes的REST API是一种用于与Kubernetes集群进行交互的编程接口,基于REST原则设计,使用HTTP协议和JSON等数据格式进行通信。它提供了对Kubernetes资源的操作和管理能力,并允许开发者使用各种编程语言和工具来编写客户端代码。

Scheduler

Scheduler是控制平面组件之一,负责决定将容器化的应用程序调度到集群中的哪些节点上运行。
Scheduler的主要作用是根据集群中的资源情况、应用程序的需求和调度策略,动态地选择最佳的节点来部署容器。它考虑了节点的资源可用性、负载平衡、亲和性和反亲和性规则等因素,以确保应用程序在集群中得到适当的分配,同时提供高可用性和弹性。

scheduling actuator

Scheduling Actuator是Spring Boot Actuator中的一个组件,用于与Kubernetes集群的调度器进行交互。它提供了一组REST API,用于检查和管理Kubernetes集群中的调度器。使用Scheduling Actuator,可以获取有关调度器的信息,如节点列表、调度策略和调度规则,并可以操作调度器,如手动触发重新调度、调整调度策略等。

因此,Scheduler是Kubernetes的一个核心组件,用于决定容器的调度和部署,而Scheduling Actuator是Spring Boot Actuator中与Kubernetes调度器交互的组件。它们之间的关系是Scheduling Actuator提供了与Kubernetes调度器的交互接口,使得可以通过REST API来管理和控制调度器的行为。

controller manager

Controller Manager是一个运行在主节点上的进程,它包含了多个控制器的实现,每个控制器负责管理一个或多个资源。以下是一些常见的控制器:
ReplicaSet Controller:用于确保Pod副本数量与副本集定义的期望数量一致。
Deployment Controller:在ReplicaSet Controller的基础上提供了应用程序的无缝升级和回滚功能。
StatefulSet Controller:用于管理有状态应用程序的创建、扩展和更新。
DaemonSet Controller:确保每个节点上都运行一个Pod的副本,用于在集群中的每个节点上运行守护进程。
Job Controller:用于管理一次性任务的创建和执行。
Controller Manager负责启动和管理这些控制器的实例,并监控它们的状态。它周期性地检查控制器的健康状态,确保它们正常运行,并在必要时重新启动失败的控制器。
通过Controller Manager,Kubernetes能够实现集群的自动化管理,保持资源的期望状态,并根据需要进行调整和修复。这种自动化管理和控制的机制可以提高应用程序的可靠性、可伸缩性和弹性,减轻了管理员的负担,并提供了一致的资源状态和行为。

distributed watchable storage

分布式可观察存储(Distributed Watchable Storage)指的是一种用于存储和观察集群状态变化的分布式存储系统。
Kubernetes使用分布式可观察存储来存储和管理集群中的各种资源对象的状态信息。这些资源对象包括Pods、Services、ConfigMaps、Secrets等。分布式可观察存储允许Kubernetes的各个组件和控制器监视(watch)这些资源对象的变化,并在变化发生时做出相应的响应。
通过分布式可观察存储,Kubernetes实现了集群状态的一致性和可观察性。各个组件和控制器可以实时监视资源对象的变化,以便做出相应的调整和决策。这对于实现资源的动态调度、自动扩展和故障恢复等功能至关重要。

Proxy

Proxy(代理)是一个网络代理组件,用于帮助集群内的服务和应用程序进行网络通信。
Proxy的主要作用是为集群中的Pod提供服务的网络代理功能。它负责监听集群内的网络通信请求,并根据请求的目标地址和端口,将请求转发到正确的目标Pod上。
Proxy在Kubernetes中起到了重要的作用,它隐藏了底层网络细节,使得服务和应用程序能够透明地进行通信,而不需要关注底层网络拓扑和节点之间的具体连接方式。通过Proxy,Kubernetes提供了一种灵活且可扩展的网络模型,支持服务之间的可靠通信和负载均衡。

authentication

Authentication(身份验证)是指验证用户、服务账号或其他实体的身份,以确保它们具有访问集群资源的权限。

Kubernetes提供了多种身份验证机制,用于验证和授权用户和服务账号的访问权限。以下是一些常见的Kubernetes身份验证机制:
X.509证书:Kubernetes支持使用X.509数字证书进行身份验证。通过使用预先颁发的证书,Kubernetes可以验证用户或服务账号的身份并授予相应的权限。这种身份验证方式通常用于集群管理员、用户和其他可信实体的身份验证。
静态Token:Kubernetes允许通过静态Token进行身份验证。这些Token是提前定义和配置的,并与特定的用户或服务账号相关联。用户可以使用这些Token进行身份验证,以获取访问集群资源的权限。
用户名和密码:Kubernetes还支持使用用户名和密码进行身份验证。用户可以提供用户名和密码来验证其身份,并获取相应的访问权限。这种身份验证机制通常用于用户身份验证,如集群管理员或普通用户。
OpenID Connect(OIDC):Kubernetes支持使用OpenID Connect协议进行身份验证和授权。OpenID Connect是一个基于OAuth 2.0的开放标准,允许用户使用现有的身份提供商(如Google、Azure AD等)进行身份验证,并获得访问令牌来访问Kubernetes集群。
身份验证是Kubernetes中确保安全访问的重要组成部分。通过身份验证机制,Kubernetes可以验证用户和服务账号的身份,并根据其身份授予适当的访问权限。这有助于保护集群资源免受未经授权的访问和潜在的安全威胁。

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

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

相关文章

5、使用 pgAdmin4 图形化创建和管理 PostgreSQL 数据库

通过上几篇文章我们讲解了如何安装 PostgreSQL 数据库软件和 pgAdmin4 图形化管理工具。 今天我们继续学习如何通过 pgAdmin4 管理工具图形化创建和管理 PostgreSQL 数据库。 一、PostgreSQL的基本工作方式 在学习如何使用PostgreSQL创建数据库之前,我们需要了解一…

C++学习: 文件I/O

作者: 苏丙榅 原文链接: https://subingwen.cn/c/file/ 文章目录 1. 文件概述1.1 什么是文件I/O1.2 磁盘文件分类 2. 文件的打开和关闭2.1 文件指针2.2 打开文件 2.3 关闭文件3. 文件的读写3.1 按照字符读写文件3.1.1 写文件3.1.2 读文件3.1.3 EOF 3.2 按照行读写文件3.2.1 写文…

华为交换机S5700系列产品命名规则

华为交换机的全系列产品命名规则如下: S系列:代表固定端口交换机。例如,S5720系列、S6720系列。CE系列:代表企业级交换机。例如,CE5800系列、CE6800系列。CloudEngine系列:代表华为云引擎交换机&#xff0c…

数据库系列之MySQL中Join语句优化问题

最近使用MySQL 8.0.25版本时候遇到一个SQL问题,两张表做等值Join操作执行很慢,当对Join连接字段添加索引优化后,执行效率反而变得更差,其中的原因值得分析。因此本文介绍下MySQL中常见的Join算法,并对比使用不同Join算…

【MATLAB源码-第47期】基于matlab的GMSK调制解调仿真,输出误码率曲线,采用相干解调。

操作环境: MATLAB 2022a 1、算法描述 GMSK(高斯最小移相键控)是数字调制技术的一种。下面是关于GMSK调制解调、应用场景以及其优缺点的详细描述: 1. 调制解调: - 调制:GMSK是一种连续相位调制技术&am…

03【彻底掌握Git的底层对象】

上一篇:02【Git的基本使用-快速上手Git】 下一篇:04【彻底掌握Git的底层对象】 目录:【Git系列教程-目录大纲】 文章目录 三、Git底层对象3.1 Blob对象3.1.1 Blob对象简介3.1.2 Blob对象的使用1)写入数据2)读取数据3…

Excel大量表格选择,快速定位表格

excel有大量表格,快速定位表格方法。 在这个区域电机鼠标右键 出现表格选择。(此处方便查看15个表格),如果超过15个表格可以选择其他工资表。 选择其他工作表会弹出列表框如下图 特此记录 anlog 2023年10月12日

红队专题-从零开始VC++远程控制软件RAT-C/S-[4]客户端与服务端连接

红队专题 招募六边形战士队员服务端编写新建工程server函数创建主线程类获取配置信息command 命令startsocket 开始监听win32 类库/头文件 招募六边形战士队员 一起学习 代码审计、安全开发、web攻防、逆向等。。。 私信联系 服务端编写 新建工程 server函数 // FackExec_…

Windows10用Navicat 定时备份报错80070057

直接按照网上的教程配置定时任务发现报错,提示参数非法之类的,80070057。 搜索加自己测试发现是用户权限问题。 设置任务计划的时候,我用了用户组,选了administors,在勾选上run with hightest privileges。 查找用户…

JVM第七讲:JVM 基础 - Java 内存模型详解

JVM 基础 - Java 内存模型详解 本文是JVM第七讲,JVM 基础 - Java 内存模型详解。主要转载自 Info 上深入理解Java内存模型, 作者程晓明。这篇文章对JMM讲的很清楚了,大致分三部分:1、重排序与顺序一致性;2、三个同步原语&#xff…

数据结构复盘——第二章:线性表

文章目录 第一部分:顺序表1、顺序表的定义2、顺序表的操作3、顺序表的优缺点第一部分习题第二部分:单链表1、单链表的定义2、单链表的结点知识3、单链表的操作4、单链表的优缺点第二部分习题第三部分:双链表1、双链表的结构2、双链表的操作第三部分习题第四部分:静态链表1、…

使用 Tkinter Canvas 小部件添加放大镜功能?

一、说明 据我所知,内置的 Tkinter Canvas 类比例不会自动缩放图像。如果您无法使用自定义小部件,则可以缩放原始图像并在调用缩放函数时将其替换在画布上。 二、实现图像放大镜技术细节 我如何将放大和缩小添加到以下脚本中,我想将其绑定到…

OpenCV 笔记(1):图像的读取、显示、创建

Part11. 数字图像的含义 OpenCV 中的图像,其实指的是数字图像。在介绍图像这个概念之前,先介绍几个基础的概念: 像素(Pixel)是图像的基本单元或者基本元素,亦或者是图像最小的单位。图像中的像素点包含不同的像素值。对于灰白图像…

Flume 整合 Kafka

1.背景 先说一下,为什么要使用 Flume Kafka? 以实时流处理项目为例,由于采集的数据量可能存在峰值和峰谷,假设是一个电商项目,那么峰值通常出现在秒杀时,这时如果直接将 Flume 聚合后的数据输入到 Storm 等…

Vue-props配置功能

Vue-props配置功能 props概述 功能:接收从其他组件传过来的数据,将数据从静态转为动态注意: 同一层组件不能使用props,必须是父组件传子组件的形式。父组件传数据,子组件接收数据。不能什么数据都接收,可…

【Spring Cloud】网关Gateway的请求过滤工厂RequestRateLimiterGatewayFilterFactory

概念 关于微服务网关Gateway中有几十种过滤工厂,这一篇博文记录的是关于请求限流过滤工厂,也就是标题中的RequestRateLimiterGatewayFilterFactory。这个路由过滤工厂是用来判断当前请求是否应该被处理,如果不会被处理就会返回HTTP状态码为42…

三相异步电机动态数学模型及矢量控制仿真

三相异步电机动态数学模型及矢量控制仿真 本文带你一步步推倒三相异步电机动态数学模型,按基于转子磁链定向的矢量控制进行 matlab 仿真,实现较好的控制效果。 1、异步电机三相方程 2、坐标变换 3、磁链3/2变换推导 4、两相静止坐标系下的方程 5、…

python 图片下面加边框TK界面

python 对图片增加边框,logo贴图,获取图片exif参数,填写图片文本内容-CSDN博客 import tkinter as tk from tkinter import ttk import os import glob import json import tkinter.messagebox as messagebox # 弹出提示框 from PIL import…

Vue 如何检测 data 中 数组的变化?

Vue 可以使用 watch 和 computed 监听数组的变化。 ① 使用 watch 监听数组 可以通过 deep 选项深度监听数组内部元素的变化 ② 使用 computed 监听数组 创建一个计算属性,返回数组的长度或者某个数组元素的值,当数组发生变化时,计算属性会…

在nodejs中实现调度任务

在nodejs中实现调度任务 node.js帮助开发人员简化了工作流程,创建了高效的应用程序。它的许多有用功能之一是任务调度。本文将探讨在nodejs中调度任务的重要性、各种使用第三方库的代码示例,以及需要遵循的一些有用的操作。 为什么我们需要安排任务 调…