Kubernetes User Guide

From CSCWiki
Revision as of 22:24, 10 September 2026 by A2lianto (talk | contribs) (Created Kubernetes User Guide for new k3s cluster)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Kubernetes

We are running a Kubernetes cluster on-prem on Tahini and Teriyaki servers. Each member gets their own namespace in which they can deploy their applications.

Template:Info

Account resource limits

As of August 23, 2026, the per-namespace resource limits for each member are:

  • 40 pods
  • 10 jobs
  • 10 cron jobs
  • 25 GB of Persistent Volume Claims
  • 5 NodePort services

If you wish to acquire more resources, please send an email to the Systems Committee with a brief justification.

Template:Info

Create a new namespace

Log into a general-use machine and run the following:

ceo k8s account activate

This will create a new Kubernetes namespace with the name csc-username. A new kubeconfig file will be placed into ~/.kube/config. Your kubeconfig points at your namespace by default, so all commands you run will land there unless you specify otherwise. To verify that everything is working, run:

kubectl cluster-info

The output should look something like this:

Kubernetes control plane is running at https://129.97.134.5:6443 CoreDNS is running at https://129.97.134.5:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

Quickstart

Say you have a Dockerized app and the image is available on a public registry such as Docker Hub or Quay.io. Here is the minimum you need to get your app running in the cluster.

First, create a Deployment:

kubectl create deployment demo --image=ctdalek/myapp --port=80

Replace --image and --port as needed. If your app does not need to be publicly accessible, you are done. Otherwise, create a Service to expose your Deployment:

kubectl expose deployment demo

Then create an Ingress to expose the Service to the outside world:

kubectl create ingress demo --rule='ctdalek.k8s.csclub.cloud/*=demo:80'

Your app will be accessible at https://ctdalek.k8s.csclub.cloud. If you wish to use a custom domain, please contact the Systems Committee.

For non-web apps, use a NodePort instead of an Ingress. NodePorts are only accessible from on-campus.

Further reading

Kubernetes is well documented, so we will not repeat it here:

You may also contact the Systems Committee if something is not working the way you expect.