在 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
今天有点偷懒了,先介绍这么多,咱们明天接着说!!