v2.1
v2.0
v1.0
  1. Release Notes
    1. Release Notes - 2.1.1Latest
    1. Release Notes - 2.1.0
    1. Release Notes - 2.0.2
    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. Introduction
      1. Intro
      2. Port Requirements
      3. Kubernetes Cluster Configuration
    1. Install on Linux
      1. All-in-One Installation
      2. Multi-Node Installation
      3. High Availability Configuration
      4. Air Gapped Installation
      5. StorageClass Configuration
      6. Enable All Components
    1. Install on Kubernetes
      1. Prerequisites
      2. Install on K8s
      3. Air Gapped Installation
      4. Install on GKE
    1. Pluggable Components
      1. Pluggable Components
      2. Enable Application Store
      3. Enable DevOps System
      4. Enable Logging System
      5. Enable Service Mesh
      6. Enable Alerting and Notification
      7. Enable Metrics-server for HPA
      8. Verify Components Installation
    1. Upgrade
      1. Overview
      2. All-in-One
      3. Multi-node
    1. Third-Party Tools
      1. Configure Harbor
      2. Access Built-in SonarQube and Jenkins
      3. Enable built-in Grafana Installation
      4. Load Balancer plugin in Bare Metal - Porter
    1. Authentication Integration
      1. Configure LDAP/AD
    1. Cluster Operations
      1. Add or Cordon Nodes
      2. High Risk Operations
      3. Uninstall KubeSphere
  1. Quick Start
    1. 1. Getting Started with Multi-tenancy
    1. 2. Expose your App Using Ingress
    1. 3. Compose and Deploy Wordpress to K8s
    1. 4. Deploy Grafana Using App Template
    1. 5. Job to Compute π to 2000 Places
    1. 6. Create Horizontal Pod Autoscaler
    1. 7. S2I: Publish your App without Dockerfile
    1. 8. B2I: Publish Artifacts to Kubernete
    1. 9. CI/CD based on Spring Boot Project
    1. 10. Jenkinsfile-free Pipeline with Graphical Editing Panel
    1. 11. Canary Release of Bookinfo App
    1. 12. Canary Release based on Ingress-Nginx
    1. 13. Application Store
  1. DevOps
    1. Pipeline
    1. Create SonarQube Token
    1. Credentials
    1. Set CI Node for Dependency Cache
    1. Set Email Server for KubeSphere Pipeline
  1. User Guide
    1. Configration Center
      1. Secrets
      2. ConfigMap
      3. Configure Image Registry
  1. Logging
    1. Log Query
  1. Developer Guide
    1. Introduction to S2I
    1. Custom S2I Template
  1. API Documentation
    1. API Documentation
    1. How to Access KubeSphere API
  1. Troubleshooting
    1. Troubleshooting Guide for Installation
  1. FAQ
    1. Telemetry
KubeSphere®️ 2020 All Rights Reserved.

Create a Job to Compute π to 2000 Places

Edit

A Job creates one or more Pods and ensures a specified number of them successfully terminate. You can also use a Job to run multiple Pods in parallel. For example, we can use Kubernetes Job to process and analyze data in batch.

Objective

This tutorial describes the basic features of a Job by creating a parallel job to compute π to 2000 places and print it out.

Prerequisites

  • You need to create a workspace, project and project-regular account. Please refer to the Getting Started with Multi-tenant Management if not yet.
  • You need to sign in with project-admin account and invite project-regular to enter the corresponding project if not yet. Please refer to Invite Member.

Estimated Time

About 15 minutes

Hands-on Lab

Create a Job

Step 1: Fill in Basic Information

Log in the KubeSphere console with project-regular account, then enter a project, navigate to Application Workloads → Jobs and click Create Job. Then fill in the basic information, e.g. job-demo as its name, and choose Next.

Job List

Step 2: Configure Job Settings

Set the four configuration parameters of the Job Spec as the following shown.

  • Back Off Limit:specifies the number of retries before the build job failed; Set to 5.
  • Completions:expected number of completed build jobs; Change the value from default 1 to 4.
  • Parallelism:expected maximum number of parallel build jobs; Change the value from default 1 to 2.
  • Active Deadline Seconds: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". Set to 300.

then click Next when you are done.

Job Settings

Step 3: Set the Job Template

Leave the RestartPolicy as Never, then click Add Container Image.

  • 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.

Enter perl in the image name and press return key, then scroll down to Start Command.

Job Container

Check Start Command, add the following command which performs a simple calculation and outputs the result of the Pi to 2000 places. Then click to save it and choose Next to finish this step.

perl,-Mbignum=bpi,-wle,print bpi(2000)

Job Start Command

Click Next to skip Mount Volumes. Click Create to complete job creation.

Job Demo

Verify the Job Result

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

Job Records

  1. In the Resource Status, you can inspect the Pod status. Since the Parallelism was set to 2, there are two Pods created in the first batch. Then it continues to create two more Pods. Finally four Pods are created at the end of the Job.

Job Resources

Tips: Since the creation of the container may encounter timed out, if the job fails, click ··· → Rerun from the list to rerun this job.

Rerun Job

  1. In the Resource Status tap, expand one of its Pod, then click into Container Logs to inspect the container logs which display the calculation result, i.e. PI to 2000 places.

Container Logs Entry

Container Logs

Congratulation! You have learned Job's basic functions. For further details, please refer to Jobs - Run to Completion.