网站优化体验报告,网站流量排名查询工具,广州网络推广公司招聘,简述建设网站的一般过程目录
一、 yaml和json介绍
1、yuml语言介绍
2、k8s支持的文件格式
3、yaml和json的主要区别
二、声明式对象管理
1、命令式对象配置
2、声明式对象配置
3、声明式对象管理命令介绍 三、编写资源配置清单
1、 编写yaml文件
2、 启动并查看资源
3、创建service服务对外…
目录
一、 yaml和json介绍
1、yuml语言介绍
2、k8s支持的文件格式
3、yaml和json的主要区别
二、声明式对象管理
1、命令式对象配置
2、声明式对象配置
3、声明式对象管理命令介绍 三、编写资源配置清单
1、 编写yaml文件
2、 启动并查看资源
3、创建service服务对外提供访问测试
4、创建并访问
四、试运行与格式
1、-dry-run试运行
2、查看生成yaml格式
3、查看生成的json格式
4、使用yaml格式导出生成的模板
5、使用yaml模板创建实例
6、将现有资源生成yaml模板导出并保存为文件
7、查看字段帮助信息
五、 资源控制总结 一、 yaml和json介绍
1、yuml语言介绍
YAML是一个类似XML、JSON的标记性语言它强调以数据为中心并不是以标识语言为重点而YAML本身的定义比较简单。号称“一种人性化的数据格式语言”。
YAML的语法比较简单主要有下面几个
大小写敏感 使用缩进标识层级关系 缩进不允许使用tab只允许空格低版本限制 缩进的空格数不重要只要相同层级的元素左对齐即可 “ # ”表示注释
YAML支持一下几种数据类型
纯量 单个的不可再分的值对象 键值对的集合又称为映射mapping/哈希bash/字典dictionary数组 一组按次序排列的值又称为序列sequence/ 列表list
#纯量: 就是指的一个简单的值(字符串、布尔值、证书、浮点数、Null、时间、日期)
1、布尔类型
y1:true(false)2、整型
y2:1233、浮点型
y3:3.144、null类型
y4:~ (使用~或不写可以表示为null)5、日期类型
y5: 2018-02-17 # 日期必须使用ISO 8601格式即yyyy-MM-dd6、时间类型
c6: 2018-02-17T15:02:3108:00 # 时间使用ISO 8601格式时间和日期之间使用T连接最后使用代表时区7、字符串类型
c7: heima # 简单写法直接写值 , 如果字符串中间有特殊字符必须使用双引号或者单引号包裹
c8: line1line2 # 字符串过多的情况可以拆成多行每一行会被转化成一个空格
#对象
//形式一
yudeqiang:age: 25address: nanjing//形式二(了解)
yudeqiang: {age: 15,address: nanjing}#数组
//形式一
address:- nanjing- beijing//形式二(了解)
address: [nanjing,beijing]注意点
书写yaml切记 【 : 】和【-】后面要加空格如果要将多段yaml配置放在一个文件中中间要使用—分隔yaml转json格式网站[https://www.json2yaml.com/convert-yaml-to-json]( 2、k8s支持的文件格式
kubernetes支持YAML和JSON文件格式管理资源对象。
JSON格式只要勇于api接口之间消息的传输。YAML格式勇于配置和管理TAML是一中简介的非标记性语言内容格式人性化较易读。 3、yaml和json的主要区别
YAML使用空格缩进这是Python开发人员熟悉的领域。
javaScript开发人员喜欢JSON因为它是Java Script的一个子集可以直接在JavaScript中解释和编写同时使用简写方式申明JSON在使用没有空格的典型变量名时不需要键中的双引号。
有很多解释器在YAML和JSON的左右语言中都能很好的工作。
在需要请款下YAML的空白格式可以更扩容器查看因为将诶格式化需要更人性化的方法。
如果您的编辑器中没有空格可见或缩进线指示符那么 YAML 的空白虽然更紧凑更容易查看但可能难以手动编辑。
JSON 的序列化和反序列化要快得多因为要检查的功能明显少于 YAML这使得更小更轻的代码能够处理 JSON。
一个常见的误解是 YAML 需要较少的标点符号并且比 JSON更紧凑但这完全是错误的。空格是不可见的所以看起来字符较少但是如果你计算实际的空格是必要的以便正确解释 YAML以及正确的缩进你会发现 YAML 实际上需要比 JSON 更多的字符。JSON不使用空格来表示层次结构或分组并且可以通过删除不必要的空格来轻松展平以实现更紧凑的传输。 二、声明式对象管理
1、命令式对象配置
命令式对象配置就是使用命令配合配置文件一起来操作kubernetes资源
①创建一个nginxpod.yaml文件。
apiVersion: v1
kind: Namespace
metadata:name: dev---apiVersion: v1
kind: Pod
metadata:name: nginxpodnamespace: dev
spec:containers:- name: nginx-containersimage: nginx:latest②创建资源、查看、删除等操作
kubectl create -f nginxpod.yaml
#基于yaml创建一个资源kubectl get -f nginxpod.yaml
#基于yaml文件查看kubectl delete -f nginxpod.yaml
#基于yaml文件删除资源#总结 命令式对象配置的方式操作资源可以简单认为:命令 yaml配置文件(里面是命令需要的各种参数) 2、声明式对象配置
声明式对象配置跟命令式对象配置很相似但是它只有一个命令apply。
//还是基于前面的nginxpod.yaml文件演示kubectl apply -f nginxpod.yaml
#创建资源kubectl apply -f nginxpod.yaml
#再执行一次操作看返回什么信息####此时修改nginxpod.yaml文件的nginx的版本号然后再执行kubectl apply -f nginxpod.yaml
#再次查看返回结果kubectl describe pods pod -n dev
#查看详细过程node01节点查看 #总结 //其实申明对象配置就是使用apply描述一个资源最终的状态(在yaml中定义) 使用apply操作资源 - 如果资源不存在就创建相当于kubectl create - 如果资源存在就更新相当于kubectl patch 3、声明式对象管理命令介绍
kubectl get deployment/nginx -o yaml
#查看pod控制器中的nginx格式(就是以yaml的格式显示出来)kubectl get svc nginx-service -o yaml
#查看service中的nginx格式kubectl explain deployment
#显示deployment的相关规格kubectl explain deployment.metadata
#解释显示deployment的更详细的元数据(metadata)参数信息三、编写资源配置清单
1、 编写yaml文件
vim nginx-deployment.yaml
apiVersion: apps/v1 #指定api版本标签
kind: Deployment #定义资源的类型/角色deployment为副本控制器此处资源类型可以是Deployment、Job、Ingress、Service等
metadata: #定义资源的元数据信息比如资源的名称、namespace、标签等信息name: nginx-deployment #定义资源的名称在同一个namespace空间中必须是唯一的labels: #定义Deployment资源标签app: nginx
spec: #定义deployment资源需要的参数属性诸如是否在容器失败时重新启动容器的属性replicas: 3 #定义副本数量selector: #定义标签选择器matchLabels: #定义匹配标签app: nginx #需与 .spec.template.metadata.labels 定义的标签保持一致template: #定义业务模板如果有多个副本所有副本的属性会按照模板的相关配置进行匹配metadata:labels: #定义Pod副本将使用的标签需与 .spec.selector.matchLabels 定义的标签保持一致app: nginxspec:containers: #定义容器属性- name: nginx #定义一个容器名一个 - name: 定义一个容器image: nginx:1.15.4 #定义容器使用的镜像以及版本ports:- containerPort: 80 #定义容器的对外的端口---------------------------------------------------------------
vim nginx-deployment.yamlapiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploymentlabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.15.4ports:- containerPort: 802、 启动并查看资源
kubectl apply -f nginx-deployment.yamlkubectl get deploymentkubectl get pods3、创建service服务对外提供访问测试
vim nginx-service.yamlapiVersion: v1
kind: Service
metadata:name: nginx-servicelabels:app: nginx
spec:type: NodePort ports:- port: 80targetPort: 80 selector:app: nginx4、创建并访问
kubectl create -f nginx-service.yamlkubectl get svc//网页访问
http:20.0.55:31603四、试运行与格式
1、-dry-run试运行
–dry-run 表示试运行不真正执行命名用来测试命令是否正确即并不会真的创建出pod和deployment实例去掉该参数后即可真正执行命令。
kubectl create deployment dryrun-test --imagenginx --port80 replicas3 --dry-run
#打印相应的API对象而不执行创建2、查看生成yaml格式
使用–dry-run试运行可不触发生成命令然后通过 -o yaml 可实现对其 yaml 资源配置清单的查看
kubectl run dryrun-test --imagenginx --port80 --dry-run -o yaml
#试运行一个pod并将它的yaml配置格式显示出来3、查看生成的json格式
可通过-o json 查看该命令产生的json配置清单
kubectl create deployment dryrun-test --imagenginx --port80 --replicas3 --dry-run -o json
#试运行一个pod控制器并显示的pod的配置信息4、使用yaml格式导出生成的模板
kubectl create deployment dryrun-test --imagenginx --port80 --replicas3 --dry-run -o yaml dryrun-test.yaml
#试运行pod控制器并以yaml格式显示出来将结构追加到指定的yaml文件中5、使用yaml模板创建实例
kubectl apply -f dryrun-test.yamlkubectl get pods,deployment6、将现有资源生成yaml模板导出并保存为文件
kubectl get deployment dryrun-test -o yaml export-test.yaml7、查看字段帮助信息
explain 可一层层的查看相关资源对象的帮助信息
kubectl explain deployments.spec.template.spec.containers五、 资源控制总结
三种方式应该怎么用
创建/更新资源使用声明式对象配置: kubectl apply -f xxxx.yaml 删除资源使用命令式配置: kubectl delete -f xxxx.yaml 查询资源使用命令式对象管理: kubectl get(describe) 资源名称命令空间
#kubectl可以在node节点上运行吗//kubectl的运行时需要配置的它的配置文件时$HOME/.kube如果想要在node节点运行次命令需要将master上的.kube目录复制到node节点上。