YAML 创建 Pod
上一篇我们已经对YAML
两种经常用的语法 Maps
和 Lists
有了基本了解,下面我们可以使用 YAML
来创建 Pod
YAML 定义 Pod 文件
1 |
|
apiVersion
: 版本号,需要根据我们安装的kubernetes 版本和资源类型进行更改kind
: 创建的资源类型, 这里我们创建的是一个 Pod, 也可以是其他,Deployment
,job
,ingress
,Service
。metadata
: 包含我们定义的Pod的一些 meta 信息, 包含名称, namespaces, 标签等信息spec
: 一些 containers, storage, volumes, 或者一些其他 kubernetes 需要知道的参数,以及是否在容器失败时重启容器的属性
容器的定义
1 | …spec: |
上面是一个典型的容器定义,一个名字
fronted-end
, 基于nginx
镜像, 以及容器监听的端口
, 在这些参数中,只有名字是非常需要的,还可以指定一些更为复杂的属性,下面是一些可选的设置属性
- name
- image
- command
- args
- workingDir
- ports
- env
- resources
- volumeMounts
- livenessProbe
- readinessProbe
- livecycle
- terminationMessagePath
- imagePullPolicy
- securityContext
- stdin
- stdinOnce
- tty
kubectl 创建 Pod
上面用于创建Pod的yaml 文件已经创建好,文件保存为 pod.yaml
我们可以用 kubectl
创建 Pod
1 | kubectl create -f pod.yaml |
管理 Pod
Pod 现在已经创建成功,现在我们可以来查看 Pod 的状态
1 | kubectl get pods |
查看pod 创建详情
在我们创建pod的时候有可能状态一直不是 Running
的状态,这是我们就需要查看创建 Pod 的详细记录,然后排查错误
1 | kubectl describe pod kube100-site |
删除 Pod
可以看到Pod 已经 running 起来了,我们可以使用 kubectl 删除上面的 Pod
1 | kubectl delete -f pod.yaml |
创建 Deployment
上面的 YAML
文件只是一个单纯的 Pod 实例,但是如果这个 Pod 出现故障的话,意味着服务也就挂掉了,在 kubenetes 中提供了 Deployment
资源类型,可以让 kubenetes 管理一组 Pod
副本,也就是所谓的副本集,可以保证一定数量的副本一直可用,不会因为一个 Pod 挂掉而导致整个服务挂掉。
1 |
|
kind
: 指定的是 Deployment 资源类型spec
: 指定了我们需要两个副本
完整的 YAML
格式文件如下
1 |
|
注意其中的
template
其实就是对 Pod 对象的定义, 将上面的 YAML 文件保存为 deployment.yaml, 然后创建 Pod
1 | kubectl create -f deployment.yaml |
查看状态, 检查 Deployment 的列表
1 | kubectl get deployments |
评论