v2.0
v1.0
  1. Release Notes
    1. Release Notes - 2.0.2Latest
    1. Release Notes - 2.0.1
    1. Release Notes - 2.0.0
  1. Introduction
    1. Introduction
    1. Features
    1. Architecture
    1. Advantages
    1. Glossary
  1. Installation
    1. Intruction
      1. Intro
      2. Port Requirements
    1. Install on Linux
      1. All-in-One Installation
      2. Multi-Node Installation
      3. Installing HA Master and Etcd Cluster
      4. Storage Configuration Instruction
    1. Install on Kubernetes
      1. Prerequisites
      2. Online Installation
      3. Offline Installation
    1. Related Tools
      1. Integrating Harbor Registry
    1. Cluster Operation
      1. Adding New Nodes
      2. High Risk Operation
      3. Uninstalling KubeSphere
  1. Quick Start
    1. Getting Started with Multitenancy
    1. Exposing your APP using Ingress
    1. Deploying a MySQL Application
    1. Deploying a Wordpress Website
    1. Job to compute π to 2000 places
    1. Deploying Grafana using APP Template
    1. Creating Horizontal Pod Autoscaler
    1. S2i: Publish your app without Dockerfile
    1. Canary Release of Microservice APP
    1. CI/CD based on Spring Boot Project
    1. Building a Pipeline in a Graphical Panel
    1. CI/CD based on GitLab and Harbor
    1. Ingress-Nginx for Grayscale Release
  1. Cluster Admin Guide
    1. Multi-tenant Management
      1. Overview of Multi-tenant Management
      2. Overview of Role Management
    1. Platform Management
      1. Account Management
      2. Platform Roles Management
    1. Infrastructure
      1. Service Components
      2. Nodes
      3. Storage Classes
    1. Monitoring Center
      1. Physical Resources
      2. Application Resources
    1. Application Repository
    1. Jenkins System Settings
  1. User Guide
    1. Application Template
    1. Workloads
      1. Deployments
      2. StatefulSets
      3. DaemonSets
      4. Jobs
      5. CronJobs
    1. Storage
      1. Volumes
    1. Network & Services
      1. Services
      2. Routes
    1. Configuration Center
      1. Secret
      2. ConfigMap
      3. Image Registry
    1. Project Settings
      1. Basic Information
      2. Member Roles
      3. Project Members
      4. Internet Access
    1. DevOps Project
      1. DevOps Project Management
      2. DevOps Project Management
      3. DevOps Project Management
      4. DevOps Project Management
      5. DevOps Project Management
  1. Development Guide
    1. Preparing the Development Environment
    1. Development Workflow
  1. API Documentation
    1. API Guide
    1. How to invoke KubeSphere API
KubeSphere®️ 2020 All Rights Reserved.

Creating a Job to compute π to 2000 places

In actual work, we often need to process and analyze data in batch and execute jobs according to the time. The container technology in KubeSphere can help you. To be more specific, you can use Job and CronJob to execute, which is easier to maintain the clean execution environent and reduce the mutual interface of different job tools. At the same time, the dynamic scaling can be escuted on the cluster according to job requirement and resource status.

Job is responsible for batch jobs, namely it only excute the job once. The job has concurrent features and it can be abstracted to multiple Pods to run in parrallel. Such feature can ensure the successful completion of one or multiple Pods.

Objective

This tutorial describes the basic features of a Job by creating a parallel job to perform a simple calculation and outputting PI to 2000 decimal. The job's basic functions will be explained.

Prerequisites

Estimated Time

About 15 minutes.

Hands-on Lab

Create a Job

Login the KubeSphere console with project-regular  demo-project, navigate to Wordloads → Jobs, then click Create Job.

Step 1: Fill in the basic information

Click Create and fill in the job's basic information. Then choose Next.

Here is the job's name and description.

  • Name: Use a simple name for browsing and searching.
  • Nickname: It can be any characters. Help you to distinguish resources.
  • Description: Simply descript the repository-application job. Give users further knowledge about this job.

Step 2: Job Setting

Set the four configuration parameters of the Job Spec for the Job job type. Then click Next.

  • Back Off Limit:Set to 5; Maximum retry count before mark the build job as failed;
  • Completions:Set to 4 (default to 1); Expected number of completed build jobs;
  • Parallelism:Set to 2 (default to 1); Expected maximum number of parallel build jobs;
  • Active Deadline Seconds:Set to 200; The timeout of the running build jobs. Once a Job reaches its value, all of its running Pods are terminated and the Job status will become "Failed".

Step 3: Setting the Job Template

Leave the RestartPolicy as Never, then click Add Container.

Note: When RestartPolicy shows that the job is uncomplete:

  • Never: The job will create a new container group when the errors occur and it will not disappear.
  • OneFailure: The job will restart the container when the errors occur, instead of creating a new container group.

Next Click Add Container; put in the container's name pi and the according image name perl. Set the CPU and storage by default.

Check the box of Start Command, add the following 4 lines of commands in sequence, that is, perform a simple calculation and outputting the Pi to 2000 decimal. Then choose Next.

# Command
perl
-Mbignum=bpi
-wle
print bpi(2000)

Step 4: Tag Setting

Skip the Volume Settings, then click Next to the tag setting. Tag is app: job-demoby default. No need to set node selector. Click Create to coplete the job. It can checked in the job list.

Verifying the Job Result

  1. Enter into the job-demo and inspect the execution records, you can see it display "completed". There are 4 Pods completed, since the Completions was set to 4 in the Step 2.

  1. In the Resource Status, you can check the created container group. Since the Parallelism was set as 2, there are 2 container groups set before the job. Then it continued to create 2 other container groups. Finally 4 Pods will be created at the end of the Job.

  1. Click one of the container groups, e.g. job-demo-bh5bc to check the containers inside.

  2. In the Resource Status page, click Container Log to check outputting page which display PI to 2000 decimal. Besides, you can click Terminal on the lef to excute the command inside of the container.

For now, you have learned Job's basic functions. For further details, please refer to Job