k8s--架构基础--云控制器管理器
具体来说,云控制器管理器允许用户将集群与云服务提供商的 API 进行连接,以获取与云平台相关的信息和资源。通过这种连接,Kubernetes 可以利用云服务提供商的功能和特性,例如虚拟机、负载均衡器、对象存储等。与此同时,云控制器管理器也负责与云平台进行交互,以执行与云资源的管理和操作相关的任务。
云控制器管理器的作用是将 Kubernetes 集群与云服务提供商的 API 进行链接,并在集群内部负责与云平台进行交互,以实现对云资源的管理和操作。它实现了集群与云平台之间的松耦合,使得 Kubernetes 可以充分利用云服务提供商的功能和特性,提供强大而灵活的容器管理能力
设计
云控制器管理器以一组复制的进程(通常是在 Pod 中的容器)的形式在控制平面中运行。每个云控制器管理器在单个进程中实现了多个控制器
好处
控制器是 Kubernetes 中负责监视集群状态并采取相应操作的组件。通过将多个控制器实现在云控制器管理器的同一个进程中,可以减少进程和资源的开销。这些控制器在云控制器管理器中共享相同的进程,并且彼此之间可以共享和复用一些资源和功能。这种共享和复用的机制提高了资源利用率,减少了系统开销,同时也简化了部署和管理
Cloud controller manager functions
云控制器管理器中的控制器功能包括:
节点控制器(Node controller)
节点控制器负责在云基础设施中创建新的服务器时更新 Node 对象。
节点控制器通过与云服务提供商的API交互,获取有关在您的租户中运行的主机的信息。
节点控制器执行以下功能:
- 使用从云服务提供商API获取的相应服务器的唯一标识符来更新 Node 对象。
- 使用特定于云的信息对 Node 对象进行注释和标记,例如节点部署的区域以及可用的资源(CPU、内存等)。
- 获取节点的主机名和网络地址。
- 验证节点的健康状况。如果一个节点变得无响应,该控制器会通过云服务提供商的API检查服务器是否已被停用/删除/终止。如果节点已从云中删除,则控制器会从您的 Kubernetes 集群中删除 Node 对象。
一些云服务提供商的实现将此功能分为节点控制器和单独的节点生命周期控制器。
节点生命周期控制器负责与云服务提供商的API交互,管理节点的生命周期操作,例如创建、启动、停用、删除等。这种拆分可以使节点控制器和节点生命周期控制器各自专注于不同的任务,提供更灵活和可维护的代码结构。
路由控制器
作用
-
路由控制器根据需要配置云中的路由,确保来自不同节点上的容器之间的网络流量能够正确地路由和转发。它确保每个节点上的容器都能够与其他节点上的容器建立网络连接,以实现跨节点通信。
-
根据云服务提供商的不同,路由控制器可能还会分配一组 IP 地址块用于 Pod 网络。这意味着路由控制器除了配置路由规则之外,还负责分配和管理用于容器之间通信的 IP 地址。
总之,路由控制器负责在云中配置适当的路由规则,以便 Kubernetes 集群中的容器可以相互通信。它确保容器之间的网络流量能够正确路由和转发,并且在需要时分配 IP 地址块供 Pod 网络使用。
服务控制器(Service controller)
服务控制器(Service controller)与云基础设施组件集成,如托管的负载均衡器、IP 地址、网络数据包过滤和目标健康检查。当您声明一个需要这些组件的服务资源时,服务控制器与您的云服务提供商的API进行交互,设置负载均衡器和其他基础设施组件。
在Kubernetes中,服务(Service)是一种抽象,用于公开一组逻辑相关的Pod并提供网络访问。
服务控制器的作用是根据您的配置和声明,与云服务提供商的API交互,并设置与服务相关的负载均衡器和其他基础设施。
服务控制器扮演着与云服务提供商API交互的角色,以创建、配置和管理与服务相关的资源。
例如,当您创建一个负载均衡型的服务时,服务控制器将通过云服务提供商的API创建和配置一个负载均衡器,以将流量分发到服务背后的Pod。服务控制器还可以协调与服务相关的其他组件,如IP地址分配和网络数据包过滤。
通过与云服务提供商的API交互,服务控制器可以实现与云基础设施的集成,以提供更高级的服务功能,如负载均衡和网络策略
授权
授权是指云控制器管理器在执行操作时所需的对不同 API 对象的访问权限。在 Kubernetes 中,访问控制是通过 Role-Based Access Control (RBAC) 进行管理的。
云控制器管理器需要不同程度的访问权限来执行其操作。这些权限通常定义为 Kubernetes 中的角色(Role)和角色绑定(Role Binding)。角色定义了可以执行的操作(例如创建、读取、更新和删除)和允许的资源类型。角色绑定将角色分配给用户、组或服务账户以授予它们对相应资源的权限。
云控制器管理器可能需要访问以下不同的 API 对象以执行其操作:
-
Node 对象:云控制器管理器可能需要读取和更新 Node 对象,以反映云基础设施中服务器的状态和资源信息。
-
Pod 对象:云控制器管理器可能需要读取和更新 Pod 对象,以根据调度规则、网络设置等信息在集群中创建、更新和删除 Pod。
-
Service 对象:云控制器管理器可能需要读取和更新 Service 对象,以设置和管理负载均衡器、IP 地址等服务相关的资源。
-
Endpoint 对象:云控制器管理器可能需要读取和更新 Endpoint 对象,以更新负载均衡器或服务关联的目标地址。
-
Route 对象:云控制器管理器可能需要读取和更新 Route 对象,以配置云中适当的路由规则,以便容器在不同节点之间进行通信。
为了确保安全性,云控制器管理器应该只被授予所需的最低权限。根据具体情况和云服务提供商的实现,可能需要对其他 API 对象进行访问控制,以确保云控制器管理器可以安全地执行其任务。
总之,授权是指云控制器管理器在执行操作时所需的对不同 API 对象的访问权限。访问控制是通过 Kubernetes 中的 RBAC 机制进行管理的,通过定义角色和角色绑定,将适当的访问权限分配给云控制器管理器。云控制器管理器可能需要对 Node、Pod、Service、Endpoint、Route 等各种 API 对象进行访问和更新,以执行其操作。
Node控制器(Node controller)
Node控制器(Node controller)仅与Node对象一起工作。它需要完全访问权限以读取和修改Node对象。
下面是对Node对象的访问操作:
- get:获取一个特定的Node对象。
- list:获取所有Node对象的列表。
- create:创建一个新的Node对象。通常由云控制器管理器在云基础设施中创建新服务器时使用。
- update:更新现有的Node对象。可以用于更新节点的状态、标签、注释等信息。
- patch:对现有的Node对象进行局部更新。可以部分地更新节点的信息,而不影响其他字段。
- watch:监视Node对象的变化。该操作允许控制器实时监测节点的状态变化。
- delete:删除一个Node对象。通常在节点从云中删除时使用。
总而言之,Node控制器需要对Node对象具有完全的读写权限。它可以执行各种操作,包括获取、创建、更新、删除等,以管理节点在Kubernetes集群中的状态和属性。
Route控制器(Route controller)
在Kubernetes中,Route控制器(Route controller)监听Node对象的创建并适当地配置路由。
它需要对Node对象具有Get访问权限。
对于Node对象的Get访问权限,意味着Route控制器可以获取特定的Node对象的信息。通过获取Node对象的状态和属性,Route控制器可以了解到集群中节点的详细信息,如IP地址、标签、资源情况等。
获取Node对象对于Route控制器来说是必要的,因为它需要知道有哪些节点在集群中,并且为了配置适当的路由规则,它需要了解节点的IP地址和相关信息。通过获取Node对象,Route控制器可以根据节点的状态和属性进行相应的操作,确保在不同节点之间进行网络通信时的正确路由设置。
服务控制器(Service controller)
监视Service对象的创建、更新和删除事件,然后相应地为这些服务配置Endpoints资源(对于EndpointSlices资源,kube-controller-manager按需进行管理)。
为了访问Service对象,服务控制器需要list和watch访问权限。为了更新Service对象,它需要patch和update访问权限。
为了为这些服务设置Endpoints资源,服务控制器需要create、list、get、watch和update的访问权限。
下面是对Service对象的访问操作:
- list:获取所有Service对象的列表。
- get:获取一个特定的Service对象。
- watch:监视Service对象的变化。
- patch:对现有的Service对象进行局部更新。
- update:更新现有的Service对象。
通过这些操作,服务控制器能够获取和更新Service对象的信息。它可以监视Service对象的变化,并相应地设置或更新与之关联的Endpoints资源,以确保服务与Pod的连接正确建立和维护。
其他
- 以下是对Event对象的访问操作:
- create:创建一个新的Event对象。
- patch:对现有的Event对象进行局部更新。
- update:更新现有的Event对象。
通过这些操作,云控制器管理器能够创建和更新Event对象,这些对象用于记录集群中发生的事件和状态变化。
- 对于ServiceAccount对象,云控制器管理器需要创建访问权限,以创建新的ServiceAccount对象。ServiceAccount用于在Kubernetes中管理身份验证和授权,云控制器管理器可能需要为自身创建一个ServiceAccount以执行特定任务。
至于RBAC ClusterRo 管理器的实现,具体实现会根据云服务提供商和集群的配置而异。
RBAC ClusterRole定义了在整个集群范围内将授予云控制器管理器的权限。
RBAC ClusterRole的具体配置取决于云控制器管理器所需的操作和访问权限。它可能涵盖对集群范围的各种资源的访问权限,如Node、Pod、Service、Endpoint等。此外,它还可以涉及到一些底层云基础设施的访问权限和操作权限,以便云控制器管理器能够执行特定的云操作。
官网文档
相关文章:
k8s--架构基础--云控制器管理器
具体来说,云控制器管理器允许用户将集群与云服务提供商的 API 进行连接,以获取与云平台相关的信息和资源。通过这种连接,Kubernetes 可以利用云服务提供商的功能和特性,例如虚拟机、负载均衡器、对象存储等。与此同时,…...
OpenAI 更新 ChatGPT:支持图片和语音输入【附点评】
一、消息正文 9月25日消息,近日OpenAI宣布其对话AI系统ChatGPT进行升级,添加了语音输入和图像处理两个新功能。据OpenAI透露,这些新功能将在未来两周内面向ChatGPT Plus付费用户推出,免费用户也将很快可以使用这些新功能。这标志着ChatGPT继续朝着多模态交互的方向发展,为用户提…...
数据结构:堆的简单介绍
目录 堆的介绍:(PriorityQueue) 大根堆:根节点比左右孩子节点大 小根堆:根节点比左右孩子节点小 堆的存储结构: 为什么二叉树在逻辑上用满二叉树结构,而不是普通二叉树呢? 因为如果是普通二叉树会造成资源的浪费编辑 堆的介绍:(PriorityQueue) 堆又称优先级队列,何为优先…...
【LeetCode-中等题】654.最大二叉树
文章目录 题目方法一:递归 题目 方法一:递归 class Solution {int[] num null; public TreeNode constructMaximumBinaryTree(int[] nums) {num nums;return myTree(0,num.length-1);}public TreeNode myTree( int begin , int end){if(begin > end…...
基于微信小程序的刷题考试系统设计与实现(适用于各类考试类、答题类程序)
文章目录 前言系统主要功能:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…...
用Java打印长方形、平行四边形 、三角形、菱形、空心菱形
今天复习使用嵌套for来完成一些任务,于是想着打印一些图形来练习 思考感悟 长方形 行数 和 每行的星星数嵌套遍历即可 平行四边形 核心:每行空格数总行数-行数 行数空格数132231 三角形 核心:每行星星数2*当前行数-1 行数星星数1123…...
es6模块化,怎么判断当前文件使用的是es6的模块化还是commenjs的模块化
es6的模块化,文件中的this,指向undefined,不是指向window import.meta - JavaScript | MDN...
Ubuntu 基础配置
源配置 源路径: /etc/apt/sources.list aliyun源 20.04 deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.a…...
CISSP学习笔记:人员安全和风险管理概念
第二章 人员安全和风险管理概念 2.1 促进人员安全策略 职责分离: 把关键的、重要的和敏感工作任务分配给若干不同的管理员或高级执行者,防止共谋工作职责:最小特权原则岗位轮换:提供知识冗余,减少伪造、数据更改、偷窃、阴谋破坏和信息滥用的风险&…...
ubuntu18.04 OpenGL开发(显示YUV)
源码参考:https://download.csdn.net/download/weixin_55163060/88382816 安装opengl库 sudo apt install libglu1-mesa-dev freeglut3-dev mesa-common-dev 安装opengl工具包 sudo apt install mesa-utils 检查opengl版本信息(桌面终端执行)…...
React(react18)中组件通信06——redux-toolkit + react-redux
React(react18)中组件通信06——redux-toolkit react-redux 1 前言1.1 redux 和 react-redux1.2 关于redux-toolkit1.2.1 官网1.2.2 为什么要用Redux Toolkit? 1.3 安装 Redux Toolkit1.4 Redux Toolkit相关API 2. 开始例子——官网例子2.1 …...
第七章 查找 九、B+树
目录 一、定义 二、B树需要满足的条件 三、重要考点 一、定义 1、B树是一种常用的数据结构,用于实现关系型数据库中的索引。 2、其特点是可以在磁盘等外存储器上高效地存储大量数据,并支持快速的查询、插入、删除等操作。 3、B树的结构类似于二叉搜…...
XPD911协议系列-集成同步降压多口互联控制器
产品描述: XPD911 是一款集成 USB Type-C、USB Power Delivery(PD) 3.1 以及 PPS、 QC3.0/3.0 /2.0 快充协议、华为 FCP/SCP/HVSCP 快充协议、三星 AFC 快充协议、VOOC 快充协议、MTK PE 快充协议、BC1.2 DCP 以及苹果设备 2.4A 充电规范的多…...
数字反转(蓝桥杯)
数字反转 题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见实例 2)。 输入描述 输入共 1 行&…...
十一.EtherCAT开发之microchip MCU D51+ LAN9253 的开发FOE应用(SPI directly 模式)
十一.EtherCAT开发之microchip MCU D51+ LAN9253 的开发FOE应用(SPI directly 模式) 文章目录 十一.EtherCAT开发之microchip MCU D51+ LAN9253 的开发FOE应用(SPI directly 模式)11.0 软件更新方式11.1 SSC TOOL配置11.2 MCU D51 FOE函数支持11.2.1 下载download11.2.2 上传up…...
【分布式计算】二、架构(Architectures)
1.中心化架构(Centralized Architectures) 1.1.经典C/S模型 服务器:一个或多个进程提供服务 客户端:一个或多个进程使用服务 客户端和服务器可以在不同的机器上 客户端遵循请求/回复模型 1.2.传统三层视图 用户界面层&#x…...
Springboot对MVC、tomcat扩展配置
Springboot在web层的开发基本都是采用Springmvc框架技术,但是Springmvc中的某些配置在boot是没有的,我们就应该根据自己的需求进行对mvc扩展配置 Springboot1.x版本如何配置 通过注解Configuration一个类,继承webmvcconfigureradapter&#…...
网络子网划分练习
网络子网划分练习 1.背景: 在一个仓储企业网络拓朴结构如图1-所示,该企业占地500亩。有五层办公楼1栋,大型仓库10栋。每栋仓库内、外部配置视频监控16台,共计安装视频监控160台,Switch A、服务器、防火墙、管理机、Rou…...
Leetcode刷题笔记--Hot51-60
1--环形链表II 主要思路: 快慢指针,快指针每次走两步,慢指针每次走一步; 第一次相遇时,假设慢指针共走了 f 步,则快指针走了 2f 步; 假设起点到环入口结点的长度为 a(不包括入口结点…...
广告牌安全监测系统,用科技护航大型广告牌安全
城市的街头巷尾,处处可见高耸的广告牌,它们以各种形式和颜色吸引着行人的目光。然而,作为城市景观的一部分,广告牌的安全性常常被我们所忽视。广告牌量大面大,由于设计、材料、施工方法的缺陷,加上后期的检…...
volatile
什么是volatile volatile是Java提供的一种轻量级的同步机制。Java 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量,相比于synchronized(synchronized通常称为重量级锁),volatile更…...
JAVA:实现Excel和PDF上下标
1、简介 最近项目需要实现26个小写字母的上下标功能,自己去网上找了所有Unicode的上下标形式,缺少一些关键字母,顾后面考虑自己创建上下标字体样式,以此来记录。 2、Excel Excel本身是支持上下标,我们可以通过Excel单元格的样式来设置当前字体上下标,因使用的是POI的m…...
AI写稿软件,最新的AI写稿软件有哪些
写作已经成为各行各业无法绕开的重要环节。不论是企业的广告宣传、新闻媒体的报道、还是个人自媒体的内容创作,文字都扮演着不可或缺的角色。随着信息的爆炸式增长,写作的需求也不断攀升,这使得许多人感到困扰。时间不够用、创意枯竭、写作技…...
干货:数据仓库基础知识(全)
1、什么是数据仓库? 权威定义:数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。 1)数据仓库是用于支持决策、面向分析型数据处理; 2)对多个异构的数据源有效集…...
二分搜索简介
概念: 二分搜索算法(Binary Search)是一种高效的搜索算法,用于在有序数组中查找特定元素的位置。它的基本思想是将数组分为两部分,通过比较目标值与数组中间元素的大小关系,确定目标值可能存在的区间&…...
虚拟车衣VR云展厅平台扩大了展览的触达范围
传统展厅主要是以静态陈列的形式来传达内容,主要的展示形式有图片、视频等,具有一定的局限性,体验感较差,客户往往不能深入地了解信息和细节内容。 VR全景看车是通过虚拟现实技术实现逼真的汽车观赏和试乘体验。消费者可以通过智能…...
云部署家里的服务器
1.固定静态ip 查看ip地址,en开头的 ifconfig查看路由器ip,via开头的 ip route修改配置文件 cd /etc/netplan/ #来到这个文件夹 sudo cp 01-network-manager-all.yaml 01-network-manager-all.yaml.bak #先备…...
【利用冒泡排序的思想模拟实现qsort函数】
1.qsort函数 1.1qsort函数的介绍 资源来源于cplusplus网站 1.2qsort函数的主要功能 对数组的元素进行排序 对数组中由 指向的元素进行排序,每个元素字节长,使用该函数确定顺序。 此函数使用的排序算法通过调用指定的函数来比较元素对,并将指…...
[plugin:vite:css] [sass] Undefined mixin.
前言: vite vue3 TypeScript环境 scss报错: [plugin:vite:css] [sass] Undefined mixin. 解决方案: 在vite.config.ts文件添加配置 css: {preprocessorOptions: {// 导入scss预编译程序scss: {additionalData: use "/resources/_ha…...
【论文阅读】大语言模型中的文化道德规范知识
摘要: 在已有的研究中,我们知道英语语言模型中包含了类人的道德偏见,但从未有研究去检测语言模型对不同国家文化的道德差异。 我们分析了语言模型包含不同国家文化道德规范的程度,主要针对两个方面,其一是看语言模型…...
手机网站开发隐藏网址/网页设计费用报价
现在企业正常需要考虑两种类型的云计算,公有云和私有云。人们自然需要一些术语来描述公共云和私有云之间的应用程序和数据传输,并将此架构定义为混合云。尽管公共云和私有云独立运行,但这种数据共享可以通过使用加密连接来实现。这种加密的高…...
主题网站设计模板/百度模拟搜索点击软件
准备好滚滚的JOE – Java on Everything吗? Java on Everything掌握了如何在几乎所有内容上运行Java的关键。 没有操作系统? 没问题。 JOE无需操作系统即可工作。 放弃操作系统的好处是什么? Java on Everything是由约瑟夫库里格(…...
找外包公司做网站给源码吗/网课免费平台
点击上方“蓝色字”可关注我们!暴走时评:欧盟(EU)对分布式账本技术(DLT)的“前景和挑战”进行了数月的监测和观察,最终决定进入区块链行业。2018年,欧盟对该领域发起了多个倡议和决议…...
帷客分享 wordpress/seo查询5118
以下为米尔科技工程师在使用DS-5过程中总结的经验步骤,一个简单的实用HelloWorld工程。虽然工程很简单,但是对于刚入门DS-5来说,可以起到一个指导的作用。如下:步骤:1、从开始菜单启动DS-5,可以看到DS-5的欢…...
九江的网站建设公司/手机网页制作软件
最近来自Docker官方网站的文章提到,从OpenStack Icehouse开始,Docker将与Heat集成。 而最早在OpenStack Havana 版本中,Docker 已经作为 Nova driver方式与OpenStack集成。本文将首先简单介绍Docker,然后介绍其与OpenStack 的集成…...
响应式网站怎么写/网站推广要点
// socket已经连接成功 var socketOpen false // socket已经调用关闭function var socketClose false // socket发送的消息队列 var socketMsgQueue [] // 判断心跳变量 var heart // 心跳失败次数 var heartBeatFailCount 0 // 终止心跳 var heartBeatTimeOut null; //…...