https://github.com/carv-ics-forth/hpk

HPK allows running Kubernetes applications within HPC by translating deployments to Slurm and Singularity/Apptainer

https://github.com/carv-ics-forth/hpk

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.9%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

HPK allows running Kubernetes applications within HPC by translating deployments to Slurm and Singularity/Apptainer

Basic Info
  • Host: GitHub
  • Owner: CARV-ICS-FORTH
  • License: apache-2.0
  • Language: Go
  • Default Branch: main
  • Homepage:
  • Size: 24 MB
Statistics
  • Stars: 21
  • Watchers: 8
  • Forks: 7
  • Open Issues: 20
  • Releases: 3
Created over 3 years ago · Last pushed 10 months ago
Metadata Files
Readme Changelog License

README.md

High-Performance Kubernetes

High-Performance Kubernetes (HPK), allows HPC users to run their own private "mini Clouds" on a typical HPC cluster. HPK uses a single container to run the Kubernetes control plane and a Virtual Kubelet Provider implementation to translate container lifecycle management commands from Kubernetes-native to Slurm/Apptainer.

To allow users to run HPK, the HPC environment should have Apptainer configured so that:

  • It allows users to run containers with --fakeroot.
  • It uses a CNI plug-in that hands over private IPs to containers, which are routable across cluster hosts (we use flannel and the flannel CNI plug-in).

In contrast to a typical Kubernetes installation at the Cloud:

  • HPK uses a pass-through scheduler, which assigns all pods to the single hpk-kubelet that represents the cluster. In practice, this means that all scheduling is delegated to Slurm.
  • All Kubernetes services are converted to headless. This avoids the need for internal, virtual cluster IPs that would need special handling at the network level. As a side effect, HPK services that map to multiple pods are load-balanced at the DNS level if clients support it.

HPK is a continuation of the KNoC project, a Virtual Kubelet Provider implementation that can be used to bridge Kubernetes and HPC environments.

Trying it out

First you need to configure Apptainer for HPK. The install-environment.sh script showcases how we implement the requirements in a single node for testing.

Once setup, compile the hpk-kubelet using make.

bash make build

Then you need to start the Kubernetes Master and hpk-kubelet seperately.

To run the Kubernetes Master:

bash make run-hpk-master

Once the master is up and running, you can start the hpk-kubelet:

bash make run-kubelet

Now you can configure and use kubectl:

bash export KUBE_PATH=~/.hpk-master/kubernetes/ export KUBECONFIG=${KUBE_PATH}/admin.conf kubectl get nodes

In case that you experience DNS issues, you should retry starting the Kubernetes Master with: export EXTERNAL_DNS=<your dns server> make run-kubemaster

The above command will set CoreDNS to forward requests for external names to your DNS server.

Publications/presentations

The latest paper on HPK is available at arXiv. A previous edition of this work was presented at WOCC'23 ("The International Workshop on Converged Computing on Edge, Cloud, and HPC", held in conjunction with ISC-HPC 2023).

The corresponding BibTeX entry is the following: bibtex @misc{hpk, title={Running Cloud-native Workloads on HPC with High-Performance Kubernetes}, author={Antony Chazapis and Evangelos Maliaroudakis and Fotis Nikolaidis and Manolis Marazakis and Angelos Bilas}, year={2024}, eprint={2409.16919}, archivePrefix={arXiv}, primaryClass={cs.DC}, url={https://arxiv.org/abs/2409.16919}, }

HPK was presented at FOSDEM 2025; slides and video from the event are available.

Acknowledgements

We thankfully acknowledge the support of the European Commission and the Greek General Secretariat for Research and Innovation to this project. HPK has received funding from the European Union’s Horizon Europe research and innovation programme through project RISER ("RISC-V for Cloud Services", GA-101092993), from the EuroHPC Joint Undertaking through projects EUPEX (GA-101033975) and DEEP-SEA (GA-955606), as well as from the Chips Joint Undertaking through project REBECCA ("Reconfigurable Heterogeneous Highly Parallel Processing Platform for safe and secure AI", GA-101097224). EuroHPC JU and Chips JU projects are jointly funded by the European Commission and the involved state members (including the Greek General Secretariat for Research and Innovation).

Owner

  • Name: Computer Architecture and VLSI Systems (CARV) Laboratory
  • Login: CARV-ICS-FORTH
  • Kind: organization
  • Location: Heraklion, Greece

GitHub Events

Total
  • Watch event: 7
  • Push event: 2
  • Pull request review event: 4
  • Pull request review comment event: 4
  • Pull request event: 2
  • Fork event: 3
Last Year
  • Watch event: 7
  • Push event: 2
  • Pull request review event: 4
  • Pull request review comment event: 4
  • Pull request event: 2
  • Fork event: 3

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 81
  • Total pull requests: 87
  • Average time to close issues: 25 days
  • Average time to close pull requests: 1 day
  • Total issue authors: 3
  • Total pull request authors: 4
  • Average comments per issue: 0.78
  • Average comments per pull request: 0.02
  • Merged pull requests: 73
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 6
  • Average time to close issues: N/A
  • Average time to close pull requests: 16 days
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • fnikolai (31)
  • chazapis (11)
  • soerenmetje (1)
Pull Request Authors
  • fnikolai (42)
  • malvag (4)
  • chazapis (1)
  • gpetsis (1)
  • soerenmetje (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 3
  • Total downloads: unknown
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 9
proxy.golang.org: github.com/CARV-ICS-FORTH/HPK
  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 8.7%
Average: 9.3%
Dependent repos count: 9.8%
Last synced: 7 months ago
proxy.golang.org: github.com/CARV-ICS-FORTH/hpk
  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 8.7%
Average: 9.3%
Dependent repos count: 9.8%
Last synced: 7 months ago
proxy.golang.org: github.com/carv-ics-forth/hpk
  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 8.8%
Average: 9.3%
Dependent repos count: 9.9%
Last synced: 6 months ago