第一节 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

相关推荐
资源开发与学习19 小时前
Kubernetes集群核心概念 Service
kubernetes
阿里云云原生20 小时前
【云栖大会】AI原生、AI可观测、AI Serverless、AI中间件,4场论坛20+议题公布!
云原生
容器魔方21 小时前
Bloomberg 正式加入 Karmada 用户组!
云原生·容器·云计算
muyun28001 天前
Docker 下部署 Elasticsearch 8 并集成 Kibana 和 IK 分词器
elasticsearch·docker·容器
Nazi61 天前
k8s的dashboard
云原生·容器·kubernetes
傻傻虎虎1 天前
【Docker】常用帮忙、镜像、容器、其他命令合集(2)
运维·docker·容器
是小崔啊1 天前
叩丁狼K8s - 概念篇
云原生·容器·kubernetes
AKAMAI2 天前
Sport Network 凭借 Akamai 实现卓越成就
人工智能·云原生·云计算
ajax_beijing2 天前
zookeeper是啥
分布式·zookeeper·云原生
summer_west_fish2 天前
2023年系统分析师上半年论文试题分析
kubernetes