kubernetes资源东西与根基观点解析
以下列举的内容都是 kubernetes 中的 Object,这些东西都可以在 yaml 文件中作为一种 API 类型来配置。
Pod
Node
Namespace
Service
Volume
PersistentVolume
Deployment
Secret
StatefulSet
DaemonSet
ServiceAccount
ReplicationController
ReplicaSet
Job
CronJob
SecurityContext
ResourceQuota
LimitRange
HorizontalPodAutoscaling
Ingress
ConfigMap
Label
CustomResourceDefinition
Role
ClusterRole
我将它们简单的分类为以下几种资源东西:
类别号称资源东西 Pod、ReplicaSet、ReplicationController、Deployment、StatefulSet、DaemonSet、Job、CronJob、HorizontalPodAutoscaling、Node、Namespace、Service、Ingress、Label、CustomResourceDefinition
存储东西 Volume、PersistentVolume、Secret、ConfigMap
计谋东西 SecurityContext、ResourceQuota、LimitRange
身份东西 ServiceAccount、Role、ClusterRole
理解 kubernetes 中的东西
在 Kubernetes 系统中,Kubernetes 东西 是长期化的条目。Kubernetes 使用这些条目去暗示整个集群的状态。出格地,它们描述了如下信息:
什么容器化应用在运行(以及在哪个 Node 上)
可以被应用使用的资源
关于应用如何表示的计谋,好比重启计谋、升级计谋,以及容错计谋
Kubernetes 东西是 “方针性记录” —— 一旦创建东西,Kubernetes 系统将连续事情以确保东西存在。通过创建东西,可以有效地奉告 Kubernetes 系统,所需要的集群事情负载看起来是什么样子的,这就是 Kubernetes 集群的 期望状态。
与 Kubernetes 东西事情 —— 是否创建、改削,或者删除 —— 需要使用 Kubernetes API。当使用 kubectl 命令行接口时,好比,CLI 会使用须要的 Kubernetes API 挪用,也可以在措施中直接使用 Kubernetes API。为了实现该方针,Kubernetes 当前供给了一个 golang 客户端库 ,其它语言库(例如Python)也正在开发中。
东西 Spec 与状态每个 Kubernetes 东西包罗两个嵌套的东西字段,它们卖力打点东西的配置:东西 spec 和 东西 status。spec 必需供给,它描述了东西的 期望状态—— 但愿东西所具有的特征。status 描述了东西的 实际状态,它是由 Kubernetes 系统供给和更新。在任何时刻,Kubernetes 控制平面一直处于活跃状态,打点着东西的实际状态以与我们所期望的状态相匹配。
例如,Kubernetes Deployment 东西能够暗示运行在集群中的应用。当创建 Deployment 时,可能需要设置 Deployment 的 spec,,以指定该应用需要有 3 个副本在运行。Kubernetes 系统读取 Deployment spec,启动我们所期望的该应用的 3 个实例 —— 更新状态以与 spec 相匹配。如果那些实例中有掉败的(一种状态变换),Kubernetes 系统通过修正来响应 spec 和状态之间的不一致 —— 这种情况,启动一个新的实例来替换。
关于东西 spec、status 和 metadata 更多信息,检察 Kubernetes API Conventions。
描述 Kubernetes 东西当创建 Kubernetes 东西时,必需供给东西的 spec,用来描述该东西的期望状态,以及关于东西的一些根基信息(例如,名称)。当使用 Kubernetes API 创建东西时(或者直接创建,或者基于kubectl),API 请求必需在请求体中包罗 JSON 格局的信息。更常用的是,需要在 .yaml 文件中为 kubectl 供给这些信息。 kubectl 在执行 API 请求时,将这些信息转换成 JSON 格局。
这里有一个 .yaml 示例文件,展示了 Kubernetes Deployment 的必须字段和东西 spec:
apiVersion: apps/v1beta1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80 Copy一种创建 Deployment 的方法,类似上面使用 .yaml 文件,是使用 kubectl 命令行接口(CLI)中的 kubectl create 命令,通报 .yaml 作为参数。下面是一个示例:
$ kubectl create -f docs/user-guide/nginx-deployment.yaml --record Copy输出类似如下这样:
deployment "nginx-deployment" created Copy 必须字段在想要创建的 Kubernetes 东西对应的 .yaml 文件中,需要配置如下的字段:
apiVersion - 创建该东西所使用的 Kubernetes API 的版本
kind - 想要创建的东西的类型
metadata - 辅佐识别东西独一性的数据,包孕一个 name 字符串、UID 和可选的 namespace
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31726.html