yaml文件详解

Posted Zmac111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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文件详解的主要内容,如果未能解决你的问题,请参考以下文章

yaml文件详解

K8S------YAML文件详解及示例

K8S------YAML文件详解及示例

K8S------YAML文件详解及示例

K8S------YAML文件详解及示例

yaml文件详解