K8s中正确YAML文件格式介绍!!
k8syaml
·
1. Pod的书写
apiVersion: v1 #必选,API 的版本号 kind: Pod #必选,资源类型Pod metadata: #必选,元数据信息 name: nginx #必选,符合RFC 1035规范的Pod名称 namespace: tjdz #默认是default,pod所在的命名空间 labels: #标签选择器,一般用于Selector - app: nginx annontations: #注释列表 - app: nginx spec: #必选,用于定义容器的详细信息 container: #必选,容器列表 - name: nginx #必选,容器名称 image: nginx:v1 #必选,容器所使用的镜像地址 imagePullPolicy: Always #镜像的拉去策略 command: #容器启动时执行的命令 - nginx - g - "daemon off;" ports: - containerPort: 80 #端口号 - protocol: TCP #端口号协议
2.deploy的书写
#指定api版本标签 apiVersion: apps/v1 #定义资源的类型/角色,deployment为副本控制器 #此处资源类型可以是Deployment、Job、Ingress、Service等 kind: Deployment #定义资源的元数据信息,比如资源的名称、namespace、标签等信息 metadata: #定义资源的名称,在同一个namespace空间中必须是唯一的 name: nginx-test lables: app: nginx #定义deployment资源需要的参数属性,诸如是否在容器失败时重新启动容器的属性 spec: #定义副本数量 replicas: 3 #定义标签选择器 selector: #定义匹配标签 matchLabels: #需与后面的.spec.template.metadata.labels定义的标签保持一致 app: nginx #定义业务模板,如果有多个副本,所有副本的属性会按照模板的相关配置进行匹配 template: metadata: #定义Pod副本将使用的标签,需与前面的.spec.selector.matchLabels定义的标签保持一致 labels: app: nginx spec: #定义容器属性 containers: #定义一个容器名,一个-name:定义一个容器 - name: nginx #定义容器使用的镜像以及版本 image: nginx:1.15.4 ports: #定义容器对外的端口 - containerPort: 80
3. SVC
apiVersion: v1
kind: Service
metadata:
name: nginx-svc
labels:
app: nginx
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
selector:
#此处定义的selector要与deployment所定义的selector相同
#service依靠标签选择器来检索提供服务的nodes
app: nginx
更多推荐
已为社区贡献1条内容
所有评论(0)