12.24 k8s yaml文件类型和介绍

k8s yaml文件类型和介绍

官方文档:https://kubernetes.p2hp.com/docs/tasks/configure-pod-container/assign-memory-resource/

这个是官方文档,可以根据需求和拓展进行了解

yaml 复制代码
apiVersion: v1
kind: Pod
metadata:
  name: memory-demo
  namespace: mem-example
spec:
  containers:
  - name: memory-demo-ctr
    image: polinux/stress
    resources:
      requests:
        memory: "100Mi"
      limits:
        memory: "200Mi"
    command: ["stress"]
    args: ["--vm", "1", "--vm-bytes", "150M", "--vm-hang", "1"]

这是自己在网上找的大佬的文档

参数名 类别 字段说明
apiVersion String k8s API的版本,可以用kubectl api versions的命令查询
kind String yam 文件定义的资源类型和角色
metadata Object 元数据对象,下面是他的属性
metadata.name String 元数据对象的名字,比如说pod的名称
Spec Object 详细定义对象
spec.containers\[\] list 定义Spec对象的容器列表
spec.containers\[\].name String 为列表中的某个容器定义名称
spec.containers\[\].image String 为列表中的某个容器定义需要的镜像名称
spec.containers\[\].imagePullPolicy String 定义镜像的拉取策略,有Always、Never、lfNotPresent - Always(默认):意思是每次都尝试重新拉取镜像 - Nerver:表示仅使用本地镜像 -lfNotpresent:如果本地有镜像就使用本地镜像,如果没有就在线拉取镜像
spec.containers\[\].command\[\] list 指定容器启动命令,因为是数组可以指定多个,不指定则使用镜像打包时使用的命令
spec.containers\[\].args\[\] list 指定容器启动命令参数,因为是数组可以指定多个
spec.containers\[\].workingDir String 指定容器的工作目录
spec.containers\[\].volumeMounts\[\] list 指定容器内部的存储卷挂载
spec.containers\[\].volumeMounts\[\].name String 指定可以被容器挂载的存储卷的名称
spec.containers\[\].volumeMounts\[\].mountPath string 指定可以被容器挂载的存储卷的路径
spec.containers\[\].volumeMounts\[\].readOnly string 设置存储卷路径的读写模式,ture或者false,默认是读写模式
spec.containers\[\].ports\[\] list 指定容器需要用到的端口列表
spec.containers\[\].ports\[\].protocol string 指定端口协议,支持TCP和UDP,默认值为TCP
spec.containers\[\].env\[\] list 指定容器运行前需要设置的环境变量列表
spec.containers\[\].env\[\].name string 指定环境变量的名称
spec.containers\[\].env\[\].value string 指定环境变量的值
spec.containers\[\].resources Object 指定资源限制和资源请求的值(这里开始就是设置容器的资源上线)
spec.containers\[\].resources\[\].limits Object 指定容器运行时资源的运行上限
spec.containers\[\].resourtces\[\].limits\[\].cpu string 指定cpu的限制,单位为Core数,将用于docker run-cpu-shares参数
spec.containers\[\].resourtces\[\].limits\[\].memory string 指定内存的限制,单位为MIB,GiB
spec.containers\[\].resourtces\[\].requests Object 指定容器启动和调度时的限制设置
spec.containers\[\].resourtces\[\].requests\[\].cpu string CPU请求,单位为core数,容器启动时初始化可用数量
spec.containers\[\].resourtces\[\].requests\[\].memory string 内存请求,单位为MiB,GiB,容器启动的初始化可用数量
spec.restartPolicy string 定义pod的重启策略,可选值为Always、ONfailure、Never,默认值为Alays -Alays:pod一旦终止运行,则无论容器是如何终止的,kubelet服务都将重启他 -ONfailure:只有pod以非零退出码终止时,kubelet才会重启该容器,如果容器正常结束(退出码为0),则不会重启该容器 -Never:pod终止后,kubelet将退出码报告给master,不会重启该pod
spec.nodeSelector Object 定义Node的label过滤标签,以key:value格式指定
spec.imagePullSecrets Object 定义pull镜像时使用secret名称,以name:secretkey格式指定
spec.hostNetwork Boolean 定义是否使用主机网络模式,默认值为false。设置true表示使用宿主机网络,不使用docker网桥,同时设置了true将无法再同一台宿主机上启动第二个副本
yaml 复制代码
apiVersion: v1  # API 版本
kind: Pod  # 资源对象类型,这里是 Pod
metadata:
  name: nginx-demo  # Pod 的名称
  labels:  # Pod 的标签
    type: app  # 自定义 label 标签,名字为 type,值为 app
    version: 1.0.0  # 自定义 label 标签,描述 pod 版本号
  namespace: 'default'  # 命名空间
spec:
  containers:  # Pod 中的容器描述
  - name: nginx  # 容器的名称
    image: nginx:1.7.9  # 使用的 Docker 镜像及版本
    imagePullPolicy: IfNotPresent  # 镜像拉取策略,表示本地没有时才拉取
    command:  # 容器启动命令
    - nginx
    - '-g'
    - 'daemon off;'  # 使 nginx 在前台运行,避免容器退出
    workingDir: /usr/share/nginx/html  # 容器的工作目录
    ports:  # 容器暴露的端口
    - name: http  # 端口名称
      containerPort: 80  # 容器内暴露的端口
      protocol: TCP  # 使用的协议
    env:  # 容器的环境变量
    - name: JVM_OPTS
      value: '-Xms128m -Xmx128m'  # 设置 JVM 启动参数
    resources:  # 资源请求和限制
      requests:  # 最少需要多少资源
        cpu: 100m  # 请求最少 CPU 0.1 核
        memory: 128Mi  # 请求最少内存 128Mi
      limits:  # 最大可使用资源
        cpu: 200m  # 限制最多 CPU 0.2 核
        memory: 256Mi  # 限制最多内存 256Mi
  restartPolicy: OnFailure  # 重启策略,仅在失败时重启

然后运行这个yaml文件让其进行构建即可

yaml 复制代码
kubectl apply -f 文件名
相关推荐
虎头金猫1 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS2 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
codeejun2 天前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
赵文宇(温玉)2 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang2 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren2 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
忆~遂愿2 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器
Thneonl2 天前
你的 Pod 为什么 Pending:调度器两阶段
后端·kubernetes
不吃香菜kkk、2 天前
CI/CD(GitOps)学习与部署手册
运维·云原生·容器·kubernetes·云计算·jenkins·argocd
ChaITSimpleLove2 天前
云原生性能对决:JDK21虚拟线程+GraalVM vs .NET10/11 技术栈深度对比
微服务·云原生·serverless·graalvm native·native aot·runtime async·.net11/java21