Cron Jobs

A cron job runs a job according to a specified schedule. A cron job object is similar to a line of a crontab file in Linux.

Creating a Cron Job

  1. Log in to the CCI console. In the navigation pane, choose Workloads > Cron Jobs. On the page displayed on the right, click Create Cron Job.
  2. Configure basic information.

    • Job Name

      Enter 1 to 63 characters starting and ending with a letter or digit. Only lowercase letters, digits, hyphens (-), and periods (.) are allowed. You cannot enter consecutive periods or place a hyphen before or after a period. The job name cannot be changed after creation. If you need to change the name, create a new job.

    • Namespace

      Select a namespace. If no namespaces are available, create one by following the procedure provided in Namespace.

    • Description

      Enter a description, which cannot exceed 250 characters.

    • Pod Specifications

      You can select GPU-accelerated and allocate GPUs to the workload only if the namespace is a GPU-accelerated namespace.

      Currently, three types of pods are provided, including general-computing (used in general-computing namespaces), RDMA-accelerated, and GPU-accelerated (used in GPU-accelerated namespaces).

      GPU-accelerated pods support the following GPUs: NVIDIA Tesla V100 32GB and NVIDIA Tesla V100 16GB.
      • Specifications of NVIDIA Tesla V100 32GB are as follows:
        • NVIDIA Tesla V100 32GB x 1, 4 CPU cores, 32 GB memory
        • NVIDIA Tesla V100 32GB x 2, 8 CPU cores, 64 GB memory
        • NVIDIA Tesla V100 32GB x 4, 16 CPU cores, 128 GB memory
        • NVIDIA Tesla V100 32GB x 8, 32 CPU cores, 256 GB memory
      • Specifications of NVIDIA Tesla V100 16GB are as follows:
        • NVIDIA Tesla V100 16GB x 1, 4 CPU cores, 32 GB memory
        • NVIDIA Tesla V100 16GB x 2, 8 CPU cores, 64 GB memory
        • NVIDIA Tesla V100 16GB x 4, 16 CPU cores, 128 GB memory
        • NVIDIA Tesla V100 16GB x 8, 32 CPU cores, 256 GB memory

      Region CN North-Beijing4 supports only NVIDIA Tesla V100 32GB GPUs.

      CCI supports NVIDIA GPU drivers 410.104 and 418.126. The CUDA toolkit used in your application must meet the requirements listed in Table 1. For details about the compatibility between CUDA toolkits and drivers, see CUDA Compatibility at https://www.nvidia.com.

      Table 1 Compatibility between NVIDIA GPU drivers and CUDA toolkits

      NVIDIA GPU Driver Version

      CUDA Toolkit Version

      410.104

      CUDA 10.0 (10.0.130) or earlier

      418.126

      CUDA 10.1 (10.1.105) or earlier

      If the pod type is not GPU-accelerated, the container specifications you select must meet the following requirements:
      • The total number of CPU cores in a pod can be a value in the range of 0.25-32, 48, or 64. The total number of CPU cores in a container is an integer multiple of 0.25.
      • The total memory size (in GB) of a pod is an integer from 1 to 512.
      • The ratio of CPU cores to memory size in a pod ranges from 1:2 to 1:8.
      • A pod can have a maximum of five containers. The minimum configuration of a container is 0.25 cores and 0.2 GB. The maximum configuration of a container is the same as that of a pod.
    • Configure Container
      A pod generally contains only one container. It can also contain multiple containers created from different images. If your application needs to run on multiple containers in a pod, click Add Container and then select an image.

      If different containers in a pod listen to the same port, a port conflict will occur and the pod may fail to start. For example, if an Nginx container (which listens to port 80) has been added to a pod, a port conflict will occur when another HTTP container in the pod tries to listen to port 80.

      • My Images: images you have uploaded to SWR

        If you are an IAM user, you must obtain permissions before you can use the private images of your account. For details on how to set permissions, see (Optional) Uploading Images.

        Currently, CCI cannot interconnect with third-party image repositories.

      • Open Source Images: displays public images in the image center.
      • Shared Images: images shared by others through SWR

      Select the image version and set the container name and CPU and memory specifications (the minimum configuration of a single container is 0.25 cores and 0.2 GB). You can also enable the collection of standard output files. If you enable file collection, you will be billed for Application Operations Management (AOM) according to the log storage space you use.

      AOM provides each account 500 MB log storage space for free each month. You will be billed for any extra space you use on a pay-per-use basis. For details, see Pricing Details.

      In a GPU-accelerated pod (available only in GPU-accelerated namespaces), only one container can use GPUs. If there are multiple containers in your pod, you can enable the GPU option and specify the container that can use GPUs.

      You can also configure the following advanced settings for a container:

      • Storage: You can mount persistent volumes to containers. Currently, SFS volumes are supported. Click the Add SFS Volume tab, and set the volume name, capacity, container path, and disk type. After the cron job is created, you can manage the storage volumes. For details, see SFS Volumes.
      • Log Collection: Application logs will be collected in the path you set. You need to configure policies to prevent logs from being over-sized. Click Add Log Storage, enter a container path for storing logs, and set the upper limit of log file size. After the workload is created, you can view logs on the AOM console. For details, see Log Management.
      • Environment Variables: You can manually set environment variables or add variable references. Environment variables add flexibility to workload configuration. The environment variables for which you have assigned values during container creation will take effect upon container startup. This saves you the trouble of rebuilding the container image.

        To manually set variables, enter the variable name and value.

        To reference variables, set the variable name, reference type, and referenced value for each variable. The following variables can be referenced: PodIP (pod IP address), PodName (pod name), and Secret. For details about how to create a secret reference, see Secrets.

      • Liveness Probe: You can configure a liveness probe for customized health check of the container. If the container fails the check, the CCI will stop the container and determine whether to restart the container based on the restart policy. For details about how to configure a liveness probe, see Setting Health Check Parameters.
      • Lifecycle: Lifecycle scripts specify actions that applications take when a lifecycle event occurs. For details about how to configure the scripts, see Container Lifecycle.
      • Startup Commands: You can set the commands to be executed immediately after the container is started. Startup commands correspond to the ENTRYPOINT startup instructions of the container engine. For details, see Setting Container Startup Commands.
      • Configuration Management: You can mount ConfigMaps and secrets to a container. For details about how to create ConfigMaps and secrets, see ConfigMaps and Secrets.

  3. Click Next: Timing Rule and configure advanced settings.

    • Concurrency Policy
      • Forbid: A new job cannot be created until the previous job is completed.
      • Allow: New jobs can be created continuously.
      • Replace: A new job replaces the previous job when it is time to create a job even if the previous job has not been completed.
    • Timing Rule: Set the schedule according to which the job is executed.
    • Job Record: Set the number of records to be retained for successful jobs and failed jobs.

  4. Click Next: Confirm. After you confirm the configuration, click Submit. Then click Back to Cron Job List.

    If the job status is Started, the cron job is created successfully. You can click the job name to view job details and press F5 to view the real-time job status.

Creating a Cron Job Using kubectl

For details, see Creating a Cron Job.