声明式的管理方法文件

1.声明式管理方法(yaml)文件

1.适合对资源的修改操作

2.声明式管理依赖于已有yaml文件,所有的内容都在yaml文件中声明

3.编辑好的yaml文件还是要依靠陈述式的命令发布到k8s集群当中

2.声明式的三种格式

1.deployment的yaml文件 demonset statefulset

2.service的yaml文件

3.不基于控制器的yaml文件

k8s当中支持两种声明式的资源管理方式:

1.yaml格式,用于配置和管理资源对象

2.json格式,主要用于在api接口之间消息的传递

1.deployment的yamal文件

vim nginx1.yaml

声明式的管理方法文件_第1张图片

apiVersion: apps/v1

#声明API版本的标签

kind: Deployment

#定义资源的类型 service/pod/deployment/Job.ingress/daemonset/statefulset

metadata:

name: nginx1

namespace: guoqi

labels:

wdf: nginx1

#定义资源的元数据信息,资源名称,资源对象部署的命名空间,标签等等信息

spec:

#定义deployment的资源需要的参数属性。

replicas: 3

#定义副本数

selector:

#定义标签选择器

matchLabels:

wdf: nginx1

#选择匹配的标签

template:

#定义业务的模版,如果定义了多个副本,所有的副本的属性都会按照模版的配置进行匹配

metadata:

labels:

wdf: nginx1

#定义了pod的副本都使用元数据标签和属性来进行匹配

spec:

containers:

- name: nginx

image: nginx:1.10

#posts:

#- containerPort:80

# spec:声明容器的相关参数,虽然我指定了容器的暴露端口是80,nginx默认的镜像就是80

# 即使指定了其他端口,也不会改变容器的端口。

2.service的文件

apiVersion: v1

kind: Service

metadata:

name: nginx-service

namespace: guoqi

labels:

wdf: nginx1

#元数据信息包括,service的名称,所属的命名空间,以及要匹配的deployment的标签,要和之前的保持一致

spec:

type: NodePort

ports:

- port: 80

targetPort: 80

selector:

wdf: nginx1

#匹配所有的标签都是wdf:nginx1的pod的后端提供服务

声明式的管理方法文件_第2张图片

3.创建一个pod

apiVersion: v1

#定义pod的api

kind: Pod

#定义资源类型

metadata:

name: centos1

namespace: guoqi

spec:

restartPolicy: Never

#restartPolicy指的是pod内的容器启动失败或者有问题的重启策略:Always Never Onfailure(只有异常退>出才会重启,状态非0,如果状态为0,不重启),restartPolicy指的是容器的重启策略,资源类型定义为deployment,这个容器策略只能是Always。

containers:

- name: centos

image: centos:7

#定义元数据信息,pod的全称,命名空间,标签

声明式的管理方法文件_第3张图片

3.command和args

定义容器运行的命令参数,类似于docker的CMD和entrypoint

args可以理解docker中的cmd 给command传参

声明式的管理方法文件_第4张图片

你可能感兴趣的:(kubernetes,容器,云原生)