k8s基础概念
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s基础概念相关的知识,希望对你有一定的参考价值。
k8s基础概念
- hecluster: 是计算、存储和网络资源的集合,Kubernetes 利用这些资源运行各种基于容器的应用
- master:Master 是 Cluster 的大脑,它的主要职责是调度,即决定将应用放在哪里运行。Master 运行 Linux 操作系统,可以是物理机或者虚拟机。为了实现高可用,可以运行多个 Master。
- api server: 提供restful api,是Kubernetes cluster前端的连接端口,各种客户端工具(CLI,UI)以及kubernetes其他组件可以通过它管理cluster的各种组件
- sheduler:负责将Pod运行在那个node上,在调度的时候会充分烤炉cluster的拓扑结构,当前各个节点的负载,以及应用对高可用,性能,数据亲和性的需求
- contoller:Kubernetes 通常不会直接创建 Pod,而是通过 Controller 来管理 Pod 的。Controller 中定义了 Pod 的部署特性,比如有几个副本,在什么样的 Node 上运行等。为了满足不同的业务场景,Kubernetes 提供了多种 Controller,包括 Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 等
- node:Node 的职责是运行容器应用。Node 由 Master 管理,Node 负责监控并汇报容器的状态,并根据 Master 的要求管理容器的生命周期。Node 运行在 Linux 操作系统,可以是物理机或者是虚拟机
- pod:Pod 是 Kubernetes 的最小工作单元。每个 Pod 包含一个或多个容器。Pod 中的容器会作为一个整体被 Master 调度到一个 Node 上运行
- deployment:是最常用的 Controller,比如前面在线教程中就是通过创建 Deployment 来部署应用的。Deployment 可以管理 Pod 的多个副本,并确保 Pod 按照期望的状态运行
- replicaset:实现了 Pod 的多副本管理。使用 Deployment 时会自动创建 ReplicaSet,也就是说 Deployment 是通过 ReplicaSet 来管理 Pod 的多个副本,我们通常不需要直接使用 ReplicaSet
- daemonset:用于每个 Node 最多只运行==一个 Pod 副本==的场景(可以运行多个Daemonset)。正如其名称所揭示的,DaemonSet 通常用于运行 daemon,经典场景:
- 在集群的每个节点上运行存储 Daemon,比如 glusterd 或 ceph。
- 在每个节点上运行日志收集 Daemon,比如 flunentd 或 logstash。
- 在每个节点上运行监控 Daemon,比如 Prometheus Node Exporter 或 collectd。
- job:用于运行结束就删除的应用。而其他 Controller 中的 Pod 通常是长期持续运行
- statefuleset:能够保证 Pod 的每个副本在整个生命周期中名称是不变的。而其他 Controller 不提供这个功能,当某个 Pod 发生故障需要删除并重新启动时,Pod 的名称会发生变化。同时 StatefuleSet 会保证副本按照固定的顺序启动、更新或者删除
- service: Kubernetes Service 定义了外界访问一组特定 Pod 的方式。Service 有自己的 IP 和端口,Service 为 Pod 提供了负载均衡
- namespace: 如果有多个用户或项目组使用同一个 Kubernetes Cluster,namespace就是可以将一个物理的cluster逻辑上划分多个虚拟cluster,每个cluster就是一个namespace
- default: 创建资源时如果不指定将被放到这个namespace中
- kebu-system:kubernetes自己创建的系统资源将会放置在这个namespace中
以上是关于k8s基础概念的主要内容,如果未能解决你的问题,请参考以下文章