当前位置: 首页 > news >正文

8. yaml文件管理

文章目录

  • yaml文件管理
    • 编写yaml配置文件
    • 获取配置模板
      • 方法一
      • 方法二
      • 方法三
      • 方法四

yaml文件管理

  • Kubernetes 支持 YAML 和 JSON 格式管理资源对象

    • JSON 格式:主要用于 api 接口之间消息的传递
    • YAML 格式:用于配置和管理,YAML 是一种简洁的非标记性语言,内容格式人性化,较易读
  • YAML 语法格式:

    • 大小写敏感
    • 使用缩进表示层级关系
    • 不支持Tab键制表符缩进,只使用空格缩进
    • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可,通常开头缩进两个空格
    • 符号字符后缩进一个空格,如冒号,逗号,短横杆(-)等
    • “—”表示YAML格式,一个文件的开始,用于分隔文件间
    • “#”表示注释
###查看k8s支持的API版本
kubectl api-versions
###当前版本k8s使用的API版本
kubectl api-resources

编写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:           ##pod资源的元信息labels:           #定义Pod副本将使用的标签,需与 .spec.selector.matchLabels 定义的标签保持一致app: nginxspec:                       ##定义pod的属性containers:				#定义容器属性- name: nginx				#定义一个容器名,一个 - name: 定义一个容器image: nginx:1.15.4		#定义容器使用的镜像以及版本ports:- containerPort: 80		#定义容器的对外的端口
##创建yaml文件的目录
cd /opt/
mkdir demo/
vim demo01-deploy.yamlkubectl explain deployment         
##查看deployment的信息,要编写的yaml的文件的字段
apiVersion: apps/v1
kind: Deployment
metadata: name: myapp-deploymentnamespace: test01labels: app: myapp
spec: replicas: 2selector:matchLabels: app: myapp-podtemplate:metadata: labels: app: myapp-podspec:containers:- name: myappimage: nginx:latestports: - containerPort: 80name: httpprotocol: TCP
##先创建  配置文件中的命名空间##利用yaml文件创建  deployment 
kubectl apply -f demo01-deploy.yaml##创建service资源
vim myapp-svc.yaml
apiVersion: v1
kind: Service
metadata: name: myapp-servicenamespace: test01
spec: selector: app: myapp-podports: - name: httpport: 8080targetPort: 80nodePort: 31000protocol: TCPtype: NodePortexternalTrafficPolicy: Cluster

获取配置模板

方法一

##手动配置yaml配置文件,可根据  kubectl explain  命令获取字段信息

方法二

##对于新的资源
##  利用  --dry-run   模拟创建过程,但没有创建东西
kubectl create deployment ggl -n test01 --image=nginx:1.14 --replcas=3 --dry-run=client##利用  -o  获取配置文件
kubectl create deployment ggl -n test01 --image=nginx:1.14 --replcas=3 --dry-run=client -o yaml##将配置文件导出到文件中
kubectl create deployment ggl -n test01 --image=nginx:1.14 --replcas=3 --dry-run=client -o yaml > demo3.yaml

方法三

##对于已经存在的资源
##用get命令导出
kubectl get svc nginx-service -o yaml > my-svc.yaml
##在线编辑配置
kubectl edit svc nginx-service  
#手动复制配置,再粘贴到新文件

方法四

##复制官方文档的配置文件案例
http://www.lryc.cn/news/120351.html

相关文章:

  • Cobbler自定义yum源
  • 《算法竞赛·快冲300题》每日一题:“特殊数字”
  • 在R中比较两个矩阵是否相等
  • 商城-学习整理-基础-商品服务API-属性分组(七)
  • 什么是响应式设计?列举几种实现响应式设计的方法。
  • Java类和对象(一文读懂)
  • 用友移动管理系统 任意文件上传漏洞复现(HW0day)
  • 启动springboot,出现Unable to start embedded Tomcat
  • 加密和安全
  • Maven基础总结
  • Java 编程实战:如何用 Java 编写一个简单而强大的 Tomcat
  • 【JavaSE】数组的定义与使用
  • 银河麒麟安装php7.1.33
  • Kubernetes集群部署上篇(安装部署,但是集群网络未部署)
  • 跨境电商中的安全挑战与隐擎Fox指纹浏览器的应用
  • 10. Docker Swarm(一)
  • 【MySQL】InnoDB存储引擎详解
  • 组合求和-矩阵连乘所有加括号方式_2023_08_12
  • 《3D 数学基础》12 几何图元
  • 【设计模式——学习笔记】23种设计模式——备忘录模式Memento(原理讲解+应用场景介绍+案例介绍+Java代码实现)
  • 致谢丨感谢有你,JumpServer开源项目九周年致谢名单
  • 使用 Python 和 Flask 构建简单的 Restful API 第 1 部分
  • 【深度学习所有损失函数】在 NumPy、TensorFlow 和 PyTorch 中实现(2/2)
  • Hazel 引擎学习笔记
  • Linux系统下Redis3.2集群
  • Android图形-合成与显示-SurfaceTestDemo
  • 高压放大器怎么设计(高压放大器设计方案)
  • SpringBoot yml配置注入
  • 中科亿海微乘法器(LPMMULT)
  • Redis_持久化(AOF、RDB)