在 Kubernetes 中,使用 YAML 文件来定义应用程序、服务、存储资源和部署方式等等。YAML 是一种人类可读的数据序列化标准,支持各种语言,它可以被用来直接描述 Kubernetes 的 API 对象。本文将讲解如何使用 YAML 文件来部署应用程序,包括如何定义对象、如何使用标签选择器以及如何升级应用程序。
定义对象
Kubernetes 中的每一个对象都有一个 API 版本、一个类型和一个元数据。API 版本表示 Kubernetes API 中的哪一个版本定义了这个对象;类型则代表这个对象是 Kubernetes 中的哪一个 API 类型。而元数据则是对象中的一些元素,如名称、命名空间、标签和注释等等。例如,下面是一个简单的 Kubernetes 文件,定义了一个 Pod:
-- -------------------- ---- ------- ----------- -- ----- --- --------- ----- ----- ----- ----------- - ----- ----------- ------ ------------ ------ - -------------- --
该文件中定义了一个名为 "mypod" 的 Pod,其中包含一个名为 "mycontainer" 的容器,该容器使用的镜像为 "nginx:1.14.2",并监听容器内部的 80 端口。您可以使用 kubectl create 命令来创建这个 Pod:
kubectl create -f mypod.yaml
标签选择器
在部署应用程序时,您需要将一个或多个标签附加到对象中。这些标签可以用于选择一组特定的对象,例如在服务发现、负载平衡和监视等方面。您可以在文件中为对象定义一个或多个标签,例如:
metadata: name: mypod labels: app: myapp tier: frontend
这个 Pod 对象定义了两个标签:app 和 tier,他们的值分别为 "myapp" 和 "frontend"。要选择带有这些标签的对象,可以使用 kubectl 命令和标签选择器:
# 选择带有标签 app=myapp 的所有对象 kubectl get all -l app=myapp # 选择带有标签 app=myapp 且 tier=frontend 的所有 Pod 对象 kubectl get pod -l app=myapp,tier=frontend
应用程序升级
当您需要升级已部署的应用程序时,您可以使用 kubectl apply 命令来更新原始文件。在文件中更新所需的对象,并再次使用 apply 命令来更正它们。Kubernetes 将自动检测更改,并直接在集群中更新部署。
例如,您可以更新 mypod.yaml 中的文件,将容器中使用的镜像版本更新到 "nginx:1.16.1":
-- -------------------- ---- ------- ----------- -- ----- --- --------- ----- ----- ----- ----------- - ----- ----------- ------ ------------ ------ - -------------- --
然后使用 kubectl apply 命令来更新应用程序:
kubectl apply -f mypod.yaml
Kubernetes 将自动检测到更改,并更新 Pod 的容器使用的镜像版本。
结论
YAML 文件是部署 Kubernetes 应用程序的重要工具。在本文中,我们介绍了如何使用标签选择器、定义对象以及升级您的应用程序。希望这篇文章能帮助您更好地了解使用 YAML 文件在 Kubernetes 中部署应用程序的过程。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66f60ae7c5c563ced57eebb6