首页 > 其他分享 >k8s常用清单文件

k8s常用清单文件

时间:2024-11-05 11:09:24浏览次数:3  
标签:常用 name v1 kind nginx 清单 k8s spec metadata

job

apiVersion: batch/v1
kind: Job
metadata:
  name: pi
spec:
  template:
    spec:
      containers:
      - name: pi
        image: perl:5.34.0
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never
  backoffLimit: 4
  completions: 1 #完成次数 默认为1
  parallelism: 1 #并行数 默认为1
  activeDeadlineSeconds: 30 #活跃期限 默认无限制 
  ttlSecondsAfterFinished: 100 #自动清理时间 默认不清理 设置单位为秒 时间到了立即清理pod

cronjob

apiVersion: batch/v1
kind: CronJob
metadata:
  name: cron-get-alist
  labels:
    app: cron-get-alist
  annotations:
    app: cron-get-alist
  namespace: default
spec:
  schedule: "*/1 * * * *"
  concurrencyPolicy: Allow  #并发策略 Allow Replace
  suspend: false
  successfulJobsHistoryLimit: 3   #成功任务保留数
  failedJobsHistoryLimit: 1       #失败任务保留数
  jobTemplate:
    spec:
      template:
        metadata:
          labels: {}
          annotations: {}
        spec:
          affinity:             #容忍度
            podAntiAffinity: {}
          restartPolicy: OnFailure  #重启策略 OnFailure Never
          imagePullSecrets: []     #拉去镜像的秘钥
          dnsPolicy: ClusterFirst
          hostNetwork: false        #主机网络
          volumes:
            - name: log  #hostPath
              hostPath:
                type: ""
                path: /mnt
            - name: shareDir  #emptyDir
              emptyDir:
                type: ''
            - name: config  #configMap
              configMap:
                name: test
          containers:
            - name: container-1
              image: busybox
              imagePullPolicy: IfNotPresent  #镜像拉取策略
              command:
                - /bin/sh
                - "-c"
              args:
                - "echo `date` >> /mnt/curl.log"
              volumeMounts:   #挂载数据卷
                - name: log
                  mountPath: /mnt
                  subPath: ""       #挂载数据卷中的子目录
              env:         #环境变量
                - name: URL
                  value: "http://101.43.18.212:5244"
                - name: cmURL   # configMap的key
                  valueFrom:
                    configMapKeyRef:
                      name: test
                      key: url
              ports: []     #暴露端口
              tty: false
              workingDir: ""  #工作目录覆盖
              resources:  #资源限制
                limits:
                  memory: 1024Mi
                  cpu: 1
                requests:
                  memory: 128Mi
                  cpu: 100m
              lifecycle: {}
          initContainers: []

configmap

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-config
  namespace: default
data:
  nginx.conf: |
    worker_processes 1;

    events {
      worker_connections 1024;
    }

    http {
      include       mime.types;
      default_type  application/octet-stream;

      server {
          listen       80;
          server_name  localhost;

          location / {
              root   /etc;
              index  hosts;
          }
      }
    }

---
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  namespace: default
spec:
  containers:
  - name: nginx-container
    image: nginx:latest
    volumeMounts:
    - name: nginx-config-volume
      mountPath: /etc/nginx/nginx.conf
      subPath: nginx.conf
  volumes:
  - name: nginx-config-volume
    configMap:
      name: nginx-config

damonset

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentd-elasticsearch
  namespace: kube-system
  labels:
    k8s-app: fluentd-logging
spec:
  selector:
    matchLabels:
      name: fluentd-elasticsearch
  template:
    metadata:
      labels:
        name: fluentd-elasticsearch
    spec:
      tolerations:
      # 这些容忍度设置是为了让该守护进程集在控制平面节点上运行
      # 如果你不希望自己的控制平面节点运行 Pod,可以删除它们
      - key: node-role.kubernetes.io/control-plane
        operator: Exists
        effect: NoSchedule
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      containers:
      - name: fluentd-elasticsearch
        image: quay.io/fluentd_elasticsearch/fluentd:v2.5.2
        volumeMounts:
        - name: varlog
          mountPath: /var/log
      # 可能需要设置较高的优先级类以确保 DaemonSet Pod 可以抢占正在运行的 Pod
      # priorityClassName: important
      terminationGracePeriodSeconds: 30
      volumes:
      - name: varlog
        hostPath:
          path: /var/log

Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2 # 告知 Deployment 运行 2 个与该模板匹配的 Pod
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

StatefulSet

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None  #headless svc
  selector:
    app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
spec:
  selector:
    matchLabels:
      app: nginx 
  serviceName: "nginx"  #headless svc名称
  replicas: 3 
  minReadySeconds: 10 
  template:
    metadata:
      labels:
        app: nginx 
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - name: nginx
        image: registry.k8s.io/nginx-slim:0.24
        ports:
        - containerPort: 80
          name: web
        volumeMounts:
        - name: www
          mountPath: /usr/share/nginx/html
  volumeClaimTemplates:
  - metadata:
      name: www
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: "my-storage-class"
      resources:
        requests:
          storage: 1Gi

LimitRange

apiVersion: v1
kind: LimitRange
metadata:
  name: cpu-resource-constraint
spec:
  limits:
  - default: # 此处定义默认限制值
      cpu: 500m
    defaultRequest: # 此处定义默认请求值
      cpu: 500m
    max: # max 和 min 定义限制范围
      cpu: "1"
    min:
      cpu: 100m
    type: Container

ResourceQuota

#限制计算资源
apiVersion: v1
kind: ResourceQuota
metadata:
  name: compute-resources
spec:
  hard:
    requests.cpu: "1"
    requests.memory: 1Gi
    limits.cpu: "2"
    limits.memory: 2Gi
    requests.nvidia.com/gpu: 4
#限制创建对象数
apiVersion: v1
kind: ResourceQuota
metadata:
  name: object-counts
spec:
  hard:
    configmaps: "10"
    persistentvolumeclaims: "4"
    pods: "4"
    replicationcontrollers: "20"
    secrets: "10"
    services: "10"
    services.loadbalancers: "2"

HorizontalPodAutoscaler

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: frontend-scaler
spec:
  scaleTargetRef:
    kind: ReplicaSet
    name: frontend
  minReplicas: 3
  maxReplicas: 10
  targetCPUUtilizationPercentage: 50

标签:常用,name,v1,kind,nginx,清单,k8s,spec,metadata
From: https://www.cnblogs.com/songsir/p/18527494

相关文章

  • Linux常用命令——su 命令详解
    Linux常用命令——su命令详解命令介绍:su命令在Linux系统中用于切换用户身份。它是系统管理员和高级用户常用的命令,支持多种选项来控制身份切换过程。基本语法:su[选项][用户名]常用选项和参数:-:切换到指定用户并加载该用户的环境变量,类似于重新登录。示例:su-......
  • Linux常用命令——sed 命令详解
    Linux常用命令——sed命令详解命令介绍:sed(streameditor)是一种强大的文本处理工具,在Linux系统中广泛用于对文件进行过滤和转换。sed可以对文件中的文本进行插入、删除、查找和替换等操作。基本语法:sed[选项]'命令'文件常用选项和参数:无参数:简单替换。示例:1......
  • Linux常用命令——du 命令详解
    Linux常用命令——du命令详解命令介绍:du命令在Linux系统中用于显示文件和目录的磁盘使用情况。它非常有用,可以帮助用户了解每个文件和目录占用的空间。基本语法:du[选项][文件或目录]常用选项和参数:-a,--all:不仅显示目录的磁盘使用情况,还显示所有文件的磁盘......
  • Linux常用命令——mount 命令详解
    Linux常用命令——mount命令详解命令介绍:mount命令在Linux系统中用于将文件系统挂载到指定的目录。它是系统管理中非常重要的命令之一,支持多种参数选项。基本语法:mount[选项]设备文件夹常用选项和参数:-t,--types:指定要挂载的文件系统类型,如ext4、vfat、nt......
  • Spring常用过滤器(Filter)-AuthorizationFilter
    AuthorizationFilter:授权过滤器,用于执行访问控制决策。1.1定义与作用:1.1.1定义:AuthorizationFilter是ASP.NETMVC中用于安全性检查的过滤器,它通过实现IAuthorizationFilter接口来定义。该接口提供了一个OnAuthorization方法,用于在用户请求到达Action方法之前执行授权逻辑。......
  • Java常用工具类方法整理
    在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类。以下工具类、方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码。 1.org.apache.commons.io.IOUtilscloseQuietly:关闭一个IO流、socket、或者selector且不抛出......
  • ArkTS 常用状态管理:深入理解与实践
    在HarmonyOS应用开发中,ArkTS作为开发语言,其状态管理机制是构建响应式应用的核心。本文将详细介绍ArkTS中的状态管理机制,包括@State、@Prop、@Link、@Provide和@Consume等装饰器的使用,以及它们在实际开发中的应用和最佳实践。状态管理的重要性状态管理是前端开发中的一个核心......
  • ArkUI常用数据处理:掌握Map操作与动态数据管理
    在HarmonyOS应用开发中,ArkUI框架提供了丰富的数据处理能力,尤其是对于Map这类非线性容器的操作。本文将详细介绍ArkUI中Map的基本概念、操作方法,以及如何在实际开发中应用Map进行数据处理和动态数据管理。Map的重要性Map是非线性容器的一种,它提供了快速查找、插入和删除键值......
  • Kubernetes-K8S的安装
    前言:望大家可以跟着我的走,我将自己踩的坑都会一一说出来,尽量为大家踩出一条没有荆棘的路,有问题大家可以留言和私信我会一一解答,我不是大神就是一个学习小伙汁,那么接下来让我们开始安装步骤建议使用阿里云的服务器首先开通三个2核2G的ECS云服务器(按量付费)安装Kuber......
  • K8s调度策略
    学习链接nodeName节点名称:了解如何指定Pod运行在特定的节点上。nodeSelect节点选择器:学习如何使用节点选择器来指定Pod运行在具有特定标签的节点上。NodeAffinity/nodeAntiAffinity节点亲和性:了解如何使用节点亲和性来控制Pod在节点上的分布。节点反亲和性......