必需字段
在想要创建的 Kubernetes 对象所对应的 .yaml 文件中,需要配置的字段如下:
-
apiVersion- 创建该对象所使用的 Kubernetes API 的版本 -
kind- 想要创建的对象的类别 -
metadata- 帮助唯一标识对象的一些数据,包括一个name字符串、UID和可选的namespace -
spec- 你所期望的该对象的状态(规约)
这里有一个 .yaml 示例文件,展示了 Kubernetes Deployment 的必需字段和对象 spec:
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2 # 告知 Deployment 运行 2 个与该模板匹配的 Pod
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
相较于上面使用 .yaml 文件来创建 Deployment,另一种类似的方式是使用 kubectl 命令行接口(CLI)中的 kubectl apply 命令, 将 .yaml 文件作为参数。下面是一个示例:
kubectl apply -f https://k8s.io/examples/application/deployment.yaml
输出类似下面这样:
deployment.apps/nginx-deployment created
必需字段
在想要创建的 Kubernetes 对象所对应的 .yaml 文件中,需要配置的字段如下:
-
apiVersion- 创建该对象所使用的 Kubernetes API 的版本 -
kind- 想要创建的对象的类别 -
metadata- 帮助唯一标识对象的一些数据,包括一个name字符串、UID和可选的namespace -
spec- 你所期望的该对象的状态
对每个 Kubernetes 对象而言,其 spec 之精确格式都是不同的,包含了特定于该对象的嵌套字段。 我们能在 Kubernetes API 参考 找到我们想要在 Kubernetes 上创建的任何对象的规约格式。
例如,参阅 Pod API 参考文档中 spec 字段。 对于每个 Pod,其 .spec 字段设置了 Pod 及其期望状态(例如 Pod 中每个容器的容器镜像名称)。 另一个对象规约的例子是 StatefulSet API 中的 spec 字段。 对于 StatefulSet 而言,其 .spec 字段设置了 StatefulSet 及其期望状态。 在 StatefulSet 的 .spec 内,有一个为 Pod 对象提供的模板。 该模板描述了 StatefulSet 控制器为了满足 StatefulSet 规约而要创建的 Pod。 不同类型的对象可以由不同的 .status 信息。API 参考页面给出了 .status 字段的详细结构, 以及针对不同类型 API 对象的具体内容。