Engineering Blog

                            

PAS: The Future of Kubernetes Scheduling is Here

Platform Aware Scheduling (PAS) is revolutionizing how workloads are assigned in Kubernetes environments. By exposing platform-specific attributes to the Kubernetes scheduler, PAS enhances the scheduler’s decision-making capabilities using a modular, policy-driven approach. This innovative project comprises a core library and information for building custom scheduler extensions, as well as specific implementations that can be directly used in a working cluster or serve as references for creating new Kubernetes scheduler extensions.

Key Implementations of Platform Aware Scheduling

Telemetry Aware Scheduling (TAS)

Telemetry Aware Scheduling is the initial reference implementation of PAS. It allows the Kubernetes scheduler to consider platform-level metrics for filtering and prioritizing workloads. This enables more efficient resource utilization and better workload performance. Learn more about TAS here.

GPU Aware Scheduling

This implementation of PAS focuses on GPU resources, allowing Kubernetes to efficiently schedule workloads that require GPU acceleration. By exposing GPU-specific attributes to the scheduler, GPU Aware Scheduling ensures that GPU resources are optimally utilized.

Leveraging Kubernetes Scheduler Extenders

What Are Scheduler Extenders?

Scheduler extenders empower the core Kubernetes scheduler to make HTTP calls to an external service, which can then influence scheduling decisions. This capability is crucial for providing workload-specific scheduling guidance based on attributes that are not typically visible to the Kubernetes scheduler.

The extender package at the top level of the PAS repository can be used to quickly create a functional scheduler extender.

Enabling a Scheduler Extender

Scheduler extenders are enabled by providing a scheduling configuration file to the default Kubernetes scheduler. Here’s an example configuration file:

yamlCopy codeapiVersion: kubescheduler.config.k8s.io/v1beta2
kind: KubeSchedulerConfiguration
clientConnection:
  kubeconfig: /etc/kubernetes/scheduler.conf
extenders:
  - urlPrefix: "https://tas-service.telemetry-aware-scheduling.svc.cluster.local:9001"
    prioritizeVerb: "scheduler/prioritize"
    filterVerb: "scheduler/filter"
    weight: 1
    enableHTTPS: true
    managedResources:
      - name: "telemetry/scheduling"
        ignoredByScheduler: true
    ignorable: true
    tlsConfig:
      insecure: false
      certFile: "/host/certs/client.crt"
      keyFile: "/host/certs/client.key"

This configuration file specifies options under the “extenders” configuration object, such as urlPrefix, filterVerb, and prioritizeVerb, which direct the Kubernetes scheduler to the scheduling service. Additionally, fields like managedResources, ignorable, and weight fine-tune the scheduler’s behavior.

Adding a New Extender to Platform Aware Scheduling

PAS is designed to host multiple hardware-enabling Kubernetes Scheduler Extenders within a single repository. To add a new scheduler, simply submit an issue and pull request. Each project within the top-level repo has its own Go module, dependency model, and lifecycle, which means some development tools and testing workflows may need to be conducted within the specific Go module’s directory.

Communication and Contribution

Reporting Bugs and Contributing

To report a bug, file a new issue in the repository. Contributions are welcome through pull requests, and detailed instructions on creating pull requests can be found in the repository documentation.

Reporting Security Vulnerabilities

If you discover a potential security vulnerability in TAS, email secure@intel.com with details including the affected projects and versions, a detailed description of the vulnerability, and information on known exploits. Encrypt all security vulnerability reports using our PGP key to maintain confidentiality.

A member of the Intel Product Security Team will review your report and collaborate on resolving the issue. For more information on how Intel handles security issues, see their vulnerability handling guidelines.

Conclusion

Platform Aware Scheduling significantly enhances the Kubernetes scheduler by incorporating platform-specific attributes into the scheduling process. With implementations like Telemetry Aware Scheduling and GPU Aware Scheduling, PAS ensures efficient resource utilization and optimized workload performance. By leveraging Kubernetes Scheduler Extenders, PAS provides flexible and powerful scheduling capabilities tailored to your specific needs. Engage with the PAS community, contribute to its development, and take full advantage of the advanced scheduling features it offers.

Explore more about PAS and join the community to help shape the future of Kubernetes scheduling.

Reference to the Article : Github

Follow us for more Updates

Previous Post
Next Post