# Supported Environments
To use any of the following, specify the corresponding
imageid within your scenario's
index.json. Note each row includes links to a live example and source.
|Environment||Implementation Notes||ImageID||Example / Code|
|Ubuntu 18.04||Docker installed and running|| ||Example / Code|
|Ubuntu 20.04||Docker installed and running|| ||Example / Code|
|Kubernetes Cluster 1.18||2 nodes with kubeadm installed, nothing running. Based on Ubuntu. Designed for teaching how to use Kubernetes from scratch. See additional implementation notes below.|| ||Example / Code|
|Kubernetes Cluster 1.18 (Pre-configured)||2 node cluster with 1 main, 1 node. Based on Ubuntu. Run || ||Example / Code|
|Java / Scala|| ||Example / Code|
|Kotlin|| ||Example / Code|
|Python 3.6|| ||Example / Code|
|Python 3.7|| ||Example / Code|
|Python 3.8|| ||Example / Code|
|Go|| ||Example / Code|
|Rust|| ||Example / Code|
|Ruby|| ||Example / Code|
|C# (dotnet core 6.0)|| ||Example / Code|
|R|| ||Example / Code|
|Node.js|| ||Example / Code|
|Bash||Lightweight Linux instance without Docker|| ||Example / Code|
Test all the environments and find source files here:
# Deprecated Environments
Do not use any of the images below, as they will be removed in the future. If any of your scenarios reference these environments, a warning will appear on your katacoda.com profile page, encouraging you to update to one of the supported images listed above.
|Docker||Docker installed and running|
|Ubuntu 16.04||Docker installed and running|
|Ubuntu 19.04||Docker installed and running|
|Centos 7||Docker installed and running||TBC|
|Kubernetes Cluster 1.21||2 nodes with kubeadm installed, nothing running. Based on Ubuntu. |
Designed for teaching how to use Kubernetes from scratch
|Kubernetes Cluster 1.21 (Pre-configured)||2 node cluster with 1 main, 1 node. Based on Ubuntu. |
# Implementation Notes
Certain environments have additional functionality or items to be aware of when working with them.
# Kubernetes / Minikube Port Forwarding
If you are planning to use the
kubectl port-forward functionality within your scenario then please be aware that by default this only accepts connections from 127.0.0.1 and as such the Katacoda Proxy won't be able to access the port. Instead, please ensure that the command binds to 0.0.0.0 using
kubectl port-forward --address 0.0.0.0.
# Kubernetes Cluster Running
With the running environment we aim that the user will always connect. However, when we have an unexpected load spike the cluster might still be starting when the user is connected.
To provide the user with feedback, we recommend that you automatically run a script called
launch.sh when the user connects by calling it inside of your
background.sh file(s). This can be done automatically via a Foreground Script.
launch.sh, users will see the following error when they attempt to access Kubernetes before it has started:
The connection to the server localhost:8080 was refused - did you specify the right host or port?