第一节 K8S的基础概念

第一节 K8S的基础概念

Node 可以理解为一个物理机或者虚拟机 ,K8S中的一个节点 ,每个节点包含Pod 所需的服务, 这些节点 是由 Control Plane 来管理, 节点的名称 用来标识Node 对象,名称必须是唯一的. Node上有三个组件分别是 kubelet ,kube-proxy,container-runtime .

kubelet 负责管理和维护每个节点上的Pod,并确保他们按照预期运行. kubelet 是在每个节点上运行的主要 "节点代理" 它可以使用以下方式之一向 API 服务器注册:

  • 主机名(hostname)
  • 覆盖主机名的参数
  • 特定于某云驱动的逻辑

kubelet 是基于 PodSpec 来工作的。每个 PodSpec 是一个描述 Pod 的 YAML 或 JSON 对象。 kubelet 接受通过各种机制(主要是通过 apiserver)提供的一组 PodSpec,并确保这些 PodSpec 中描述的容器处于运行状态且运行状况良好。 kubelet 不管理不是由 Kubernetes 创建的容器。

容器运行时 , 有很多种, 比如 docker-engine , containerd , CRI-O

控制平面(Control Plane)是指容器编排层,它暴露 API 和接口来定义、 部署容器和管理容器的生命周期。

Pod 是kubernetes 的最小调度单元, 他是 一个或多个容器的组合 . 一般只有一个容器,可以理解为容器的抽象.一个 Pod 可以包含一个或多个紧密关联的容器, 它们共享相同的网络命名空间、 IP 地址和存储卷, 并在同一个宿主上运行。

Service 是将运行在一个或一组 Pod 上的网络应用程序公开为网络服务的方法。

Ingress 是对集群中服务的外部访问进行管理的 API 对象, 典型的访问方式是 HTTP。 可以通过Ingress资源来配置不同的转发规则, 从而达到根据不同的规则设置访问集群内不同的Service所对应的后端Pod。

命名空间 ( namespace) 提供一种机制, 将同一集群中的资源划分为相互隔离的组, 以便进行分类、 筛选和管理。同一命名空间内的资源名称要唯一, 但跨命名空间时没有这个要求。

ConfigMap , Secret 可以把外部信息 ,敏感信息 存起来. 更新这些配置会比较方便. 避免配置变更重新编译和部署的问题.

Volumes 可以将数据挂载到集群中本地磁盘和远程存储上, 做数据持久化使用的.

Deployment 组件 来管理无状态的组件, 可以将一个或多个Pod 组合在一起, 副本控制, 滚动更新, 动态扩缩容等 等.

StatefulSet 组件 来管理 有状态的组件 (mysql ,缓存,消息队列等)

对于有状态的应用程序, 可以单独部署, 从 K8S 集群中剥离出来, 单独部署.
分享快乐,留住感动. '2024-01-21 21:39:18' --frank

相关推荐
engchina9 小时前
WSL Ubuntu で Kubernetes v1.34.2 + Docker 環境を構築する
ubuntu·docker·kubernetes
Gold Steps.12 小时前
OpenEBS — 云原生 CNS 高性能存储
云原生·kubernetes·存储
大雨淅淅12 小时前
Eureka从入门到精通:开启微服务架构的钥匙
微服务·云原生·eureka·架构
oMcLin12 小时前
2025年必备的Docker命令指南与实战示例
docker·容器·eureka
sun cat13 小时前
Docker详细介绍(6)
docker·容器·docker-compose
AI架构全栈开发实战笔记13 小时前
Eureka 对大数据领域服务依赖关系的梳理
大数据·ai·云原生·eureka
广州中轴线19 小时前
OpenStack on Kubernetes 生产部署实战(十三)
容器·kubernetes·openstack
晚霞的不甘20 小时前
Flutter for OpenHarmony天气卡片应用:用枚举与动画打造沉浸式多城市天气浏览体验
前端·flutter·云原生·前端框架
Tadas-Gao20 小时前
TCP粘包现象的深度解析:从协议本质到工程实践
网络·网络协议·云原生·架构·tcp
礼拜天没时间.20 小时前
深入Docker架构——C/S模式解析
linux·docker·容器·架构·centos