五个一级字段:
apiVersion:形式:组名/version。对接口分组进行管理。查看:kubectl api-versions。v1是核心群组。内测,公测,V1版
kind:
metadata:元数据
name:
namespace:k8s中的概念。跟docker虚拟化的namespace不同
labels
annotations
每个资源的引用的PATH:/api/GROUP_NAME/VERSION/namespaces/NAMESPACE/TYPE/NAME
spec:规划,规格,期望的状态,desired state
status:当前的状态,向期望状态靠近。current state,由kubernetes生成,用户不能定义
创建资源的方法:
apiserver仅接受json格式的资源定义,
yaml格式提供配置清单,apiserver可自动将其转换为json格式,而后再提交。
查询帮助:kubectl explain pod.metadata pod.spec
资源清单配置:
Pod资源:
metadata:
name:
namespace:
labels:
spec: kubectl explain pods.spec.containers
containers:
- name <string> -required-
image <string>
imagePullPolicy <string>: Always, Never, IfNotPresent, Cannot be updated
command <[]string> : 优先级高于Dockerfile中ENTRYPOINT和CMD
args <[]string>: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
ports: 用作提供信息或者变量引用,不对暴露端口起作用,
- name: http
containerPort <integer> -required-