05-kubernetes资源清单定义入门

名词解释

资源: k8s将操作对象当做资源来处理.

对象: 资源示例化后称为对象.

k8s中的核心资源: service , pod, deploy

  1. workload: Pod, ReplicaSet, Deployment, StatefulSet, DaemonSet Job, Cronjob

  2. 服务发现及均衡: Service, Ingres

  3. 配置与存储: Volume, CSI(容器存储接口), 云存储(亚马逊, 阿里云), 本地存储(nfs, glusterfs, ceph)

    • ConfigMap, Secret(存储敏感数据)
    • DownworkAPI

    集群级资源

    • Namespace, Node, Role, ClusterRole, RoleBingding, ClusterRoleBingding

    元数据型资源

    • HPA, PodTemplate, LimitRange
  4. 创建资源的方法:

    apiserver仅接受JSON格式的资源定义
    yaml格式提供配置清单,apiserver可自动将其转为json,而后再提交.

    大部分资源的配置清单:
    大部分由5个字段定义:
    * apiVersion: group/version
    * kind: 资源类别
    * metadata: 元数据
    name:
    namespace:
    labels: 键值数据
    ownerReferences:

         每个资源的引用方式:
             /apl/group/version/namespace/NAMESPACE/TYPE/NAME
     * spec:
         期望的状态, disired state
     
     * status:
         当前状态, current state, 本字段由kubernetes集群维护。
    

配置清单创建

  1. 示例1, 获取pod的简单信息kubectl get pod myapp-***

  2. 示例2, 将信息输出为yaml格式kubectl get pod myapp-*** -o yaml

此处需要补充,查看yaml数据的具体信息。

* apiVersion: 属于哪一个api版本

* kind:资源类别

* metadata: 元数据

* spec: 规格,用户定义

* status: 显示资源的当前状态
  1. 示例3, 查看k8s内建的格式说明: kubectl explain pods

  2. 示例4,查看五个期待值的格式信息,如spec: kubectl explain pods.spec.contains

demo 1

  1. 编辑pod-demo.yaml文件,vim pod-demo.yaml
apiVersion: v1
kind: Pod
metadata:
    name: pod-demo
    namespace: default
    labels:
        app: myapp
        tier: frontend
spec:
    containers:
    -   name: myapp
        image: ikubernetes/myapp:v1
        ports:
        -   name: http
            containerPort: 80
            name: https
            containerPort: 443
    -   name: busybox
        image: busybox:latest
        imagePullPolicy: IfNotPresent
        command:
        - "/bin/sh"
        - ".c"
        - "sleep 3600"
  1. 创建yaml对象kubectl create -f pod-demo.yaml

  2. 查看已经创建的yaml对象kubectl get pods

  3. 获取pod的详细信息kubectl describe pods pod-demo

  4. 获取pod的日志信息kubectl logs pod-demo myapp

  5. 删除定义的yaml文件,相当于删除pod kubectl delete -f pod-demo.yaml

与控制器创建的pod, 删除pod后会被控制器自动创建。但是文件定义的会自动删除,不被创建。

总结

自主式Pod资源

资源的清单格式:

* 一级字段: apiVersion(group/version), kind, metadata(name, namespace, labels, annotations), spec, status(只读)

Pod资源:
spec.containers <[]object>
image
imagePullPolicy
Always, Never, IfNotPresent

发布了21 篇原创文章 · 获赞 0 · 访问量 2611

猜你喜欢

转载自blog.csdn.net/u012720518/article/details/105449098
今日推荐