在 K8S 中,创建资源有两种方式:

方式一:使用kubectl 命令行,在输入kubectl命令的时候,填上对应的参数

优点:方便快捷,一行命令搞定

缺点:一行命令太多参数,可读性差,不利于维护

方式二:配置yaml 配置文件的方式

优点:数据有结构性,可读性高,维护方便

缺点:没有命令行一行输入那么方便(个人觉得这个缺点可以忽略)

因此,在实际操作中,推荐配置yaml的方式来部署。

在上一篇中,介绍了Pod的基本概念,同时,也通过配置yaml的方式部署了一个包含Nginx的pod。

今天就来聊聊,k8s的yaml文件都有哪些配置项。

关于yaml文件的语法,之前的docker文章里面有介绍,不熟悉的小伙伴可以去看看,直接点击文字链接即可!!!

这篇咱们主要对k8s创建pod时候yaml中的配置项以及操作pod的常用命令进行说明。

k8s的yaml配置分为四个部分:

apiVersionkindmetadataspec

说明:

apiVersion:表示指定api版本,目前大部分都是写v1,此值不是写死的,此值可以在本机上执行kubectl api-versions命令查看。

kind:表示该yaml定义的资源类型,k8s中资源有很多种,包括Pod,Deployment,Job,Services等等。

metadata:表示创建的资源的一些元数据,这是个对象类型,里面包含名称、namespace、标签等信息。

spec:这也是对象类型,内容包括一些container,storage,volume等

这四个部分是k8s的yaml必须存在的配置项,如果没有,k8s是不允许执行的。

接下来,我们看下昨日的nginx用到的配置项,已经在每个选项上加上了说明,如下:

#api的版本为v1

apiVersion: v1

#当前创建的资源类型为pod

kind: Pod

#此处表示Pod的一些基本属性

metadata:

#pod的名字叫nginx

name: nginx

#pod的标签

labels:

app: nginx

spec:

#定义容器的属性

containers:

#容器的名字

- name: nginx

#容器的镜像

image: nginx:alpine

#指定容器需要用到的端口列表

ports:

#指定容器需要监听的端口

- containerPort: 80

这里只介绍了常用的配置项,至于其他配置项,会在后面需要的时候陆续一一解析。(也是希望降低初学者的入门难度)

下面,再来看看,通过yaml文件对pod进行增删改查的常见命令:

# 创建pod资源

kubectl create -f pod.yaml

# 删除资源,pod-test代表pod名称

kubectl delete pod pod-test

# 替换资源,-f代表强制替换,删除原有资源,然后重新创建资源

kubectl replace -f pod.yaml -force

# 查看pod名称为pod-test的信息

kubectl get pods pod-test

# 查看pod名称为pod-test的详细信息

kubectl describe pod pod-test

今天有点偷懒了,先介绍这么多,咱们明天接着说!!