Skip to content

VPC NAT UI screenshots and Guest cluster using Overlay Networks - #1085

Open
rrajendran17 wants to merge 19 commits into
harvester:mainfrom
rrajendran17:gc-overlaynetwork
Open

VPC NAT UI screenshots and Guest cluster using Overlay Networks#1085
rrajendran17 wants to merge 19 commits into
harvester:mainfrom
rrajendran17:gc-overlaynetwork

Conversation

@rrajendran17

Copy link
Copy Markdown
Contributor

Problem:

document for guest cluster using overlay networks

Solution:

document for guest cluster using overlay networks

Related Issue(s):

harvester/harvester#9682

Test plan:

Additional documentation or context

@rrajendran17
rrajendran17 requested review from a team and jillian-maroket as code owners July 15, 2026 19:40
@rrajendran17
rrajendran17 requested a review from starbops July 15, 2026 19:40
@rrajendran17 rrajendran17 changed the title VPC NAT UI screenshots and Guest cluster using Overlay Networks Draft:VPC NAT UI screenshots and Guest cluster using Overlay Networks Jul 15, 2026
@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown
Name Link
🔨 Latest commit 18c71c7
😎 Deploy Preview https://6a7a06c4a45316c1db1311db--harvester-preview.netlify.app

@rrajendran17
rrajendran17 force-pushed the gc-overlaynetwork branch 5 times, most recently from 437ef52 to daa6ce9 Compare July 17, 2026 00:06
@rrajendran17 rrajendran17 changed the title Draft:VPC NAT UI screenshots and Guest cluster using Overlay Networks VPC NAT UI screenshots and Guest cluster using Overlay Networks Jul 17, 2026

@jillian-maroket jillian-maroket left a comment

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.

Review done for the new page. I'll go through the rest later.

---
sidebar_position: 11
sidebar_label: Guest Cluster using Overlay Network
title: "Guest Cluster using Overlay Network"

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.

Suggested change
title: "Guest Cluster using Overlay Network"
title: "Guest Cluster Provisioning Using Underlay and Overlay Networks"

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.

If this title is appropriate, we can shorten it for the sidebar.

<link rel="canonical" href="https://docs.harvesterhci.io/v1.9/rancher/guest-cluster-overlay-network"/>
</head>

## Provisioning Downstream Kubernetes Clusters on Harvester Using Rancher and Kube-OVN Networking

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.

The subject of the page must be reflected in the title. This heading is not necessary. Please remove it.

Comment thread docs/rancher/guest-cluster-overlay-network.md Outdated
Comment thread docs/rancher/guest-cluster-overlay-network.md Outdated
Comment thread docs/rancher/guest-cluster-overlay-network.md Outdated
Comment thread docs/rancher/guest-cluster-overlay-network.md Outdated
Comment thread docs/rancher/guest-cluster-overlay-network.md Outdated

@jillian-maroket jillian-maroket left a comment

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.

@rrajendran17 I restructured some parts to make the procedures flow better.

Comment thread docs/networking/kubeovn-pureunderlay.md Outdated
Comment thread docs/networking/kubeovn-pureunderlay.md Outdated
Comment thread docs/networking/kubeovn-vpcnatgateway.md
Comment thread docs/networking/kubeovn-vpcnatgateway.md Outdated
Comment thread docs/networking/kubeovn-vpcnatgateway.md Outdated
Comment thread docs/networking/kubeovn-vpcnatgateway.md Outdated
Comment thread docs/networking/kubeovn-vpcnatgateway.md Outdated
Comment thread docs/networking/kubeovn-vpcnatgateway.md Outdated
Comment thread docs/networking/kubeovn-vpcnatgateway.md Outdated
Comment on lines +378 to +380
### SNAT for external connectivity from Overlay VMs

##### Create EIP and SNAT resource
#### Create EIP

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.

Suggested change
### SNAT for external connectivity from Overlay VMs
##### Create EIP and SNAT resource
#### Create EIP
### SNAT Rules for Outbound Access (Overlay to External Networks)
#### Create an External IP

@rrajendran17
rrajendran17 force-pushed the gc-overlaynetwork branch 4 times, most recently from 6bfa449 to f07038f Compare July 24, 2026 18:03

@jillian-maroket jillian-maroket left a comment

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.

Approving now so we can merge and close the related issue. Note that I found some issues (capitalization, punctuation, markup, etc.) but I prefer to create my own PR for such cleanup work.

@mergify

mergify Bot commented Jul 30, 2026

Copy link
Copy Markdown

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@starbops starbops left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thank you for the document update! I have a few nits below.

Comment thread docs/networking/kubeovn-pureunderlay.md Outdated
Comment thread docs/networking/kubeovn-vpcnatgateway.md Outdated
Comment thread docs/networking/kubeovn-vpcnatgateway.md Outdated
Comment thread docs/networking/kubeovn-vpcnatgateway.md Outdated
Comment thread docs/networking/kubeovn-vpcnatgateway.md Outdated
Comment thread docs/networking/kubeovn-vpcnatgateway.md Outdated
Comment thread docs/networking/kubeovn-vpcnatgateway.md Outdated
Comment thread docs/rancher/guest-cluster-kubeovn-network.md Outdated
Comment thread docs/rancher/guest-cluster-kubeovn-network.md Outdated

For VMs provisioned as downstream cluster nodes, ensure external connectivity is available by enabling DHCP and configuring dns_server=8.8.8.8 and natOutgoing=true on the subnet. This allows the VMs to obtain a default route and perform DNS resolution.

Since VMs attached to Kube-OVN overlay networks use private IP addresses, a route to the VM subnet must be configured on the rancher VM via the external IP used for SNAT/DNAT. This enables SSH access to the VM nodes from the Rancher UI.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This line is a bit confusing. Do we need a route to the VM subnet installed on the Rancher VM, or have DNAT/SNAT configured for the VM subnet? Or both?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

A route is required for the private subnet with EIP (configured in the vpc nat gw) as nexthop.
I have rephrased the wording for better understanding in the latest commit.


For VMs provisioned as downstream cluster nodes, ensure external connectivity is available by enabling DHCP and dns_server is set to a valid DNS server IP address (for example, `8.8.8.8`) and natOutgoing=true on the subnet. This allows the VMs to obtain a default route and perform DNS resolution.

Since the guest cluster VM nodes over Kube-OVN overlay networks use private IP addresses, a route to the guest cluster VM node subnet must be configured on the Rancher VM with the Kube-OVN EIP (configured during the VPC NAT gateway EIP setup) as the next hop. This provides network reachability from the Rancher VM to the guest cluster VM nodes and enables SSH access through the Rancher UI.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I still have concerns about this paragraph. Are we sure that reverse connectivity from the external Rancher instance to the guest cluster running on an overlay network is required?

IIRC, Rancher Manager can manage clusters behind NAT. The cluster agent running in the guest cluster connects back to Rancher Manager and establishes long-lived connections that Rancher Manager then uses to communicate with the cluster.

@rrajendran17 rrajendran17 Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I do not think we have any existing cases (before overlay networks) where the rancher instance has to ssh to a node IP which is private. The guest cluster VM Nodes created from a VM Vlan network will not have problem as they share the same subnet with the rancher VM.

In case of overlay networks, the node IP of the downstream VM Node will be for example 172.20.10.0/24 and to ssh to this node, rancher VM must have connectivity or know how to reach 172.20.10.0/24 which is not by default installed inside rancher VM. So by installing a route for private IP CIDR (node IP) via EIP, rancher VM sends the traffic for private IP to the GW (EIP of the NAT GW) and the GW will forward the traffic to corresponding VM acting as downstream node in 172.20.10.0/24 network.

This is not only for rancher instance but any external traffic communicates with the EIP (as only this is visible to the external networks) and VPC NAT GW relays the traffic to corresponding private IP based on configured DNAT rules.

@starbops starbops Aug 5, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

By “SSH to this node,” do you mean that the external Rancher server must be able to access the node via SSH to provision or manage the downstream cluster?

According to Rancher’s documentation, its architecture is deliberately designed to avoid this requirement. The cluster agents running in the downstream cluster establish reverse tunnels to the external Rancher server, allowing Rancher to manage the cluster even when it is behind NAT.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

As we discussed, updated it to make it more clearer for users that the ssh connectivity is required for debugging purposes.

@rrajendran17
rrajendran17 requested a review from starbops August 4, 2026 17:56
rrajendran17 and others added 18 commits August 10, 2026 09:24
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
@rrajendran17
rrajendran17 force-pushed the gc-overlaynetwork branch 2 times, most recently from 6f0dfd5 to a0bb796 Compare August 10, 2026 16:55
Co-authored-by: Jillian Maroket <67180770+jillian-maroket@users.noreply.github.com>
Signed-off-by: Renuka Devi Rajendran <renuka.rajendran@suse.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants