天天看点

Kubernetes编写yaml文件示例

创建nginx-deployment.yaml,意思为创建2个pod,每个pod里的nginx版本为1.7.9,容器监听端口(containerPort)是 80

一个 YAML 文件,对应到 Kubernetes 中,就是一个 API Object(API 对象)。当为这个对象的各个字段填好值并提交给 Kubernetes 之后,Kubernetes 就会负责创建出这些对象所定义的容器或者其他类型的 API 资源。

Pod 就是 Kubernetes 世界里的“应用”;而一个应用,可以由多个容器组成。

Deployment,是一个定义多副本应用(即多个副本 Pod)的对象,还负责在 Pod 定义发生变化时,对每个副本进行滚动更新。

Deployment 扮演的是 Pod 的控制器的角色。

Labels 是一组 key-value 格式的标签。可以通过这个 Labels 字段从 Kubernetes 中过滤出它所关心的被控制对象。

使用命令创建,推荐使用apply

检查

查看一个API对象的细节

在 Kubernetes 执行的过程中,对 API 对象的所有重要操作,都会被记录在这个对象的 Events 里,并且显示在 kubectl describe 指令返回的结果中。

如果要变nginx版本,比如要对这个 Nginx 服务进行升级,把它的镜像版本从 1.7.9 升级为 1.8

修改yaml文件

使用命令生效,推荐使用apply

接下来,在这个 Deployment 中尝试声明一个 Volume。

将nginx-deployment.yaml文件修改如下:

emptyDir:不显式声明宿主机目录的 Volume。Kubernetes 会在宿主机上创建一个临时目录,这个目录将来就会被绑定挂载到容器所声明的 Volume 目录上。

Pod 中的容器,使用的是 volumeMounts 字段来声明自己要挂载哪个 Volume,并通过 mountPath 字段来定义容器内的 Volume 目录,比如:/usr/share/nginx/html。

显式声明 Volume

执行命令更新pod

使用 kubectl describe 查看一下最新的 Pod,会发现 Volume 的信息已经出现在了 Container 描述部分

可以使用 kubectl exec 指令,进入到这个 Pod 当中(即容器的 Namespace 中)查看这个 Volume 目录:

删除Nginx Deployment,运行以下命令:

每个人都有潜在的能量,只是很容易被习惯所掩盖,被时间所迷离,被惰性所消磨~

上一篇: C#文件操作

继续阅读