什么是Kubernetes manifest?
Kubernetes manifest 是用来描述如何在 Kubernetes 集群中创建和管理资源的配置文件,通常以 YAML 或 JSON 格式编写。它定义了你希望在集群中运行的各种资源(如 Pod、Deployment、Service 等)以及这些资源的期望状态和配置细节[1][2]。
一个典型的 Kubernetes manifest 文件包含四个主要字段:
- apiVersion:指定资源所属的 API 组和版本,例如
apps/v1
,用于告诉 Kubernetes 使用哪个版本的 API 来创建资源。 - kind:资源类型,比如 Deployment、Pod、Service 等。
- metadata:资源的元数据,用于唯一标识资源,包括名称、标签、注解和命名空间等信息。
- spec:资源的具体规格和配置,定义资源的行为和属性,比如容器镜像、副本数量、选择器、探针等[1][2]。
通过创建 Kubernetes manifest,用户实际上是在向 Kubernetes 系统表达“期望状态”(Desired State),Kubernetes 会不断工作以确保集群中的实际状态与 manifest 中定义的期望状态保持一致[3]。
在实际部署中,manifest 文件可以直接用 kubectl apply -f
命令应用到集群,也可以作为持续集成/持续部署(CI/CD)流程中的重要配置文件使用[4][6]。
总结来说,Kubernetes manifest 是 Kubernetes 资源的声明式配置文件,是管理和自动化 Kubernetes 集群资源的核心手段[1][3]。
[1] https://xie.infoq.cn/article/fac19006aea00629655106b26
[2] https://vflong.github.io/sre/k8s/2020/03/15/the-beginners-guide-to-creating-kubernetes-manifests.html
[3] https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/
[4] https://coding.net/help/docs/cd/pipe/stages/deploy.html
[5] https://www.redhat.com/zh/topics/containers/what-is-kubernetes
[6] https://support.huaweicloud.com/intl/zh-cn/usermanual-deployman/deployman_hlp_1096.html
[7] https://blog.csdn.net/fy_long/article/details/88569334
[8] https://www.cnblogs.com/humlogs/p/18206952
[9] https://learn.microsoft.com/zh-cn/azure/devops/pipelines/tasks/reference/kubernetes-manifest-v1?view=azure-pipelines