运维八一 运维八一
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)

运维八一

运维,运维!
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)
  • Devops笔记

  • Kubernetes

    • k8s 使用YAML配置文件管理资源
    • k8s 调度约束
    • k8s 资源约束
    • k8s 健康检测
    • k8s 重启策略
    • k8s pod管理
    • k8s DaemonSet典型应用
    • k8s Job任务
      • 一次性任务job
    • k8s service服务
  • 运维监控系统

  • go分布式爬虫

  • Linux性能优化

  • 夜莺(nightingale)开源观测平台

  • kubernetes-network-policy-recipes

  • 专栏
  • Kubernetes
lyndon
2022-10-05
目录

k8s Job任务

# 一次性任务job

容器按照持续运行的时间可分为两类:服务类容器和工作类容器。

  • 服务类容器通常持续提供服务,需要一直运行,比如 http server,daemon 等。
  • 工作类容器则是一次性任务,比如批处理程序,完成后容器就退出。

Kubernetes 的 Deployment、ReplicaSet 和 DaemonSet 都用于管理服务类容器;

对于工作类容器,用 Job。

示例:

apiVersion: batch/v1
kind: Job
metadata:
  name: myjob
spec:
  template:
    metadata:
      name: myjob
    spec:
      containers
   - name: hello
     image: busybox
     command: ["echo","hello k8s job!"]
           restartPolicy: Never
1
2
3
4
5
6
7
8
9
10
11
12
13
14

restartPolicy 指定什么情况下需要重启容器。对于 Job,只能设置为 Never 或者 OnFailure。对于其他 controller(比如 Deployment)可以设置为 Always 。

kubectl get job //查看job状态

并行执行job任务

同时运行多个 Pod,提高 Job 的执行效率,通过两个参数配置:

  • parallelism:设置同时运行几个pod
  • completions:设置 Job 成功完成 Pod 的总数

如果不指定 completions 和 parallelism,默认值均为 1

示例:每次运行 2 个 Pod,直到总共有 6 个 Pod 成功完成。

apiVersion: batch/v1
kind: Job
metadata:
  name: myjob
spec:
  parallelism: 2
  completions: 6
  template:
    metadata:
      name: myjob
    spec:
      containers:
      - name: hello
        image: busybox
        command: ["echo","hello k8s job!"]
      restartPolicy: Never
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

定时执行job

Kubernetes 的 CronJob 提供了定时执行任务的功能,可以定时执行 Job

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:

   - name: hello
     image: busybox
     command: ["echo","hello k8s job!"]
               restartPolicy: OnFailure
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

说明:

① batch/v1beta1 是当前 CronJob 的 apiVersion

② kind: CronJob 指明当前资源的类型为 CronJob

③ schedule 指定什么时候运行 Job,其格式与 Linux cron 一致。这里 */1 * * * * 的含义是每一分钟启动一次。

④ jobTemplate 定义 Job 的模板,格式与前面 Job 一致。

上次更新: 2022/10/05, 15:51:58
k8s DaemonSet典型应用
k8s service服务

← k8s DaemonSet典型应用 k8s service服务→

最近更新
01
ctr和crictl显示镜像不一致
03-13
02
alpine镜像集成常用数据库客户端
03-13
03
create-cluster
02-26
更多文章>
Theme by Vdoing | Copyright © 2015-2024 op81.com
苏ICP备18041258号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式