«

K8S对象

一个摆子 发布于 阅读:54 K8S


K8S对象是系统中的持久性实体。使用这些实体表示集群状态。描述如下信息

操作K8S对象————无论是创建、修改或者删除都需要使用K8S API

对象规约(Spec)与状态(status)

每个K8S对象包含两个嵌套的对象字段,负责管理对象的配置:对象spec(规约)和对象status(状态),具有spec的对象,必须在创建对象时设置其内同,描述其期望状态。
status描述了对象的当前状态,由K8S系统和组件设置并更新。在任何时刻,K8S控制平面一直管理着对象的实际状态,以达成期望状态。

描述K8S对象

创建K8S对象时,必须提共对象的spec,用来描述对象的期望状态和一些基本信息。当使用K8S创建对象时(直接创建或经由kubectl创建),API 请求必须在请求主体中包含JSON格式的信息。通常使用清单(Manifest)文件为kubectl提共这些信息,清单文件为YAML格式(也可以使用JSON格式),kubect通过HTTP进行API请求时,会将清单中的信息转换为JSON或其他受支持的序列化格式。
清单示例:

apiVersion: apps/v1
kind: Deployment
metadata:
    name: nginx-deployment
spec:
    selector:
        matchLabels:
            app: nginx
    replicas: 2 #告知Deployment运行2个与该模板匹配的Pod
    template:
        metadata:
            labels:
                app: nginx
        spec:
            containers:
            - name: nginx
              images: nginx:1.14.2
              ports:
              - containerPort: 80

与使用清单文件创建deployment类似,另一种方式是使用kubectl命令行接口的kubectl apply命令,将.yaml文件作为参数,如:

kubectl apply -f https://k8s.io/examples/application/deployment.yaml

输出如下

deployment.apps/nginx-deployment created
必须字段

在创建K8S对象对应的清单(YAML或JSON文件)中,需配置如下字段:

服务器端字段验证

从K8S V1.25开始API服务器提供了服务器端字段验证,检测对象中未被识别或重复的字段,提供了kubectl --validate的所有功能

kubectl工具使用--validate标志来设置字段验证机别。默认验证设置为--validate=true

验证级别 描述
Strice 严格的字段验证,验证失败时会报错
Warn 执行字段验证,但错误会以警告形式提供而不是拒绝请求
Ignore 不执行服务器端字段验证

交流群:

请先 登录 再评论