k8s 文档阅读笔记

官方kubernetes文档

kubeadm引导集群安装

两种高可用架构

  • 堆叠etcd模式:etcd和控制平面在同一个节点

    堆叠

  • 外部etcd模式:etcd和控制平面分开

对象:简单理解就是yaml文件

对象必须包含的四大字段:

  • apiVersion - 创建该对象所使用的 Kubernetes API 的版本
  • kind - 想要创建的对象的类别
  • metadata - 帮助唯一性标识对象的一些数据,包括一个 name 字符串、UID 和可选的 namespace
  • spec - 你所期望的该对象的状态(node不需要)

对象种类(kind)

namespace(命名空间)

使用 Kubernetes 名字空间来划分集群。

节点(Node)

节点上的组件包括 kubelet容器运行时以及 kube-proxy

pod-最小单元

由一组容器组成,最小的可部署的计算单元。

deployments-部署

一个 Deployment 为 PodReplicaSet 提供声明式的更新能力。

ReplicaSet-副本

维护Pod 副本的稳定集合。 常用来保证给定数量的、完全相同的 Pod 的可用性。一般由Deployment里面定义。

StatefulSet-有状态

管理有状态应用的工作负载 API 对象。为这些 Pod 提供持久存储(pv)和持久标识符。

DaemonSet-守护

确保全部(或者某些)节点上运行一个 Pod 的副本,和pod共存亡,一般用于守护进程。

job-任务

job 会创建一个或者多个 Pod,并将继续重试 Pod 的执行,直到指定数量的 Pod 成功终止。 随着 Pod 成功结束,Job 跟踪记录成功完成的 Pod 个数。 当数量达到指定的成功个数阈值时,任务(即 Job)结束。 删除 Job 的操作会清除所创建的全部 Pod。 挂起 Job 的操作会删除 Job 的所有活跃 Pod,直到 Job 被再次恢复执行。

CronJob-定时任务

CronJob 用于执行周期性的动作,例如备份、报告生成等。 这些任务中的每一个都应该配置为周期性重复的(例如:每天/每周/每月一次); 你可以定义任务开始执行的时间间隔。

ReplicationController-副本

ReplicationController 确保在任何时候都有特定数量的 Pod 副本处于运行状态。现推荐 ReplicaSetDeployment 来建立副本管理机制

Service-暴露服务

将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。

Ingress-路由

Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。

Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟托管。

EndpointSlice-

端点切片(EndpointSlices) 提供了一种简单的方法来跟踪 Kubernetes 集群中的网络端点 (network endpoints)。它们为 Endpoints 提供了一种可伸缩和可拓展的替代方案。

PersistentVolumeClaim-PVC

PersistentVolume-PV

StorageClass-存储类

StorageClass 为管理员提供了描述存储 “类” 的方法。 不同的类型可能会映射到不同的服务质量等级或备份策略,或是由集群管理员制定的任意策略。

VolumeSnapshot-卷快照

每个 VolumeSnapshot 包含一个 spec 和一个状态。

VolumeSnapshotContent-预配置快照

VolumeSnapshotClass-卷快照类

VolumeSnapshotClass 提供了一种在配置卷快照时描述存储“类”的方法。

KubeSchedulerConfiguration-调度器配置