乐趣区

关于linux:yaml文件格式说明及编写教程

倡议应用 3A 服务器来搭建好玩的试验,比拟不便

1、ymal 介绍
k8s 是容器编排引擎,应用 yaml 来编排部署利用
特点:1、缩进示意层级关系

       2、不反对制表符“tab”缩进,须要应用空格缩进
       3、通常结尾缩进两个空格
       4、关键词字符后缩进一个空格,比方冒号与逗号前面须要缩进一个字符
       5、“---”示意 YAML 格局,一个文件的开始
        6、“#”示意正文

以下 yaml 为例

等同于
kubectl create deployment web –image=lizhenliang/java-demo –replicas=3 -n default
2、编写示例 yaml
在应用中咱们可能存在 API 版本不统一导致报错,能够通过命令查看版本
kubectl api-resources |grep Deployment

1、其中,标签个别定义两个,由我的项目与利用组成,# 键:值 可任意定义。例如
project:ec
app: portal
2、matchLabels 必须与上面的 labels 保持一致,否则 apply 会报错
例如上面这个创立 deployment 的 yaml
kind: Deployment
metadata:
name: web666
namespace: team-a
spec:
replicas: 3
selector:

matchLabels:
  project: ec
  app: portal

template:

metadata:
  labels:
    project: ec
    app: portal
spec:
  containers:
  - name: web
    image: lizhenliang/java-demo:latest

其中,标签能够为两个,他是以键值对的形式存储,但 matchLabels 的值必须与 labels 相等,不相等会创立报错,而 service 是以标签来管制 pod

       replicas 为正本数,image 为拉取镜像名

2、创立 service
apiVersion: v1
kind: Service
metadata:
name: web666
namespace: team-a
spec:
ports:

  • port: 80
    protocol: TCP
    targetPort: 8080
    selector:
    project: ec
    app: portal
    type: NodePort

标签与命名空间要确保与 deployment 统一
执行两个 yaml 文件

kubectl apply -f deployment.yaml

kubectl apply -f service.yam
查看服务

胜利
3、疾速生成 yaml 文件
间接手写 yaml 比拟麻烦,而且容易出错,所以有提供以下形式获取规范 yaml 文件并批改
3.1 生成新 yaml
1、通过命令获取 yaml,能够通过创立服务的命令前面加 –dry-run=client -o yaml 来提取 yaml,再依据获取到的 yaml 进行批改即可
例如
kubectl create deployment java-demo –image=nginx:1.20 -n team-a –dry-run=client -o yaml
他会输入 yaml, 减轻定向导出即可,其中,creationTimestamp 与 status: {}能够删除
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:

app: java-demo

name: java-demo
namespace: team-a
spec:
replicas: 1
selector:

matchLabels:
  app: java-demo

strategy: {}
template:

metadata:
  creationTimestamp: null
  labels:
    app: java-demo
spec:
  containers:
  - image: nginx:1.20
    name: java-demo
    resources: {}

status: {}
3.2 将已有的服务 yaml 导出
k8s 反对将正在运行的服务的 yaml 文件导出,应用 get 命令加 -o yaml 即可(xxx 为服务名)
kubectl get deployment xxx -o yaml

留神,此 yaml 内容不能间接在其余 k8s 环境中应用,在其余环境中应用的话要进行一些删除,要删除的内容如下:

残余的内容则是一个规范 yaml,能够间接应用也能够用作模板批改
3.3 关键词揭示
kubectl explain pods.spec.containers
kubectl explain deployment
3.4 官网查找
间接在官网搜寻关键词,官网会给演示示例
官网地址:
https://kubernetes.io/zh/docs…

退出移动版