The National Research Platform (NRP) is a community-owned research and education platform connecting researchers and educators to foster collaboration, accelerate innovation, and share resources. Supported by over 50 institutions, including leadership from UC San Diego, the University of Nebraska-Lincoln, and the Massachusetts Green High Performance Computing Center, the NRP provides access to cutting-edge technologies in AI, high-performance computing, data storage, and networking. Open to all nonprofit higher education institutions, from community colleges to top research universities, the NRP advances learning and scientific breakthroughs with support from the U.S. National Science Foundation, Department of Energy, and Department of Defense among others.
AI: The National Research Platform supports research, education, classes, and workshops, offering modern GPUs, FPGAs, and specialized hardware for advanced AI projects.
Network Experiment: The NRP nodes are distributed around the world and allow network experiments that are impossible on other clusters.
Resources for Classroom: The NRP provides resources for educators to use in their classrooms, including GPUs, CPUs, and storage accessible through convenient interfaces like JupyterHub and Coder.
Large Data Pools: Mount your data across the world and use this storage in your experiments.
If you are a PI or a Course Instructor, please contact hpc-supportATcase.edu to get a Namespace for your K8s/LLMs resources. You will get a Namespace and an administrator designation, so you can add students to your Namespace.
If you are a student, please contact your PI or your Course Instructor to be added to their Namespace.
More information on the NRP's website.
Introduction in the NRP's website: https://nrp.ai/documentation/userdocs/tutorial/introduction/
If you have some questions about the NRP usage, you can contact their support at https://element.nrp-nautilus.io/#/room/#general:matrix.nrp-nautilus.io
The NRP's website lays out the basic steps: https://nrp.ai/documentation/userdocs/start/getting-started/, which is essentially 1) Get kubectl binary, 2) Install kubelogin, 3) Download the kubelogin config file, 4) Authenticate to the NRP K8s cluster with the config file, 5) Run the K8s pods or deployments.
You can download the kubectl binary by following the Getting Started Guide.
Install kubelogin via krew. First create krew_install.sh. Required packages: git, curl.
set -x
cd "$(mktemp -d)"
OS="$(uname | tr '[:upper:]' '[:lower:]')"
ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')"
KREW="krew-${OS}_${ARCH}"
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz"
tar zxvf "${KREW}.tar.gz"
./"${KREW}" install krew
Install kubelogin
chmod +x krew_install.sh
./krew_install.sh
Add export PATH=“${KREW_ROOT:-$HOME/.krew}/bin:$PATH” to the .bashrc, and source the .bashrc to activate the new path.
Install the oidc-login module.
kubectl krew install oidc-login
Download the config file and copy it to ~/.kube/config
wget https://nrp.ai/config
Update ~/.kube/config file with --token-cache-storage=disk, replacing keyring with disk. Run "kubectl get nodes" to authenticate.
Since oidc-login itself is not working (for HPC), we need to provide the info from ~/.kube/config. You can also try the section “Using kubectl in console with no browser” section.
kubectl oidc-login get-token --token-cache-storage=disk --oidc-issuer-url=https://authentik.nrp-nautilus.io/application/o/k8s/ --oidc-client-id=xxxx --listen-address=0.0.0.0:8000 --oidc-extra-scope=profile,offline_access