yaml文件详解
Posted Zmac111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yaml文件详解相关的知识,希望对你有一定的参考价值。
yaml文件详解
一、概述
Kubernetes 支持YAML和 JSON 格式管理资源对象
JSON 格式:主要用于api接口之间消息的传递
YAML格式:用于配置和管理,YAML是一种简洁的非标记性语言,内容格式人性化,容易读
YAML语法格式:
(1)大小写敏感
(2)使用缩进表示层级关系
(3)不支持Tab键制表符缩进,只使用空格缩进
(4)缩进的空格数目不重要,只要相同层级的元素左侧对齐即可,通常开头缩进两个空格
(5)字符后缩进一个空格,如冒号,逗号,短横杆(-)等
(6)"—“表示YAML格式,一个文件的开始,用于分隔文件间
(7)”#”表示注释
查看api资源版本标签
kubectl api-versions
二、详解k8s中的port
port
port是 k8s集群内部访问service的端口,即通过 clusterTP: port 可以从 Pod所在的 Node 上访问到 service。
nodePort
nodePort 是外部访问 k8s集群中 service 的端口,通过 nodeIP: nodePort 可以从外部访问到某个service。
targetPort
targetPort 是 Pod 的端口,从 port 或 nodePort 来的流量经过kube-proxy 反向代理负载均衡转发到后端Pod的targetPort上,最后进入容器。
containerPort
containerPort是 Pod 内部容器的端口,targetPort映射到 containerPort。
三、实操
1.创建一个yaml文件
mkdir demo
cd demo
vim nginx-deployment.yaml
2.创建资源对象
kubectl create -f nginx-deployment.yaml
kubectl get pod
3.创建service服务对外提供访问并测试
vim nginx-service.yaml
kubectl create -f nginx-service.yaml
kubectl get svc
4.验证
浏览器输入http://192.168.19.99:32511
5.自动测试命令的正确性,并不执行创建
kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run
6.查看生成yaml格式
kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o yaml
7.查看生成json格式
kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o json
8.导出生成模板
kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o yaml > my-deployment.yaml
四、简单命令
#将现有的资源生成模板导出
kubectl get deployment/nginx-deployment --export -o yaml
#保存到文件中
kubectl get deploy/nginx-deployment --export -o yaml > my-deploy. yaml
#查看字段帮助信息,可一层层的查看相关资源对象的帮助信息
kubectl explain deployments.spec.template.spec.containers
或
kubectl explain pods.spec.containers
总结
写yaml太累怎么办
(1)用run命令生成
kubectl run my-deploy --image-nginx --dry-run -o yaml > my-deploy.yaml
(2)用get命令导出
kubectl get deploy/nginx-deployment --export -o=yaml > new.yaml
yaml文件的学习方法:
(1)多看别人(官方)写的,能读懂
(2)能照着现场的文件改着用
(3)遇到不懂的,善用kubectl explain ….命令查
以上是关于yaml文件详解的主要内容,如果未能解决你的问题,请参考以下文章