Table of Contents
Kubernetes
The following is a set of possible use cases for Kubernetes/Containers based on existing workflows - particularly related to CIS Undergraduate Courses.
Visual Studio Code
SoCS Students are increasingly using remote code execution through Visual Studio Code to write and test their assignments. Assignments are coded through VS Code on a students personal computer, which then connects to a remote environment in which it executes the code. This is currently typically done on the SoCS Linux/NoMachine cluster.
It is also possible to use Kubernetes containers as a remote execution environment. This has two major benefits.
- Each container is run independently of any other student environments. This makes it easier to limit resources
- As each development environment is a Docker container, it is easy to provide a customized environment for courses or even individual requirements.
Below are two VSCode Remote Kubernetes Options.
Okteto Extension
Instructor Workflow
- Instructors will define the software required for their course/assignment/project.
- SoCS IT will build a Docker Container based on these specifications.
- A customized yaml file will be provided to each student which defines their work environment to use the specified Docker Container. See an example below.
name: socslinux-test image: socsguelph/socslinux:latest autocreate: true workdir: /tmp command: ["bash"] namespace: vscodetest volumes: - /root/.vscode-server # persist vscode extensions securityContext: capabilities: add: - SYS_PTRACE persistentVolume: enabled: true storageClass: nfs-client
Student Workflow
First set up the dev environment to install the extensions and configuration files required to connect to Kubernetes. These steps only need to be done once.
- Install the Okteto Extension in VSCode.
- Download the Kubeconfig and add to local machine.
Set up the project. This needs to be done once for each project.
- Create a folder/git repo to hold code, and add the above yaml file to it.
- Create a namespace in Kubernetes to work within.
Daily Workflow.
- Run Okteto Extension from within VSCode to connect to remote environment
- Code and Test