启用Kubernetes六个关键组件
开源Kubernetes近年来引起很多炒作,当然实际部署案例也不少。从本质上讲Kubernetes被定义为容器编排系统,即它是一个平台,提供了使用户能够部署、调度和管理应用程序容器部署的机制。不过按照Varidata所知,Kubernetes不仅仅是一个容器编排器,它还创造一个可以部署云原生应用程序的平台。但无论如何定义Kubernetes,它都是一个由许多不同的组件和API抽象组成。
鉴于Kubernetes引入许多传统服务器虚拟化技术用户可能不熟悉的概念和想法,我们将Kubernetes六个核心组件进行概述。
1. Pods。这一概念包含在应用程序或微服务在隔离的计算元素(容器)中运行的思想。使用Kubernetes Pod将这种抽象更具体化。容器是在Kubernetes中运行容器的基本单位。Pods可以包含一个或多个容器,它提供一种定义环境变量的方法。
2. ReplicaSets。在Pod中简单地运行容器只会暴露Kubernetes初始功能。作为业务流程平台,Kubernetes可以在集群中运行多组容器,从而实现高可用性。ReplicaSet是一个Kubernetes组件,它定义并确保一组相同配置的Pod正在运行且具有用户定义数量的副本。如果某个Pod出于某种原因失败并掉线,则ReplicaSet将自动调出一个新的相同Pod。
3. DaemonSets。DaemonSet是另一种确保Pod副本在集群中不同节点上运行的方法,DaemonSet确保所有(或某些)节点运行Pod的副本,将节点添加到群集时,会将Pods添加到其中。
4. CRD。Kubernetes受欢迎的原因之一是它具有可扩展性。启用可扩展性的方法之一是通过自定义资源定义或CRD。默认情况下,使用CRD,Kubernetes管理员可以定义不属于平台的资源类型。定义了新的CRD之后,用于管理资源的核心Kubernetes API功能便开始发挥作用。
5. Secrets。Secrets是平台的核心元素,但它并不是Kubernetes独有的。它可以定义为密码、访问令牌或安全证书,用于对某种资源进行某种形式的安全访问。Kubernetes内的Secrets管理允许将Secrets仅在运行时附加到给定的Pod上,而不是在Pod中进行硬编码或将机密嵌入到Pod中。
6. Deployments。根据定义,业务流程与部署应用程序有关,这就是Kubernetes部署支持的功能。Kubernetes部署控制器是更高级别的抽象,用于启用声明性更新来部署副本集及其关联的Pod。通过部署,可以更新正在运行的Pod以及回滚和扩展。