{"id":41082068,"url":"https://github.com/neticdk/k8s-workshop","last_synced_at":"2026-01-22T13:41:42.301Z","repository":{"id":92018912,"uuid":"607210531","full_name":"neticdk/k8s-workshop","owner":"neticdk","description":"A workshop collection used in workshops with people as an introduction to Cloud Native and kubernetes","archived":false,"fork":false,"pushed_at":"2025-11-26T16:38:50.000Z","size":3904,"stargazers_count":19,"open_issues_count":1,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-11-29T13:49:05.893Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/neticdk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-02-27T14:41:38.000Z","updated_at":"2025-10-22T07:49:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"b9cc3bf9-a280-4103-b136-4f7971ee3cf1","html_url":"https://github.com/neticdk/k8s-workshop","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/neticdk/k8s-workshop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neticdk%2Fk8s-workshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neticdk%2Fk8s-workshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neticdk%2Fk8s-workshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neticdk%2Fk8s-workshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neticdk","download_url":"https://codeload.github.com/neticdk/k8s-workshop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neticdk%2Fk8s-workshop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28663846,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-22T13:41:41.401Z","updated_at":"2026-01-22T13:41:42.287Z","avatar_url":"https://github.com/neticdk.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Workshop with Kubernetes\nWelcome to this workshop. \nThe workshop is associated with a [slide deck](https://drive.google.com/file/d/1SUyXwHb4rnf6LD9Rf9Gfp3BJCXlcziwr/view?usp=sharing).\nMaterial used in the workshop is based on different examples from github, articles and kubernetes.io\n\n## Agenda\n\n- Introduction to Cloud Native - what it is and what it is not\n  - What is Cloud Native and what is Cloud\n  - Cloud deployment models (hybrid,  cross, multi)\n  - Cloud Native deployment models \n     - Public Cloud, \n     - Private Cloud, \n     - someones datacenter(s), \n     - your own datacenters(), \n     - a set of servers, \n     - a server, \n     - a workstation, \n     - a device, \n     - a car\n     - and more\n\n- Introduction to me/us\n  - `whoami` (who is talking) and `which` (what are we doing and why)\n\n- We see Cloud Native as the biggest unifier and abstraction seen so far\n  - A little more info about what Cloud native is and is not\n  - Why must you know about Cloud Native\n    What does it mean for you and your career?\n    The broadest and most practical and coolest abstraction sofar!\n    Covering everything from:\n     - embedded to,\n     - your machine, to \n     - your data centers, to \n     - other data centers, \n     - private cloud and \n     - public cloud(s)\n\n    Covering every programming language using containerisation.\n\n\n- Why do you want to work with Cloud Native?\n\n  First and foremost: You will be working with Cloud Native.\n\n  Regardless of what you will be doing:\n  - developer\n  - designer \n  - relliability engineer \n  - data scientist\n  - electronics engineeer\n  There will be Cloud Native Technology in code close to you.\n\n- Where can you learn more about Cloud Native?\n  - Cloud Native Meetup Community (Copenhagen, Aarhus, Aalborg) and in other Scandivian Countries or anywhere in the [world](https://community.cncf.io/chapters/)\n  - Experiment with it yourself on your laptop using e.g. kind (Kubernetes in Docker)\n  - Work someplace where they work with Kubernetes and other Cloud Native technologies are used for real (and secure) applications\n  - Come join us, join us on our mission to make Kubernetes and Cloud Native available in a secure and easy manner for real applications\n\n## Prerequisites\nThese are the things that you would have to install on your machine to run the examples.\n\n### Install a local package manager\nDependent on which operating system you use, the easiest way to install the workshop tooling is by using the package manager which is most suitable to your operating system, on windows that would typically be `choco`, on MacOs `brew` and on linux it could be `snap`, however it is up to you what you prefer. If you happen to have some of the tools installed already, you may want to write `upgrade` instead of ìnstall`in the commands below.\n\n* Please install `[choco](https://chocolatey.org/install)` on Windows, if you do not already have it installed. Be sure to rightclick on the Powershell and select run as Administrator\n* Please install `[brew](https://brew.sh/)` on Mac, if you do not already have iyt installed.\n* May install what you like on Linux (You probably already did), however `[brew](https://docs.brew.sh/Homebrew-on-Linux)` could work for you on linux, if you are not already familiar with another package setup. \n\n\n### Docker Desktop\nAs we will be working with a local Kubernetes installation based on Docker a Docker Desktop\ndistribution needs to be installed.\n\nSee [Install Docker Engine](https://docs.docker.com/engine/install/). \nBe sure to find your Operating system and follow the instructions for that.\n\nIt may also be possible to install the desktop using your package manager\n\n**brew**\n\n```\nbrew install --cask docker  \n```\n\n**choco**\n\n```\nchoco install docker-desktop\n```\n\n### Git CLI\n\nWe will be collecting workshop from github, which is why you need a git client.\n\n**brew**\n\n```\nbrew install git\n```\n\n**choco**\n\n```\nchoco install git\n```\n\n### Curl\n\nWe will be testing our deployments, which is why you need curl.\n\n**brew**\n\n```\nbrew install curl\n```\n\n**choco**\n\n```\nchoco install curl\n```\n\n\n### Kubernetes CLI\nThe `kubectl` cli allows access to interact with the Kubernetes cluster. This can be installed\nfrom package managers.\n\n### Conventions\nCommands are presented with code blocks, shown like so:\n```\necho \"hello world\"\n```\n\nIf you see commands like cat, they will only work on Mac, Linux, and in the windows linux subsystem, if you are on native windows you can try `type`, if you see curl\n\n**brew**\n\n```console\nbrew install kubernetes-cli\n```\n\n**choco**\n\n```console\nchoco install kubernetes-cli\n```\n\nFor other ways of installing `kubectl` in Windows see [Install and Set Up kubectl on Windows](https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/)\n\n### Kubernetes in Docker (kind)\n\nWe will be running a local Kubernetes cluster based on the Kubernetes distribution called\n[kind](https://kind.sigs.k8s.io) - which is short for Kubernetes in Docker. This can be\ninstalled using most package managers.\n\n**brew**\n\n```\nbrew install kind\n```\n\n**choco**\n\n```\nchoco install kind\n```\n\n**Other**\n\nFor other install options see [Quick Start](https://kind.sigs.k8s.io/docs/user/quick-start/)\n\n### k9s\n\nOprinally the [k9s](https://k9scli.io/) utility can help browsing and managing the Kubernetes cluster\nproviding a layer on top of the standard `kubectl` cli.\n\n**brew**\n\n```\nbrew install k9s\n```\n\n**choco**\n\n```\nchoco install k9s\n```\n\n### Helm\n\nA few of the examples require the [Helm](https://helm.sh/) tool to install packages into the Kubernetes cluster.\n\n**brew**\n\n```\nbrew install helm\n```\n\n**choco**\n\n```\nchoco install kubernetes-helm\n```\n\nIn the same way install `curl`, `docker` and `git`if you do not have these installed already\n\nAlternate [Installing Helm](https://helm.sh/docs/intro/install/)\n\n### Checking your install\n\nYou can check that you have the tools available running. \nYou need to be administrator of your machine, and please check the session about Windows if you are using a Windows machine.\nAnd please observe if you are using a corporate controlled machine, that may include blocking software. \nWhich may make it difficult to get a successful check.\n\nMake sure that the docker destop is running, if you are on windows you may see a virtualisation warning, in order to fix that you will have to go into the bios of the machine and enable virtualisation. \n\n\n```console\ndocker version\ngit version\nkind version\nhelm version\nk9s version\ncurl --version\n```\n\nThis should inform you about the `docker`, `kind` etc. whether they are installed and your PATH is updated, furthermore you may check if any clusters are already running. If you are experienceing any problems with the check above, you rerun the brew command `brew install \u003ctool\u003e`as `brew reinstall \u003ctool\u003e` and `choco install \u003ctool\u003e`as `choco install \u003ctool\u003e --force`\n\nMake sure you have started the installed `docker desktop`.\n\n## Please remember the purpose of the workshop\nPlease remember this is created for you to learn basic suff about kubernetes and to have an environment set up on you local workstation or laptop.\nWhen you work through the workshops, by all means copy and paste commands, to avoid being stuck in misspelled commands. \nPlease do reflect over each thing you do and try to deduct, what you did and and what was the result. \n\n## Excercises\n- Lets start with what you can do in this room today\n  - Let us get you signed up for Cloud Native Aalborg (https://community.cncf.io/aalborg/ and `join`)\n  - Let us make sure you know where you get a coffe and a chat about Cloud Native and Kubernetes\n  - Experiment with it yourself on your laptop ifo Kubernetes (there are a number of distributions and also some for you laptop)\n    - [kubernetes](./simple-kubernetes) - start with this one\n    - [ingress](./simple-kubernetes-with-ingress) - then go on to this one\n    - [observability](./observability)\n    - [kubedoom](./kubedoom)\n    - or one of the other workshops\n  \n## If you are using Windows on your laptop\nThere are some few thing that may work in a different way under windows.\n\nYou may want to copy the lines from the shell scripts under each folder instead using the scripts:\n- create_cluster.sh which would be e.g. `kind create cluster --name workshop --config=kind-config.yaml`\n- delete_cluster.sh which would be e.g. `kind delete cluster --name workshop`\nwhen creating and deleting local clusters.\n\nThe gatering of metrics in the observability workshop may not work for you, as grafana does not pick up the metrics.\n\n## If you experience an older kind kubernetes version\nYou can add to the config yaml file, under nodes:\n```yaml\nkind: Cluster\napiVersion: kind.x-k8s.io/v1alpha4\nnodes:\n- role: control-plane\n- role: worker\n  image: kindest/node:v1.25.3\n```\n\n## If you want to play more with Kubernetes\n[Kubernetes Playground](https://Kubernetes.io/docs/tutorials/kubernetes-basics/)\n\nThere are some articles that you can follow if you want to do more:\n\n- https://opensource.com/article/21/6/kube-doom\n\n- https://kubernetes.io/blog/2020/01/22/kubeinvaders-gamified-chaos-engineering-tool-for-kubernetes/\n\n- https://github.com/Jorricks/Whac-a-mole-kubernetes\n\n- https://grafana.com/tutorials/k8s-monitoring-app/\n\n- https://grafana.com/grafana/dashboards/315-kubernetes-cluster-monitoring-via-prometheus/\n\n- https://github.com/kubernetes/examples\n\n- https://www.containiq.com/post/kubernetes-projects-for-beginners\n\n- https://www.weave.works/blog/deploying-an-application-on-kubernetes-from-a-to-z\n\n- https://github.com/javajon/kubernetes-observability (old)\n\n- https://github.com/evry-bergen/kubernetes-workshop/tree/master/labs/1-pods\n\n- https://williamlam.com/2020/06/interesting-kubernetes-application-demos.html\n\n- https://github.com/Jorricks/Whac-a-mole-kubernetes\n\n- https://github.com/luxas/kubeadm-workshop\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneticdk%2Fk8s-workshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneticdk%2Fk8s-workshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneticdk%2Fk8s-workshop/lists"}