微思网络 厦门微思网络
K8S认证工程师(CKA)备考与学习指南https://mp.weixin.qq.com/s/XsEVpU7dKnJDBopynWW3GQ
K8S-CKA课程试听:Container 概述
词汇表
此术语表旨在提供 Kubernetes 术语的完整、标准列表。其中包含特定于 Kubernetes 的技术术语以及能够构造有用的语境的一般性术语。
微思课程介绍 —— k8s-CKA认证课程介绍
CKA认证考试升级计划——Kubernetes功能及场景新解析
K8S认证工程师(CKA)备考与学习指南
K8S | 全面解读CKA认证的重要性!
API Group (API 组)
Kubernetes API 中的一组相关路径。
通过更改 API 服务器的配置,可以启用或禁用每个 API 组 (API Group)。你还可以禁用或启用指向特定资源的路径。API 组使扩展 Kubernetes API 更加的容易。API 组在 REST 路径和序列化对象的 apiVersion
字段中指定。
API 服务器
亦称作: kube-apiserver
API 服务器是 Kubernetes 控制平面的组件, 该组件负责公开了 Kubernetes API,负责处理接受请求的工作。API 服务器是 Kubernetes 控制平面的前端。
[-]
Kubernetes API 服务器的主要实现是 kube-apiserver。 kube-apiserver
设计上考虑了水平扩缩,也就是说,它可通过部署多个实例来进行扩缩。你可以运行 kube-apiserver
的多个实例,并在这些实例之间平衡流量。
CustomResourceDefinition
通过定制化的代码给你的 Kubernetes API 服务器增加资源对象,而无需编译完整的定制 API 服务器。
当 Kubernetes 公开支持的 API 资源不能满足你的需要时, 定制资源对象(Custom Resource Definitions)让你可以在你的环境上扩展 Kubernetes API。
DaemonSet
确保 Pod 的副本在集群中的一组节点上运行。
用来部署系统守护进程,例如日志搜集和监控代理,这些进程通常必须运行在每个节点上。
Deployment
管理多副本应用的一种 API 对象,通常通过运行没有本地状态的 Pod 来完成工作。
每个副本表现为一个 Pod, Pod 分布在集群中的节点上。对于确实需要本地状态的工作负载,请考虑使用 StatefulSet。
Docker
Docker(这里特指 Docker Engine)是一种可以提供操作系统级别虚拟化 (也称作容器)的软件技术。
Docker 使用了 Linux 内核中的资源隔离特性(如 cgroup 和内核命名空间)以及支持联合文件系统(如 OverlayFS 和其他), 允许多个相互独立的“容器”一起运行在同一 Linux 实例上,从而避免启动和维护虚拟机(Virtual Machines;VM)的开销。
Dockershim
dockershim 是 Kubernetes v1.23 及之前版本中的一个组件。这个组件使得 kubelet 能够与 Docker Engine 通信。
从 Kubernetes v1.24 开始,dockershim 已从 Kubernetes 中移除。想了解更多信息,可参考移除 Dockershim 的常见问题。
Duration
在 Kubernetes API 中,duration 必须是非负的,通常带有后缀单位。例如,5s 表示五秒,1m30s 表示一分三十秒。
在 Kubernetes API 中,duration 必须是非负的,通常带有后缀单位。例如,5s
表示五秒,1m30s
表示一分三十秒。
Finalizer
Finalizer 是带有命名空间的键,告诉 Kubernetes 等到特定的条件被满足后, 再完全删除被标记为删除的资源。Finalizer 提醒控制器清理被删除的对象拥有的资源。
当你告诉 Kubernetes 删除一个指定了 Finalizer 的对象时, Kubernetes API 通过填充 .metadata.deletionTimestamp
来标记要删除的对象, 并返回 202
状态码(HTTP "已接受") 使其进入只读状态。此时控制平面或其他组件会采取 Finalizer 所定义的行动, 而目标对象仍然处于终止中(Terminating)的状态。这些行动完成后,控制器会删除目标对象相关的 Finalizer。当 metadata.finalizers
字段为空时,Kubernetes 认为删除已完成并删除对象。
你可以使用 Finalizer 控制资源的垃圾收集。例如,你可以定义一个 Finalizer,在删除目标资源前清理相关资源或基础设施。
Init 容器(Init Container)
应用容器运行前必须先运行完成的一个或多个 Init 容器(Init Container)。
Init 容器像常规应用容器一样,只有一点不同:Init 容器必须在应用容器启动前运行完成。Init 容器的运行顺序:一个 Init 容器必须在下一个 Init 容器开始前运行完成。
与边车容器不同,Init 容器在 Pod 启动后不会继续运行。
Job
Job 是需要运行完成的确定性的或批量的任务。
创建一个或多个 Pod 对象,并确保指定数量的 Pod 成功终止。随着各 Pod 成功结束,Job 会跟踪记录成功完成的个数。
kube-controller-manager
kube-controller-manager 是控制平面的组件, 负责运行控制器进程。
从逻辑上讲, 每个控制器都是一个单独的进程, 但是为了降低复杂性,它们都被编译到同一个可执行文件,并在同一个进程中运行。
kube-proxy
kube-proxy 是集群中每个节点(node)上所运行的网络代理, 实现 Kubernetes 服务(Service) 概念的一部分。
kube-proxy 维护节点上的一些网络规则, 这些网络规则会允许从集群内部或外部的网络会话与 Pod 进行网络通信。
如果操作系统提供了可用的数据包过滤层,则 kube-proxy 会通过它来实现网络规则。否则,kube-proxy 仅做流量转发。
Kubectl
亦称作: kubectl
kubectl 是使用 Kubernetes API 与 Kubernetes 集群的控制面进行通信的命令行工具。
你可以使用 kubectl
创建、检视、更新和删除 Kubernetes 对象。
Kubelet
kubelet
会在集群中每个节点(node)上运行。它保证容器(containers)都运行在 Pod 中。
kubelet 接收一组通过各类机制提供给它的 PodSpec,确保这些 PodSpec 中描述的容器处于运行状态且健康。kubelet 不会管理不是由 Kubernetes 创建的容器。
Kubernetes API
Kubernetes API 是通过 RESTful 接口提供 Kubernetes 功能服务并负责集群状态存储的应用程序。
Kubernetes 资源和"意向记录"都是作为 API 对象储存的,并可以通过调用 RESTful 风格的 API 进行修改。API 允许以声明方式管理配置。用户可以直接和 Kubernetes API 交互,也可以通过 kubectl
这样的工具进行交互。核心的 Kubernetes API 是很灵活的,可以扩展以支持定制资源。
LimitRange
提供约束来限制命名空间中每个 容器(Containers) 或 Pod 的资源消耗。
LimitRange 按照类型来限制命名空间中对象能够创建的数量,以及单个 容器(Containers) 或 Pod 可以请求/使用的计算资源量。
Master
遗留术语,作为运行 控制平面 的 节点 的同义词使用。
该术语仍被一些配置工具使用,如 kubeadm 以及托管的服务,为 节点(nodes) 添加 kubernetes.io/role
的 标签(label),以及管理控制平面 Pod 的调度。
Minikube
Minikube 是用来在本地运行 Kubernetes 的一种工具。
Minikube 在用户计算机上的一个虚拟机内运行单节点 Kubernetes 集群。你可以使用 Minikube 在学习环境中尝试 Kubernetes。
Pod
Pod 是 Kubernetes 的原子对象。Pod 表示你的集群上一组正在运行的容器(Container)。
通常创建 Pod 是为了运行单个主容器。Pod 还可以运行可选的边车(sidecar)容器,以添加诸如日志记录之类的补充特性。通常用 Deployment 来管理 Pod。
Pod 安全策略
为 Pod 的创建和更新操作启用细粒度的授权。
Pod 安全策略是集群级别的资源,它控制着 Pod 规约中的安全性敏感的内容。 PodSecurityPolicy
对象定义了一组条件以及相关字段的默认值,Pod 运行时必须满足这些条件。Pod 安全策略控制实现上体现为一个可选的准入控制器。
PodSecurityPolicy 已于 Kubernetes v1.21 起弃用,并在 v1.25 中删除。作为替代方案,请使用 Pod 安全准入或第三方准入插件。
Pod 生命周期
关于 Pod 在其生命周期中处于哪个阶段的更高层次概述
Pod 生命周期 是关于 Pod 处于哪个阶段的概述。包含了下面 5 种可能的阶段:Running、Pending、Succeeded、 Failed、Unknown。关于 Pod 的阶段的更高级描述请查阅 PodStatus phase
字段。
QoS 类(QoS Class)
QoS Class(Quality of Service Class)为 Kubernetes 提供了一种将集群中的 Pod 分为几个类并做出有关调度和驱逐决策的方法。
ReplicaSet
ReplicaSet 是下一代副本控制器。
ReplicaSet 就像 ReplicationController 那样,确保一次运行指定数量的 Pod 副本。ReplicaSet 支持新的基于集合的选择器需求(在标签的用户指南中有相关描述),而副本控制器只支持基于等值的选择器需求。
ServiceAccount
为在 Pod 中运行的进程提供标识。
当 Pod 中的进程访问集群时,API 服务器将它们作为特定的服务帐户进行身份验证, 例如 default
,创建 Pod 时,如果你没有指定服务帐户,它将自动被赋予同一个 名字空间中的 default 服务账户。
Spec
定义 Pod 或 Service 这类每种对象应被如何配置及其预期状态。
几乎每个 Kubernetes 对象都包含两个嵌套的对象字段,用于治理对象本身的配置:对象规约(spec)和对象状态(status)。对于具有规约的对象,你必须在创建对象时设置规约,并提供资源所需特征的描述:即其预期状态。
此字段对于 Pod、StatefulSet 和 Service 等不同对象会有所差异, 字段详细说明如容器、卷、副本、端口等设置以及每种对象特有的其他规约。此字段封装了 Kubernetes 针对所定义的对象应保持何种状态。
StatefulSet
StatefulSet 用来管理某 Pod 集合的部署和扩缩, 并为这些 Pod 提供持久存储和持久标识符。
和 Deployment 类似, StatefulSet 管理基于相同容器规约的一组 Pod。但和 Deployment 不同的是, StatefulSet 为它们的每个 Pod 维护了一个有粘性的 ID。这些 Pod 是基于相同的规约来创建的, 但是不能相互替换:无论怎么调度,每个 Pod 都有一个永久不变的 ID。
如果希望使用存储卷为工作负载提供持久存储,可以使用 StatefulSet 作为解决方案的一部分。尽管 StatefulSet 中的单个 Pod 仍可能出现故障, 但持久的 Pod 标识符使得将现有卷与替换已失败 Pod 的新 Pod 相匹配变得更加容易。
UID
Kubernetes 系统生成的字符串,唯一标识对象。
在 Kubernetes 集群的整个生命周期中创建的每个对象都有一个不同的 UID,它旨在区分类似实体的历史事件。
边车容器
通常在任意应用容器运行之前启动的一个或多个容器。
边车容器与常规应用容器类似,但目的不同:边车为主应用容器提供了一个 Pod 内的本地服务。与Init 容器不同,边车容器在 Pod 启动后继续运行。
标签(Label)
用来为对象设置可标识的属性标记;这些标记对用户而言是有意义且重要的。
标签是一些关联到 Pods 这类对象上的键值对。它们通常用来组织和选择对象子集。
对象(Object)
Kubernetes 系统中的实体。Kubernetes API 用这些实体表示集群的状态。
Kubernetes 对象通常是一个“意向表述(Record of Intent)”—一旦你创建了一个对象,Kubernetes 控制平面(Control Plane) 就不断工作, 以确保它所代表的事物确实存在。创建一个对象相当于告知 Kubernetes 系统:你期望这部分集群负载看起来像什么;这也就是你集群的期望状态。
服务(Service)
将运行在一个或一组 Pod 上的网络应用程序公开为网络服务的方法。
服务所针对的 Pod 集(通常)由选择算符确定。如果有 Pod 被添加或被删除,则与选择算符匹配的 Pod 集合将发生变化。服务确保可以将网络流量定向到该工作负载的当前 Pod 集合。
Kubernetes Service 要么使用 IP 网络(IPv4、IPv6 或两者),要么引用位于域名系统 (DNS) 中的外部名称。
Service 的抽象可以实现其他机制,如 Ingress 和 Gateway。
副本(Replica)
单个 Pod 或一组 Pod 的复制拷贝。Replicas 通过维护多个相同的 Pod 实例保证了高可用性、可扩缩性和容错性。
Kubernetes 中通常使用副本来实现期望的应用状态和可靠性。它们可以在集群的多个节点上扩缩和分配工作负载。
在 Deployment 或 ReplicaSet 中定义副本数量, Kubernetes 确保了所期望数量的实例正在运行, 并且会根据需要自动调整这个数量。
副本管理可以在 Kubernetes 集群中提供了高效的负载均衡、滚动更新和自愈能力。
干扰(Disruption)
干扰(Disruption)是指导致一个或者多个 Pod 服务停止的事件。干扰会影响依赖于受影响的 Pod 的资源,例如 Deployment。
如果你作为一个集群操作人员,销毁了一个从属于某个应用的 Pod, Kubernetes 视之为自愿干扰(Voluntary Disruption)。如果由于节点故障或者影响更大区域故障的断电导致 Pod 离线, Kubernetes 视之为非愿干扰(Involuntary Disruption)。
工作负载(Workload)
工作负载是在 Kubernetes 上运行的应用程序。
代表不同类型或部分工作负载的各种核心对象包括 DaemonSet、Deployment、Job、ReplicaSet 和 StatefulSet。
例如,具有 Web 服务器和数据库的工作负载可能在一个 StatefulSet 中运行数据库, 而 Web 服务器运行在 Deployment。
混排切片(Shuffle Sharding)
混排切片(Shuffle Sharding)是指一种将请求指派给队列的技术,其隔离性好过对队列个数哈希取模的方式。
基于角色的访问控制(RBAC)
管理授权决策,允许管理员通过 Kubernetes API 动态配置访问策略。
RBAC 使用 角色 (包含权限规则)和 角色绑定 (将角色中定义的权限授予一组用户)。
集群(Cluster)
一组工作机器,称为节点, 会运行容器化应用程序。每个集群至少有一个工作节点。
工作节点会托管 Pod,而 Pod 就是作为应用负载的组件。 控制平面管理集群中的工作节点和 Pod。在生产环境中,控制平面通常跨多台计算机运行, 一个集群通常运行多个节点,提供容错性和高可用性。
监视(Watch)
用于以流的形式跟踪 Kubernetes 中对象更改的动词。它用于高效检测更改。
用于以流的形式跟踪 Kubernetes 中对象变化的动词。监视可以有效地检测变化;例如,需要知道 ConfigMap 何时发生变化的控制器可以使用监视而不是轮询。请参阅有效检测 API 概念的变化了解更多信息。
节点(Node)
Kubernetes 中的工作机器称作节点。
工作机器可以是虚拟机也可以是物理机,取决于集群的配置。其上部署了运行 Pods 所必需的本地守护进程或服务,并由主控组件来管理。节点上的守护进程包括 kubelet、 kube-proxy 以及一个 Docker 这种 实现了 CRI 的容器运行时。
在早期的 Kubernetes 版本中,节点也称作 "Minions"。
静态 Pod(Static Pod)
由特定节点上的 kubelet 守护进程直接管理的 Pod。API 服务器不了解它的存在。静态 Pod 不支持临时容器。
由特定节点上的 kubelet 守护进程直接管理的 Pod。API 服务器不了解它的存在。
静态 Pod 不支持临时容器。
镜像(Image)
镜像(Image)是保存的容器实例,它打包了应用运行所需的一组软件。
镜像是软件打包的一种方式,可以将镜像存储在容器镜像仓库、拉取到本地系统并作为应用来运行。镜像中包含的元数据指明了运行什么可执行程序、是由谁构建的以及其他信息。
卷(Volume)
包含可被 Pod 中容器访问的数据的目录。每个 Kubernetes 卷在所处的 Pod 存在期间保持存在状态。因此,卷的生命期会超出 Pod 中运行的容器, 并且保证容器重启之后仍保留数据。
包含可被 Pod 中容器访问的数据的目录。
每个 Kubernetes 卷在所处的 Pod 存在期间保持存在状态。因此,卷的生命期会超出 Pod 中运行的容器, 并且保证容器重启之后仍保留数据。
控制平面(Control Plane)
控制平面(Control Plane)是指容器编排层,它暴露 API 和接口来定义、 部署容器和管理容器的生命周期。
这个编排层是由多个不同的组件组成,例如以下(但不限于)几种:
这些组件可以作为传统的操作系统服务(守护程序)或容器运行。运行这些组件的主机在历史上被称为 Master。
-
etcd
-
API 服务器
-
调度器
-
控制器管理器
-
云控制器管理器
控制器(Controller)
在 Kubernetes 中,控制器通过监控集群 的公共状态,并致力于将当前状态转变为期望的状态。
控制器(控制平面的一部分) 通过 API 服务器监控你的集群中的公共状态。
其中一些控制器是运行在控制平面内部的,对 Kubernetes 来说,他们提供核心控制操作。比如:部署控制器(deployment controller)、守护控制器(daemonset controller)、 命名空间控制器(namespace controller)、持久化数据卷控制器(persistent volume controller)(等) 都是运行在 kube-controller-manager 中的。
控制组(cgroup;control group)
一组具有可选资源隔离、审计和限制的 Linux 进程。
cgroup 是一个 Linux 内核特性,对一组进程的资源使用(CPU、内存、磁盘 I/O 和网络等)进行限制、审计和隔离。
扩展组件(Extensions)
扩展组件(Extensions)是扩展并与 Kubernetes 深度集成以支持新型硬件的软件组件。
许多集群管理员会使用托管的 Kubernetes 或其某种发行包,这些集群预装了扩展组件。因此,大多数 Kubernetes 用户将不需要安装扩展组件, 需要编写新的扩展组件的用户就更少了。
垃圾收集(Garbage Collection)
垃圾收集(Garbage Collection)是 Kubernetes 用于清理集群资源的各种机制的统称。
Kubernetes 使用垃圾收集机制来清理资源,例如: 未使用的容器和镜像、 失败的 Pod、 目标资源拥有的对象、 已完成的 Job、 过期或出错的资源。
临时容器(Ephemeral Container)
你可以在 Pod 中临时运行的一种 容器(Container) 类型。
如果想要调查运行中有问题的 Pod,可以向该 Pod 添加一个临时容器(Ephemeral Container)并进行诊断。临时容器没有资源或调度保证,因此不应该使用它们来运行工作负载本身的任何部分。
静态 Pod 不支持临时容器。
名称(Name)
客户端提供的字符串,引用资源 URL 中的对象,如/api/v1/pods/some name
。
某一时刻,只能有一个给定类型的对象具有给定的名称。但是,如果删除该对象,则可以创建同名的新对象。
名字空间(Namespace)
名字空间是 Kubernetes 用来支持隔离单个 集群中的资源组的一种抽象。
名字空间用来组织集群中对象,并为集群资源划分提供了一种方法。同一名字空间内的资源名称必须唯一,但跨名字空间时不作要求。基于名字空间的作用域限定仅适用于名字空间作用域的对象(例如 Deployment、Services 等), 而不适用于集群作用域的对象(例如 StorageClass、Node、PersistentVolume 等)。在一些文档里名字空间也称为命名空间。
亲和性(Affinity)
在 Kubernetes 中 亲和性(affinity) 是一组规则,它们为调度程序提供在何处放置 Pod 提示信息。
亲和性有两种:
这些规则是使用 Kubernetes 标签(label) 和 Pod 中指定的选择算符定义的, 这些规则可以是必需的或首选的,这取决于你希望调度程序执行它们的严格程度。
-
节点亲和性
-
Pod 间亲和性
清单(Manifest)
JSON 或 YAML 格式的 Kubernetes API 对象规约。
清单指定在应用该清单时 kubernetes 将维护的对象的期望状态。对于 YAML 格式,每个文件可包含多个清单。
日志(Logging)
日志是 集群(cluster) 或应用程序记录的事件列表。
应用程序和系统日志可以帮助你了解集群内部发生的情况。日志对于调试问题和监视集群活动非常有用。
容器(Container)
容器是可移植、可执行的轻量级的镜像,包含其中的软件及其相关依赖。
容器使应用和底层的主机基础设施解耦,降低了应用在不同云环境或者操作系统上的部署难度,便于应用扩展。在容器内运行的应用称为容器化应用。将这些应用及其依赖项捆绑到容器镜像中的过程称为容器化。
容器环境变量(Container Environment Variables)
容器环境变量提供了 name=value 形式的、在 Pod 中运行的容器所必须的一些重要信息。
容器环境变量为运行中的容器化应用提供必要的信息, 同时还提供与容器重要资源相关的其他信息, 例如:文件系统信息、容器自身的信息以及其他像服务端点(Service endpoints)这样的集群资源信息。
容器运行时(Container Runtime)
这个基础组件使 Kubernetes 能够有效运行容器。它负责管理 Kubernetes 环境中容器的执行和生命周期。
Kubernetes 支持许多容器运行环境,例如 containerd、 CRI-O 以及 Kubernetes CRI (容器运行环境接口) 的其他任何实现。
容器运行时接口(Container Runtime Interface;CRI)
容器运行时接口(Container Runtime Interface;CRI)是一组让容器运行时与节点上 kubelet 集成的 API。
容忍度(Toleration)
容忍度是一种核心对象,包含三个必需的属性:key、value 和 effect。容忍度允许将 Pod 调度到具有对应污点的节点或节点组上。
容忍度和污点共同作用可以确保不会将 Pod 调度在不适合的节点上。在同一 Pod 上可以设置一个或者多个容忍度。容忍度表示在包含对应污点的节点或节点组上调度 Pod是允许的(但并非必需)。
设备插件(Device Plugin)
设备插件在工作节点上运行并为 Pod 提供访问资源的能力, 例如:本地硬件这类资源需要特定于供应商的初始化或安装步骤。
设备插件向 kubelet 公布资源,以便工作负载 Pod 访问 Pod 运行所在节点上的硬件功能特性。你可以将设备插件部署为 DaemonSet, 或者直接在每个目标节点上安装设备插件软件。
事件(Event)
事件(Event)是描述系统状态变化以及需要注意的事情的 Kubernetes 对象。
事件的保留时间有限,随着时间推进,其触发方式和消息都可能发生变化。事件用户不应该对带有给定原因(反映下层触发源)的时间特征有任何依赖, 也不要寄希望于该原因所造成的事件会一直存在。
事件应该被视为一种告知性质的、尽力而为的、补充性质的数据。
在 Kubernetes 中, 审计机制会生成一种不同类别的 Event 记录(API 组为 audit.k8s.io
)。
数据平面(Data Plane)
提供诸如 CPU、内存、网络和存储的能力,以便容器可以运行并连接到网络。
提供诸如 CPU、内存、网络和存储的能力,以便容器可以运行并连接到网络。
特性门控(Feature gate)
特性门控是一组键(非透明的字符串值),你可以用它来控制在你的集群中启用哪些 Kubernetes 特性。
你可以在每个 Kubernetes 组件中使用 --feature-gates
命令行标志来开启或关闭这些特性。每个 Kubernetes 组件都可以让你开启或关闭一组与该组件相关的特性门控。Kubernetes 文档列出了当前所有的特性门控及其控制的内容。
污点(Taint)
污点是一种核心对象,包含三个必需的属性:key、value 和 effect。污点会阻止在节点或节点组上调度 Pod。
污点和容忍度一起工作, 以确保不会将 Pod 调度到不适合的节点上。同一节点上可标记一个或多个污点。节点应该仅调度那些带着能与污点相匹配容忍度的 Pod。
选择算符(Selector)
选择算符允许用户通过标签(labels)对一组资源对象进行筛选过滤。
在查询资源列表时,选择算符可以通过标签对资源进行过滤筛选。
应用(Applications)
各种容器化应用运行所在的层。
注解(Annotation)
注解是以键值对的形式给资源对象附加随机的无法标识的元数据。
注解中的元数据可大可小,可以是结构化的也可以是非结构化的, 并且能包含标签不允许使用的字符。像工具和软件库这样的客户端可以检索这些元数据。
资源配额(Resource Quotas)
资源配额提供了限制每个 命名空间 的资源消耗总和的约束。
限制了命名空间中每种对象可以创建的数量,也限制了项目中可被资源对象利用的计算资源总数。
END
微思网络,始于2002年
专业IT认证培训22年,面向全国招生!
微思-主要课程有:
*网络技术:华为HCIA/ HCIP/HCIE;思科CCNA/CCNP/CCIE
*Linux技术:红帽 RHCE/RHCA
*K8S&容器:CKA/CKS
*数据库:ORACLE OCP/ OCM ;MySQL ;达梦数据库
*虚拟化:VMware VCP/VCAP
*安全认证:CISP体系/CISSP/ CISA;CCSK;CISAW体系
*管理类:PMP 项目管理;软考中/高项;ITIL体系;Togaf
其他课程如:ACP;Azure...