了解kubernates对象(第三集)

Posted 技术能量站

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了了解kubernates对象(第三集)相关的知识,希望对你有一定的参考价值。

1.1 kubernates 对象是什么

Kubernetes 对象是 Kubernetes 系统中的持久实体。Kubernetes 使用这些实体来表示集群的状态。具体来说,他们可以描述:

  • 正在运行哪些容器化应用程序(以及在哪些节点上)
  • 这些应用程序可用的资源
  • 有关这些应用程序行为方式的策略,例如重启策略、升级和容错

Kubernetes 对象是“意图记录”——一旦创建对象,Kubernetes 系统将不断工作以确保对象存在。通过创建一个对象,您可以有效地告诉 Kubernetes 系统您希望集群的工作负载是什么样的;这是您的集群所需的状态。

要使用 Kubernetes 对象——无论是创建、修改还是删除它们——你需要使用Kubernetes API。例如,当您使用kubectl命令行界面时,CLI 会为您进行必要的 Kubernetes API 调用。您还可以使用客户端库之一直接在您自己的程序中使用 Kubernetes API 。

1.2 对象规格和状态

几乎每个 Kubernetes 对象都包含两个管理对象配置的嵌套对象字段: objectspec和 object status。对于具有 的对象spec,您必须在创建对象时设置它,提供您希望资源具有的特征的描述:它的期望状态。

  • status描述对象的当前状态,由 Kubernetes 系统及其组件提供和更新。Kubernetes 控制平面持续主动地管理每个对象的实际状态以匹配您提供的所需状态。

例如:在 Kubernetes 中,Deployment 是一个对象,可以代表在您的集群上运行的应用程序。创建部署时,您可以设置部署spec以指定要运行应用程序的三个副本。Kubernetes 系统读取部署规范并启动所需应用程序的三个实例——更新状态以匹配您的规范。如果这些实例中的任何一个失败(状态更改),Kubernetes 系统会通过进行更正来响应规范和状态之间的差异——在这种情况下,启动一个替换实例。

有关对象规范、状态和元数据的更多信息,请参阅Kubernetes API 约定

1.3 描述 kubernates 对象

在 Kubernetes 中创建对象时,必须提供描述其所需状态的对象规范,以及有关对象的一些基本信息(例如名称)。当您使用 Kubernetes API 创建对象(直接或通过kubectl)时,该 API 请求必须将该信息作为 JSON 包含在请求正文中。大多数情况下,您kubectl在 .yaml 文件中提供信息。 kubectl在发出 API 请求时将信息转换为 JSON。

这是一个示例.yaml文件,它显示了 Kubernetes 部署的必需字段和对象规范:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2 # tells deployment to run 2 pods matching the template
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

.yaml使用上述文件 创建部署的一种方法是kubectl apply在kubectl命令行界面中使用命令,将.yaml文件作为参数传递。这是一个例子:
kubectl apply -f https://k8s.io/examples/application/deployment.yaml
输出类似于:
deployment.apps/nginx-deployment created

1.4 必填字段

在.yaml您要创建的 Kubernetes 对象的文件中,您需要为以下字段设置值:

  • apiVersion- 您使用哪个版本的 Kubernetes API 创建此对象
  • kind- 你想创建什么样的对象
  • metadata- 有助于唯一识别对象的数据,包括name字符串UID、 和可选namespace
  • spec- 您希望对象处于什么状态

spec每个 Kubernetes 对象的对象的精确格式都不同,并且包含特定于该对象的嵌套字段。Kubernetes API 参考可以帮助您找到可以使用 Kubernetes 创建的所有对象的规范格式。

例如,请参阅Pod API 参考spec字段 。对于每个 Pod,该.spec字段指定 pod 及其所需状态(例如该 pod 中每个容器的容器映像名称)。对象规范的另一个示例是 StatefulSet API 的 spec字段 。对于 StatefulSet,该.spec字段指定 StatefulSet 及其所需状态。StatefulSet内部.spec是 Pod 对象的模板 。该模板描述了 StatefulSet 控制器将创建的 Pod 以满足 StatefulSet 规范。不同种类的对象也可以有不同的.status;同样,API 参考页面详细介绍了该.status字段的结构,以及每种不同类型对象的内容。

以上是关于了解kubernates对象(第三集)的主要内容,如果未能解决你的问题,请参考以下文章

第三集 我说,那是我哥_模糊二分搜索

前端开发入门到进阶第三集定时器

今天发布视频博主同事制作北极视频第三集-极光

我厌倦了 Redux,那就造个轮子 Rectx:第三集

苏东坡 第三集:大江东去

《互联网时代》第三集·能量