Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New "Learning Environment" Page #49299

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/en/docs/setup/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ bare metal environments.

If you're learning Kubernetes, use the tools supported by the Kubernetes community,
or tools in the ecosystem to set up a Kubernetes cluster on a local machine.
See [Install tools](/docs/tasks/tools/).
See [learning environment](/docs/setup/learning-environment/).

## Production environment

Expand Down
64 changes: 41 additions & 23 deletions content/en/docs/setup/learning-environment/_index.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,53 @@
---
title: Learning environment
weight: 20
description: Tools to try out Kubernetes locally
no_list: true
---
<!-- overview -->

<!--
{{/* There is a Netlify redirect from this page to /docs/tasks/tools/ */}}
{{/* This page content only exists to provide a navigation stub */}}
{{/* and to protect in case that redirect is one day removed. */}}
This page outlines some tools that you can use to set up a local Kubernetes cluster to try out Kubernetes concepts and features.
Before diving into setup, it's highly recommended to familiarize yourself with core Kubernetes concepts. You can find these in the [Concepts](/docs/concepts) section.

{{/* If you're localizing this page, you only need to copy the front matter */}}
{{/* and add a redirect into "/static/_redirects", for YOUR localization. */}}
-->
<!--
## kind

[`kind`](https://kind.sigs.k8s.io/docs/) lets you run Kubernetes on
your local computer. This tool requires that you have
[Docker](https://docs.docker.com/get-docker/) installed and configured.
<!-- body -->

The kind [Quick Start](https://kind.sigs.k8s.io/docs/user/quick-start/) page
shows you what you need to do to get up and running with kind.
## How to communicate with a Kubernetes cluster?
When working with Kubernetes, you need a way to interact with and manage your cluster. This involves tasks such as deploying applications, inspecting resources, and debugging issues. The `kubectl` command-line tool serves as the primary interface for communicating with a configured Kubernetes cluster, allowing you to send commands and receive responses to and from the cluster's API server.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
You'll need to [install kubectl](/docs/tasks/tools/#kubectl) unless you choose a learning environment
that provides it for you.

## minikube
For more information including a complete list of kubectl operations, see the [`kubectl` reference documentation](/docs/reference/kubectl).

Like `kind`, [`minikube`](https://minikube.sigs.k8s.io/) is a tool that lets you run Kubernetes
locally. `minikube` runs a single-node Kubernetes cluster on your personal
computer (including Windows, macOS and Linux PCs) so that you can try out
Kubernetes, or for daily development work.
kubectl is installable on a variety of Linux platforms, macOS and Windows. Find your preferred operating system [here](/docs/tasks/tools/#kubectl).

You can follow the official
[Get Started!](https://minikube.sigs.k8s.io/docs/start/) guide if your focus is
on getting the tool installed.
-->


## Options for trying out Kubernetes locally
To experiment with Kubernetes locally, you need tools that allow you to simulate a Kubernetes cluster on your machine. These tools create lightweight clusters for testing, development, or learning purposes without requiring extensive infrastructure.

### 1. kind
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As a project, we recommend minikube over kind. kind was originally a tool for development rather than learning (but is still a viable option).

You could also make a heading that combines them, listing them in alphabetical order; that is:

Suggested change
### 1. kind
### 1. kind and minikube {#kind-and-minikube}

[`kind`](https://kind.sigs.k8s.io/) lets you run Kubernetes on your local computer. This tool requires that you have either [Docker](https://www.docker.com/) or [Podman](https://podman.io/) installed.

The kind [Quick Start](https://kind.sigs.k8s.io/docs/user/quick-start/) page shows you what you need to do to get up and running with kind.

### 2. minikube
Like `kind`, [`minikube`](https://minikube.sigs.k8s.io/) is a tool that lets you run Kubernetes locally. `minikube` runs an all-in-one or a multi-node local Kubernetes cluster on your personal computer (including Windows, macOS and Linux PCs) so that you can try out Kubernetes, or for daily development work.

You can follow the official [Get Started](https://minikube.sigs.k8s.io/docs/start/) guide to set it up.

### 3. Other 3rd party tools
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### 3. Other 3rd party tools
### 3. Other 3rd party tools {#third-party-tools}

Avoid putting the number into the fragment identifier.

There are additional tools like [MicroK8s](https://microk8s.io/docs) and [k3d](https://k3d.io/stable/) for running Kubernetes clusters locally.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs a third party content marker. How about:

Suggested change
There are additional tools like [MicroK8s](https://microk8s.io/docs) and [k3d](https://k3d.io/stable/) for running Kubernetes clusters locally.
{{% thirdparty-content %}}
There are additional tools such as [MicroK8s](https://microk8s.io/docs) and [k3d](https://k3d.io/stable/) for running Kubernetes clusters locally. You can use the [CNCF Landscape(https://landscape.cncf.io/)
to find a tool that for deploying certified Kubernetes locally.


### 4. Online Playground Environment
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(nit)

Suggested change
### 4. Online Playground Environment
### 4. Online playground environments {#online-playgrounds}

If you don’t want to install Kubernetes locally, you can use online environments to practice.

- [Killer Coda](https://killercoda.com/): Interactive Kubernetes labs for various scenarios.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- [Killer Coda](https://killercoda.com/): Interactive Kubernetes labs for various scenarios.
- [Killercoda](https://killercoda.com/): Interactive Kubernetes labs for various scenarios.

- [Play With Kubernetes](https://labs.play-with-k8s.com/): Browser-based Kubernetes playground to spin up clusters on demand.


## What's next: Practice setting up a production-like cluster
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Try this:

Suggested change
## What's next: Practice setting up a production-like cluster
## {{% heading "whatsnext" %}}
### Install local tools
- [Install kubectl](/docs/tasks/tools/#kubectl) if you didn't already do that
- and you can [add plugins to kubectl](/docs/tasks/extend-kubectl/kubectl-plugins/#installing-kubectl-plugins) if you'd like to
- You will also need a `.kubeconfig` configuration file
### Tutorials
Try a [tutorial](/docs/tutorials/) to learn more about Kubernetes.
### Training
Look into the [training](/training/) that's available to help you learn Kubernetes.
### Practice setting up a production-like cluster

Also see #38681 - we don't yet have a task page about setting up kubeconfig. Once we do, other pages can link to it.


While the tools above are great for learning, setting up a production-like cluster provides deeper insights into how Kubernetes operates in real-world scenarios.

[Kubeadm]() is a tool designed to help you set up a secure and functional cluster with minimal complexity.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[Kubeadm]() is a tool designed to help you set up a secure and functional cluster with minimal complexity.
The `kubeadm` tool is designed to help you [set up a production-grade cluster](/docs/setup/production-environment/tools/kubeadm/) with minimal complexity.
Once you've deployed a baseline cluster with kubeadm, typically you'll want to customize it or extend it
to deliver a cloud-native platform.
Read [production considerations](/docs/setup/production-environment/#production-considerations)
when you're ready to learn more.


If you're interested in taking your learning even further, check out the [Production Environment](/docs/setup/production-environment/) page for advanced practices and considerations when preparing for real-world Kubernetes deployments.
6 changes: 0 additions & 6 deletions static/_redirects
Original file line number Diff line number Diff line change
Expand Up @@ -401,12 +401,6 @@

/docs/setup/minikube/ /docs/tasks/tools/ 302
/id/docs/setup/minikube/ /id/docs/tasks/tools/ 302
/docs/setup/learning-environment/ /docs/tasks/tools/ 302!
/bn/docs/setup/learning-environment/ /bn/docs/tasks/tools/ 302!
/id/docs/setup/learning-environment/ /id/docs/tasks/tools/ 302!
/zh-cn/docs/setup/learning-environment/ /zh-cn/docs/tasks/tools/ 302!
/ja/docs/setup/learning-environment/ /ja/docs/tasks/tools/ 302!
/hi/docs/setup/learning-environment/ /hi/docs/tasks/tools/ 302!
/docs/setup/learning-environment/kind/ /docs/tasks/tools/ 302
/id/docs/setup/learning-environment/kind/ /id/docs/tasks/tools/ 302
/docs/setup/learning-environment/minikube/ /docs/tasks/tools/ 302
Expand Down