美文网首页Kubernetes
Kubernetes资源对象描述文件定义

Kubernetes资源对象描述文件定义

作者: 王勇1024 | 来源:发表于2020-09-24 09:26 被阅读0次

Kubernetes资源可分为内置资源(Kubernetes Resources)和自定义资源(Custom Resources),它们都通过资源对象描述文件(Manifest File)进行定义,资源对象描述文件下图所示。

资源对象描述文件

一个资源对象需要用5个字段来描述它,分别是Group/Version、Kind、MetaData、Spec、Status。这些字段定义在YAML或JSON文件中。Kubernetes系统中的所有的资源对象都可以采用YAML或JSON格式的描述文件来定义,下面是某个Pod文件的资源对象描述文件。YAML Manifest FileExample代码示例如下:

apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
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

资源对象描述文件说明如下。

  • apiVersion:指定创建资源对象的资源组和资源版本,其表现形式为<group>/<version>,若是core资源组(即核心资源组)下的资源对象,其表现形式为<version>。
  • kind:指定创建资源对象的种类。
  • metadata:描述创建资源对象的元数据信息,例如名称、命名空间等。
  • spec:包含有关Deployment资源对象的核心信息,告诉Kubernetes期望的资源状态、副本数量、环境变量、卷等信息。
  • status:包含有关正在运行的Deployment资源对象的信息。

每一个Kubernetes资源对象都包含两个嵌套字段,即spec字段和status字段。其中spec字段是必需的,它描述了资源对象的“期望状态”(Desired State),而status字段用于描述资源对象的“实际状态”(Actual State),它是由Kubernetes系统提供和更新的。在任何时刻,Kubernetes控制器一直努力地管理着对象的实际状态以与期望状态相匹配。

相关文章

网友评论

    本文标题:Kubernetes资源对象描述文件定义

    本文链接:https://www.haomeiwen.com/subject/mzloyktx.html