Skip to content

docs(blog): add internal load balancer example for approuting-istio Gateway API#5751

Open
rkasture wants to merge 4 commits intoAzure:masterfrom
rkasture:docs/approuting-istio-internal-lb
Open

docs(blog): add internal load balancer example for approuting-istio Gateway API#5751
rkasture wants to merge 4 commits intoAzure:masterfrom
rkasture:docs/approuting-istio-internal-lb

Conversation

@rkasture
Copy link
Copy Markdown

Summary

Adds a new Internal load balancer section to the app routing Gateway API blog post showing how to configure a private (internal) Gateway using \spec.infrastructure.annotations.

What's included

  • Complete \Gateway\ YAML with \service.beta.kubernetes.io/azure-load-balancer-internal\ and \�zure-load-balancer-internal-subnet\ annotations
  • Commands to verify the internal IP assignment
  • Links to networking prerequisites and the full annotations reference

Motivation

Closes #5748 — users migrating from NGINX app routing to \�pprouting-istio\ need documented examples for creating internal load balancers on dedicated subnets. The existing blog post only shows the external (public) Gateway pattern.

Validation


  • pm run build\ succeeds (broken anchors in output are pre-existing, unrelated to this change)

…ateway API

Add a new 'Internal load balancer' section to the app routing Gateway API
blog post showing how to configure an internal (private) Gateway using
spec.infrastructure.annotations with Azure load balancer annotations.

Includes:
- Complete Gateway YAML with internal LB and subnet annotations
- Commands to verify the internal IP assignment
- Links to networking prerequisites and annotation reference docs

Closes Azure#5748

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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

Adds documentation to the existing app routing Gateway API blog post to help readers configure an internal (private) Azure Load Balancer for an approuting-istio Gateway by using spec.infrastructure.annotations.

Changes:

  • Adds an Internal load balancer subsection with a Gateway YAML example that sets internal LB annotations.
  • Adds verification commands to confirm the Gateway is programmed and returns a private IP in status.addresses.
  • Adds links to AKS internal load balancer prerequisites and the Azure Load Balancer annotations reference.

Comment thread website/blog/2026-03-18-app-routing-gateway-api/index.md Outdated
Comment thread website/blog/2026-03-18-app-routing-gateway-api/index.md Outdated
Comment thread website/blog/2026-03-18-app-routing-gateway-api/index.md Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 30, 2026 20:42
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
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

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

Comment thread website/blog/2026-03-18-app-routing-gateway-api/index.md Outdated
Comment thread website/blog/2026-03-18-app-routing-gateway-api/index.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 30, 2026 22:01
@rkasture
Copy link
Copy Markdown
Author

@copilot apply changes based on the comments in this thread

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

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

AKS propagates these annotations onto the Kubernetes Service it creates for the Gateway. After the Gateway is programmed, its `status.addresses` will contain a private IP from the specified subnet (or the cluster's default subnet if the subnet annotation is omitted):

```bash
kubectl wait --for=condition=programmed gateways.gateway.networking.k8s.io httpbin-gateway --timeout=120s
Copy link

Copilot AI Apr 30, 2026

Choose a reason for hiding this comment

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

Gateway API’s standard condition type is Programmed (capital P). Using condition=programmed may fail to match the condition on some clusters/kubectl versions. Recommend updating the command to wait for condition=Programmed to ensure it reliably works.

Suggested change
kubectl wait --for=condition=programmed gateways.gateway.networking.k8s.io httpbin-gateway --timeout=120s
kubectl wait --for=condition=Programmed gateways.gateway.networking.k8s.io httpbin-gateway --timeout=120s

Copilot uses AI. Check for mistakes.
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.

[Feature] approuting-istio: support internal load balancer with dedicated subnet annotation

2 participants