Skip to content

Migrate Exploring Kubernetes Services tutorial from Meshery docs#1020

Open
leecalcote wants to merge 3 commits intomasterfrom
claude/migrate-k8s-tutorial-Rc5G2
Open

Migrate Exploring Kubernetes Services tutorial from Meshery docs#1020
leecalcote wants to merge 3 commits intomasterfrom
claude/migrate-k8s-tutorial-Rc5G2

Conversation

@leecalcote
Copy link
Copy Markdown
Member

Summary

Migrates the Exploring Kubernetes Services with Meshery tutorial from meshery/meshery (docs/content/en/guides/tutorials/kubernetes/kubernetes-services.md) into layer5io/docs under content/en/kanvas/tutorials/kubernetes/.

  • Adds content/en/kanvas/tutorials/kubernetes/_index.md to introduce a Kubernetes section under the Kanvas tutorials.
  • Adds content/en/kanvas/tutorials/kubernetes/kubernetes-services.md, the migrated tutorial walking through ClusterIP, NodePort, and LoadBalancer service types in Meshery Playground.
  • Updates image references from /guides/tutorials/images/... to /kanvas/tutorials/images/... to match the existing Kanvas tutorial image convention.
  • Updates internal cross-tutorial links (kubernetes-pods, kubernetes-deployments) to the anticipated /kanvas/tutorials/kubernetes/... paths so they resolve once the sister tutorials migrate over.
  • Preserves backward compatibility by aliasing the legacy URLs:
    • /guides/tutorials/kubernetes-services
    • /guides/tutorials/kubernetes/kubernetes-services
    • /kanvas/tutorials/kubernetes-services

Companion change

The source file is removed from meshery/meshery on the matching branch (claude/migrate-k8s-tutorial-Rc5G2).

Follow-ups

  • Image assets currently referenced under /kanvas/tutorials/images/kubernetes-services/ and /kanvas/tutorials/images/kubernetes-deployments/ need to be copied from meshery/meshery (docs/static/guides/tutorials/images/kubernetes-services/, docs/static/guides/tutorials/images/kubernetes-deployments/) into this repo's static path before the page renders fully.
  • Sibling tutorials (kubernetes-pods, kubernetes-deployments, etc.) referenced from this page will continue to 404 on the Layer5 site until they are migrated similarly.

Test plan

  • hugo --quiet builds without errors
  • /kanvas/tutorials/kubernetes/kubernetes-services/ renders end-to-end
  • Legacy /guides/tutorials/kubernetes-services and /guides/tutorials/kubernetes/kubernetes-services redirect to the new page
  • Image bundle is uploaded under static/kanvas/tutorials/images/kubernetes-services/

Generated by Claude Code

Adds the Exploring Kubernetes Services with Meshery tutorial under
content/en/kanvas/tutorials/kubernetes/. Image paths are rewritten to
the kanvas tutorials image convention and aliases are preserved for
the legacy /guides/tutorials/... URLs.
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a new Kubernetes tutorial section and a detailed hands-on guide for exploring Kubernetes Services using Meshery Playground and Kanvas. The tutorial covers the creation and management of ClusterIP, NodePort, and LoadBalancer services. The review feedback identifies several minor grammatical and clarity issues, including a redundant phrase in the description, unnecessary articles, missing prepositions, and incorrect hyphenation of 'pop-up'.

params:
kind: services
categories: [Tutorials]
description: Explore Kubernetes Services using Meshery using Meshery Playground, an interactive live environment, through a series of hands-on exercises.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The description contains a redundant phrase "using Meshery using Meshery Playground".

Suggested change
description: Explore Kubernetes Services using Meshery using Meshery Playground, an interactive live environment, through a series of hands-on exercises.
description: Explore Kubernetes Services using Meshery Playground, an interactive live environment, through a series of hands-on exercises.


### Introduction

In this tutorial, we'll learn to implement Kubernetes **Services**, the resources responsible for exposing applications inside and outside the cluster. Using Meshery Playground, an interactive live cluster environment, we'll perform hands-on labs to gain practical experience with the Kubernetes Services, without writing any YAML.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

Minor grammatical improvement: "the Kubernetes Services" can be simplified to "Kubernetes Services" for better flow.

Suggested change
In this tutorial, we'll learn to implement Kubernetes **Services**, the resources responsible for exposing applications inside and outside the cluster. Using Meshery Playground, an interactive live cluster environment, we'll perform hands-on labs to gain practical experience with the Kubernetes Services, without writing any YAML.
In this tutorial, we'll learn to implement Kubernetes **Services**, the resources responsible for exposing applications inside and outside the cluster. Using Meshery Playground, an interactive live cluster environment, we'll perform hands-on labs to gain practical experience with Kubernetes Services, without writing any YAML.

3. Connect the Service to the Deployment: Click over the service component until green dots appear, click the arrow and select network. Drag to the deployment. This creates a Network link.
![](/kanvas/tutorials/images/kubernetes-services/2025-12-13_1.png)

From the Actions Tab, Undeploy the deployment first and then, validate and dry-run the new design, resolve any errors that may arise. Now, deploy the design. A pop up in the bottom right will confirm that the design is successfully configured.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The term "pop up" should be hyphenated when used as a noun.

Suggested change
From the Actions Tab, Undeploy the deployment first and then, validate and dry-run the new design, resolve any errors that may arise. Now, deploy the design. A pop up in the bottom right will confirm that the design is successfully configured.
From the Actions Tab, Undeploy the deployment first and then, validate and dry-run the new design, resolve any errors that may arise. Now, deploy the design. A pop-up in the bottom right will confirm that the design is successfully configured.

Now switch to Operator mode, click on any component to view details(like type or selector) about the Service or the Pod.
![](/kanvas/tutorials/images/kubernetes-services/2025-12-13_4.png)

Note that this service is mapped NodePort and is accessible on the **Node’s IP address**.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

"mapped NodePort" is missing a preposition. It should be "mapped to a NodePort" for better readability.

Suggested change
Note that this service is mapped NodePort and is accessible on the **Node’s IP address**.
Note that this service is mapped to a NodePort and is accessible on the **Node’s IP address**.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 8, 2026

🚀 Preview deployment: https://layer5io.github.io/docs/pr-preview/pr-1020/

Note: Preview may take a moment (GitHub Pages deployment in progress). Please wait and refresh. Track deployment here

- Remove redundant "using Meshery" from frontmatter description
- Drop superfluous article in "the Kubernetes Services"
- Hyphenate "pop-up" as a noun
- Add missing preposition in "mapped to a NodePort"
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR migrates the “Exploring Kubernetes Services with Meshery” tutorial into the Layer5 Docs Kanvas tutorial section, introducing a new Kubernetes tutorials subsection and adding URL aliases intended to preserve legacy links.

Changes:

  • Added a new Kanvas Kubernetes tutorials section index page.
  • Added the migrated Kubernetes Services tutorial page (ClusterIP, NodePort, LoadBalancer) with updated paths/aliases.
  • Updated screenshot paths to the /kanvas/tutorials/images/... convention.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 9 comments.

File Description
content/en/kanvas/tutorials/kubernetes/_index.md Introduces the Kubernetes subsection under Kanvas tutorials.
content/en/kanvas/tutorials/kubernetes/kubernetes-services.md Adds the migrated Services tutorial content, including aliases and updated image/link references.

params:
kind: services
categories: [Tutorials]
description: Explore Kubernetes Services using Meshery Playground, an interactive live environment, through a series of hands-on exercises.

In this tutorial, we'll learn to implement Kubernetes **Services**, the resources responsible for exposing applications inside and outside the cluster. Using Meshery Playground, an interactive live cluster environment, we'll perform hands-on labs to gain practical experience with Kubernetes Services, without writing any YAML.

> **NOTE:** If this is your first time working with Meshery Playground, consider starting with the [Exploring Kubernetes Pods with Meshery Playground](/kanvas/tutorials/kubernetes/kubernetes-pods) tutorial first or [Exploring Kubernetes Deployments with Meshery](/kanvas/tutorials/kubernetes/kubernetes-deployments).
Comment on lines +40 to +43
- Click **Kanvas** from the left menu to navigate to the [_Kanvas_ design](https://kanvas.new/extension/meshmap) page.

![](/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_16-59.png)

- On successful login, you should be at the dashboard.
- Click **Kanvas** from the left menu to navigate to the [_Kanvas_ design](https://kanvas.new/extension/meshmap) page.

![](/kanvas/tutorials/images/kubernetes-deployments/2025-02-27_16-59.png)
Comment on lines +15 to +36
### Introduction

In this tutorial, we'll learn to implement Kubernetes **Services**, the resources responsible for exposing applications inside and outside the cluster. Using Meshery Playground, an interactive live cluster environment, we'll perform hands-on labs to gain practical experience with Kubernetes Services, without writing any YAML.

> **NOTE:** If this is your first time working with Meshery Playground, consider starting with the [Exploring Kubernetes Pods with Meshery Playground](/kanvas/tutorials/kubernetes/kubernetes-pods) tutorial first or [Exploring Kubernetes Deployments with Meshery](/kanvas/tutorials/kubernetes/kubernetes-deployments).


### Prerequisites

- Basic understanding of containerization and Kubernetes concepts.
- Access to the _Meshery Playground_. If you don't have an account, sign up at [Meshery Playground](https://playground.meshery.io/).

### Lab Scenario

Deploy a simple application or a simple Pod and expose it using ClusterIP, NodePort, and LoadBalancer services. Each service will route traffic to the pods via a common label selector. We’ll inspect the service details in Operator mode to confirm their types and behavior.

### Objective

Learn how to create, manage, and explore _Kubernetes Services_ to expose applications within the context of a microservices architecture.

### Steps

Comment on lines +71 to +74
- **Image**: `meshery/meshery-milestone:latest`
- **Name**: `meshery-milestone`
![](/kanvas/tutorials/images/kubernetes-services/2025-09-04_06.png)

Comment on lines +91 to +97
- Set **Type** to `ClusterIP`.
- Click on **+ Add Item** under Ports to add a port called **Ports 1**. Click on it and add:
- **Port**: `80`
- **TargetPort**: `80` (These match the container port that our image serves on.)
- Also add the same key value pair as before under **Selector**: `app:9988110`
- We will also add the same label as the deployment for easier identification in Operator Mode.
![](/kanvas/tutorials/images/kubernetes-services/edit-01.png)
Comment on lines +130 to +133
- **Port**: `80`
- **TargetPort**: `80`
- **NodePort**: `30091` (or leave blank to auto-assign).
![](/kanvas/tutorials/images/kubernetes-services/2025-09-06_15.png)
Comment on lines +164 to +165
- **Port**: `80`
- **TargetPort**: `80`
… URLs

- Promote top-level section headings from ### to ## to match the
  existing Kanvas tutorial convention; demote step headings accordingly.
- Indent sub-bullets and inline images so they nest correctly under
  their parent numbered steps.
- Add descriptive alt text on every screenshot for accessibility.
- Point sister-tutorial links and screenshot URLs at the existing
  meshery docs site so the page renders today; once the assets and
  sibling tutorials migrate over, paths can be swapped to local.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants