Kubernetes 1.5配置Job

我们知道使用kubernetes的rc或者rs创建的pod,kubernetes会实时监控其健康状态,如果发现pod挂掉以后,会自动启动一个新的,让pod的数量始终保持在指定的replicas上。那么问题就来了,在有些场景下,我们就是想要运行一些容器执行某种特定的任务,任务一旦执行完成,容器也就没有存在的必要了。在这种场景下,我们使用rc来创建pod就显得不那么合适。于是就是了Job,在这里,Job指的就是那些一次性任务。我们通过Job运行一个容器,当其任务执行完以后,就自动退出,集群也不再重新将其唤醒。

Job的创建非常简单,我们直接看示例:

apiVersion: batch/v1
kind: Job
metadata:
  labels:
    name: busybox
  name: busybox
spec:
  template:
    metadata:
      name: busybox
    spec:
      containers:        - name: busybox
          image: myhub.mingyuanyun.com/library/busybox
          command:            - sleep
            - "30"
      restartPolicy: Never

这个示例,就是启动一个busybox,让其运行30s后自行退出,通过如下方式启动:

kubectl create -f busybox.yml

当容器正常运行退出以后,我们执行如下指令可以查看到容器退出的状态:

[[email protected] test]# kubectl get jobs
NAME      DESIRED   SUCCESSFUL   AGE
busybox   1         1            1m

当successful从0变为1时,即正常退出

需要说明的是,容器虽然退出了,但job还在,要删除job需要使用如下指令:

kubectl delete -f busybox.yml
时间: 2024-08-15 06:55:01

Kubernetes 1.5配置Job的相关文章

Kubernetes 1.5 配置dns

Kubernetes 1.5 配置dns 在kubernetes1.2的时候,采用了skydns + kube2dns +etcd的方式来部署dns.而从1.3开始,则部署方式有了一点儿变化,将skydns和kube2dns封装到了一个容器镜像中,放弃了etcd,而将dns解析直接放入到了内存之中,同时引入了dnsmasq,进一步利用其缓存,具体的原理,请查阅相关文档.本篇文档,主要阐述新版的dns在kubernetes中的具体部署. 在Kubernetes的源码目录中,有个cluster/ad

kubernetes 的volume 配置

kubernetes 的volume 配置 标签(空格分隔):kubernetes系列 一:kuberentes 的volume 配置 一:kuberentes 的volume 配置 1.1 背景 说明: 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题.首先,当容器崩溃 时,kubelet 会重启它,但是容器中的文件将丢失--容器以干净的状态(镜像最初的状态)重新启动.其次,在 Pod 中同时运行多个容器时,这些容器之间通常需要共享文件.Kubernetes 中

Kubernetes的安装配置

1.环境准备: 三台服务器: 192.168.42.128 master+node 192.168.42.129 node1 192.168.42.130 node2 2.准备yum源 vi virt7-docker-common-release.repo [virt7-docker-common-release] name=virt7-docker-common-release baseurl=http://cbs.centos.org/repos/virt7-docker-common-re

Kubernetes 1.5 配置dashboard

配置kubernetes的dashboard相对简单.同样的,只需要从源码中获取到dashboard-controller.yaml及dashboard-service.yaml文件,稍加修改即可: wget https://rawgit.com/kubernetes/kubernetes/master/cluster/addons/dashboard/dashboard-controller.yamlwget https://rawgit.com/kubernetes/kubernetes/m

Kubernetes: 集群网络配置 - flannel

参考: [ Kubernetes 权威指南 ] Kubernetes 集群搭建可以参考 [ Kubernetes : 多节点 k8s 集群搭建实践 ] 在多个 Node 组成的 Kubernetes 集群内, Kubernetes 本身不会对跨主机容器网络进行设置. flannel 就是解决跨主机容器间网络互通的需求. Kubernetes 集群架构 Server List 节点名称 节点 IP k8s-master 10.10.10.10 k8s-node1 10.10.10.11 k8s-n

Kubernetes 使用 ingress 配置 https 集群(十五)

目录 一.背景 1.1 需求 1.2 Ingress 1.3 环境介绍 二.安装部署 2.1.创建后端 Pod 应用 2.2 创建后端 Pod Service 2.3.创建 ingress 资源 2.4.为 Nginx Pod 创建 Service 三.升级为 https 3.1 首先我们要制作证书 3.2.创建 secret 资源 3.3 更改 ingress 资源 3.4 浏览器访问验证 四.ingress 资源介绍 4.1.通过访问路径过滤 4.2.基于名称解析的虚拟主机 4.3.http

kubernetes集群网络配置方案——flannel部署

部署环境: CentOS Linux release 7.2 64位 10.10.0.103 node01 10.10.0.49 node02 安装过程: # yum install flannel # tar zxf flannel-v0.8.0-linux-amd64_.tar.gz # cp flanneld /usr/bin/ # cp mk-docker-opts.sh /usr/bin/ 编辑服务配置文件: #cat /usr/lib/systemd/system/flanneld.

Kubernetes 1.5配置Daemon Sets

在后续我们会说如何收集kubernetes中的pod日志,在收集日志的时候,需要在每个k8s node节点上运行一个收集日志的进程 ,如fluentd.我们知道在通常情况下,kubernetes基于它内部的调度算法来自动分配pod运行在哪个节点上,没有办法保证在每个node上运行一个fluentd pod.这个时候,Daemon Sets就派上了用场.简单来说,Daemon Sets就是让一个pod在所有的k8s集群节点上都运行一个. 我们直接看下面的示例,在所有节点上都启动一个busybox:

Kubernetes集群配置dashboard服务

本文将在前文的基础上介绍kube-ui(也叫dashboard)的创建和使用.这个东西本质上就是webui连接master的api接口,通过api获取k8s集群的相关信息,然后在web上展示出来,对用户来说比较友好一些,实际用处并不是很大. 一.下载镜像文件并纳入本地仓库统一管理 # docker pull docker.io/mritd/kubernetes-dashboard-amd64 # docker tag docker.io/mritd/kubernetes-dashboard-am