k8syaml格式

一、创建pod的yaml

apiVersion: v1  # pod api版本
kind: Pod  # 资源类型为pod
metadata:  # 元数据信息
  name: pod1  # pod名字
  namespace: test  # pod所在的名称空间
spec:
  restartPolicy: Always  # pod重启策略
  initContainers:  # 初始化容器
  - name: b1
    imagePullPolicy: IfNotPresent
    image: busybox
    command:  # 命令用列表的方式来写也可以
    - /bin/sh
    - -c
    - sleep 10
  containers:  # 
  - name: pod1  # 定义pod里面的容器
    image: nginx  # 使用的镜像
    imagePullPolicy: IfNotPresent # 镜像拉取策略
    livenessProbe:  # 存活性探针
      exec:  # exec格式
        command: ["/bin/sh","-c","ls /"]
    readinessProbe:  # 就绪性探针
      httpGet:  # 监听网页文件
        port: 80
        path: /index.html

command的写法

  • 有点复杂

  • 直接命令+参数

command: ["echo","hello","kubernetes"]
  • 通过shell执行命令,需要-c参数
# -c是shell的参数,执行后续的字符串的命令
command: ["/bin/sh","-c","echo $HOSTNAME && ls /"]

# 或者分行写

command:
  - /bin/sh
  - -c
  - echo $HOSTNAME

  • 与args参数配合使用,分离命令和参数
command: ["python"]
args: ["-m","http.server","8080"]
  • 写一些关于volume的字段,pv的字段,等等,就是一些类型的字段,然后这些查不到帮助的字段,

二、pv和pvc创建的字段

  • 一些选择字段,解释清楚,就是理解明白了
[root@k-master yaml]# cat pv-pvc.yaml 
apiVersion: v1
kind: PersistentVolume  # pv类型
metadata:
  name: pv1  # pv的名字
spec:
  persistentVolumeReclaimPolicy: Retain # pv的策略 
  accessModes:  # pv的访问模式
  - ReadWriteOnce
  nfs:  # pv的最底层的使用的存储为nfs
    path: /nfsdata  # nfs的挂载目录
    server: 192.168.50.100  # nfs服务器
  capacity:  # 申请的大小
    storage: 2Gi 
---

apiVersion: v1
kind: PersistentVolumeClaim  # pvc类型
metadata:
  name: pvc1  # pvc名字
spec:
  accessModes:  # 访问模式
  - ReadWriteOnce
  resources:  # 需要的大小
    requests:
      storage: 2Gi
   
[root@k-master yaml]# cat pod2.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: pod2
spec:
  containers:
  - name: pod2
    image: nginx
    imagePullPolicy: IfNotPresent
    volumeMounts:  # 挂载到容器的那个目录下
    - name: pvc
      mountPath: /data
  volumes:  # 创建的卷
  - name: pvc
    persistentVolumeClaim:  # 创建的卷使用的是pvc1
      claimName: pvc1

三、deployment字段

[root@k-master yaml]# cat deploy.yaml 
apiVersion: apps/v1
kind: Deployment  # deploy类型
metadata:
  name: d1  # deploy的名字
spec:
  replicas: 3  # deploy的副本数
  selector:  # deploy选择的标签
    matchLabels:  # 匹配pod的规则
      app: nginx
  template:  # pod的模版
    metadata:  
      name: nginx 
      labels:  # pod标签
        app: nginx  
    spec:
      containers:
      - name: nginx
        image: nginx
        imagePullPolicy: IfNotPresent

四、secret和configmap字段


五、explain字段

apiVersion	<string>  # 直接写值的

metadata	<Object>  # 这个字段下面还有其他字段

volumes	<[]Object> # 这个字段下面还有其他字段,并且是列表格式写出 -

labels <map[string]string> # 写一个键值对或者多个键值对





posted @ 2025-08-06 14:43  乔的港口  阅读(10)  评论(0)    收藏  举报