ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

K8S-YAML

2026/8/13 14:49:37 拓冰建站 浏览量
K8S-YAML

一、Kubernetes对象的描述

kubernetes中资源可以使用YAML描述(如果您对YAML格式不了解,可以参考YAML语法),也可以使用JSON。其内容可以分为如下四个部分:

  • typeMeta:对象类型的元信息,声明对象使用哪个API版本,哪个类型的对象。
  • objectMeta:对象的元信息,包括对象名称、使用的标签等。
  • spec:对象的期望状态,例如对象使用什么镜像、有多少副本等。
  • status:对象的实际状态,只能在对象创建后看到,创建对象时无需指定。

1.1 TypeMeta

1.1 apiVersion:apps/v1

        指定正在使用的Kubernetes API的版本,常用:apps/v1

1.2 kind(k8s in docker)

1.2.1 分类

        pod:k8s最小调度单元,一个Pod可以包含多个容器。

        service:提供固定的ip访问pod内的容器,Pod更新后ip变动,不影响访问。

        depeloyment(无状态负载):副本控制器,控制Pod部署。

        configMap:配置中心。

        ingress: 暴漏公网访问资源。

        Stateful:有状态负载。

        Job:Job是用来控制批处理型任务的对象。

        CronJob: 定时任务。

二、k8s yaml示例

nginx-deployment.yaml的文件,如下所示: 

apiVersion: apps/v1
kind: Deployment
metadata:name:  nginxlabels:app:  nginx
spec:selector:matchLabels:app: nginxreplicas: 3template:metadata:labels:app:  nginxspec:containers:- name:  nginximage:  nginx:alpineresources:requests:cpu: 100mmemory: 200Milimits:cpu: 100mmemory: 200MiimagePullSecrets:- name: default-secret

使用kubectl连接集群后,执行如下命令:

# kubectl create -f nginx-deployment.yaml 
deployment.apps/nginx created

命令执行后,Kubernetes集群中会创建3个Pod,使用如下命令可以查询到Deployment和Pod:

# kubectl get deploy
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nginx   3/3     3            3           9s# kubectl get pods
NAME                     READY   STATUS    RESTARTS   AGE
nginx-685898579b-qrt4d   1/1     Running   0          15s
nginx-685898579b-t9zd2   1/1     Running   0          15s
nginx-685898579b-w59jn   1/1     Running   0          15s