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

K8s简述

一.Kubernetes是什么

Kubernetes 是一个开源的容器编排系统,用于自动化地部署、扩展和管理容器化应用程序。

它主要功能包括:弹性伸缩(Autoscaling)、服务发现(KubeDnS/CoreDNS)、配置中心(configMap/Secret)、服务网关(ingress Controller)、负载均衡(Load Balancer)、服务安全(RBAC API)、跟踪监控(Metrics API/Dashboard)

Kubernetes 架构主要包括主节点(Master)和工作节点(Node)。

主节点中有几个关键组件,首先API Server:作为整个集群的中心,负责处理REST请求,更新对象状态,调度其他组件。然后就是Controller Manager:控制管理器,监控集群的状态,确保其处于预期状态。还有一个组件就是,Scheduler(调度器):根据资源需求、软硬件及其策略配置为新创建的Pod选择合适的Node进行绑定。-最后就是etcd:作为持久存储,保存整个集群的配置数据。

工作节点的几个关键组件:Kubelet:在每个Node上运行,负责该节点的容器生命周期管理。Proxy:为Service提供网络代理及负载均衡服务。Docker:根据镜像运行容器实例。Volume:提供持久化存储,支持多种类型,如本地存储、网络存储。

Kubernetes(k8s)的工作流程:首先用户通过客户端工具或者可视化界面提交创建Pod等资源的请求。API Server接收请求,进行认证和授权检查,然后将资源对象的数据存储到etcd中。调度器监听新的Pod创建请求,根据调度算法和策略选择合适的工作节点(Node),并将绑定结果存储回etcd。各个工作节点上的Kubelet(读库布利特)定期从API Server获取需要运行的Pod清单,调用容器运行时接口(如Docker)创建和启动容器实例。各类控制器(如部署控制器、副本集控制器)监控API Server中的资源对象状态。

Pod 是 Kubernetes 的最小部署单元,它包含一个或多个紧密关联的容器。Pod 中的容器共享网络命名空间、存储卷和IP地址等资源。

Service 是一种抽象概念,用于定义一组具有相同功能的Pod的逻辑集合,并为它们提供一个统一的访问入口。Service 通过标签选择器来识别后端的Pod,并提供负载均衡和服务发现功能。

Deployment 是一种高级资源对象,可以自动管理Pod的创建、更新和删除,实现滚动升级。

ReplicaSet(复制集) 是一种控制器资源对象,用于确保指定数量的副本Pod始终处于运行状态。它通常由Deployment或其他控制器使用。

ConfigMap 是一种配置信息的资源对象,用于将非机密的配置数据从代码中分离出来,以便更好地管理和更新。

Secret 是一种用于存储敏感信息(如密码、密钥等)的资源对象,它可以在Pod中作为环境变量或文件挂载到容器中。

PersistentVolume(PV)是一种持久化存储资源对象,用于表示集群中的物理存储设备。它提供了一种独立于Pod生命周期的存储机制,可以被多个Pod共享和使用。

PersistentVolumeClaim(PVC)是一种请求存储资源的声明对象,用于申请特定大小和访问模式的持久化存储。当PVC被创建时,Kubernetes会自动为其分配合适的PV。

Namespace 是一种逻辑隔离的资源对象,用于将集群中的资源划分为不同的虚拟集群。

Ingress 是一种API对象,用于管理外部访问集群内部服务的规则。提供负载均衡、SSL和其他HTTP/HTTPS相关的功能

Label(标签)是一种附加到资源对象上的键值对,用于分类和组织这些对象。它允许用户根据自己的需求为资源对象(如Pod、Node、Service等)定义标签,以便于管理和操作。一个Label由键(key)和值(value)组成,例如:environment: production

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

相关文章:

  • 探秘鸿蒙 HarmonyOS NEXT:鸿蒙定时器,简单倒计时的场景应用
  • Vue3 watch使用
  • OceanBase v4.3.5 特性解读:通过OSS WORM特性进行备份归档
  • CVE-2024-23897源码分析与漏洞复现(Jenkins 任意文件读取)
  • HTTP状态码大全:含义、产生原因及排查指南
  • 实战案例-FPGA如何实现JESD204B可重复的延迟
  • 实战案例-FPGA如何实现JESD204B确定性延迟
  • 【已解决】python的kafka-python包连接kafka报认证失败
  • Java 通用实体验证框架:从业务需求到工程化实践【生产级 - 适用于订单合并前置校验】
  • 功能界面的组件化编码流程
  • 鸿蒙接入微信sdk登录 解决提示BundleID信息校验不通过
  • NoSQL数据库技术详解:Redis与MongoDB的应用与实践
  • kotlin kmp 副作用函数 effect
  • 【RPA干货】RPA自动化程序是什么?-rpa百科
  • CentOS7下的大数据NoSQL数据库HBase集群部署
  • gitlab-runner 如何配置使用 Overwrite generated pod specifications
  • 使用 ML.NET Model Builder 训练机器学习模型进行预测性维护
  • ArcGIS Pro 3.4 二次开发 - 任务
  • NLP学习路线图(三十八): 文本摘要
  • 21、Create React App的使用
  • 医学图像分割最新进展
  • Leetcode 3574. Maximize Subarray GCD Score
  • skynet源码学习-skynet_timer定时器
  • 分布式ID最新最佳实践?UUIDv7介绍
  • 基于大模型预测的输尿管上段积水诊疗方案研究报告
  • 征程 6E/M|如何解决量化部署时 mul 与 bool 类型数据交互的问题
  • 期末考试复习总结-《ArkTS基础语法(下)》
  • 跌穿20万辆,更猛烈的价格战却导致销量暴跌,难怪电车内讧了!
  • Codeforces Round 1027 (Div. 3)-G
  • SpringBoot+Vue+MySQL全栈开发实战:前后端接口对接与数据存储详解