<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/cilium-gateway-api-for-kubernetes-explained-jmn85wswh" -->

---
title: Cilium Gateway API for Kubernetes Explained | daily.dev
description: A hands-on walkthrough of setting up Cilium as a Kubernetes Gateway API implementation. Covers creating a kind cluster with CNI disabled, installing Gateway...
canonical: https://daily.dev/posts/cilium-gateway-api-for-kubernetes-explained-jmn85wswh
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Cilium Gateway API for Kubernetes Explained | daily.dev
og:description: A hands-on walkthrough of setting up Cilium as a Kubernetes Gateway API implementation. Covers creating a kind cluster with CNI disabled, installing Gateway...
og:url: https://daily.dev/posts/cilium-gateway-api-for-kubernetes-explained-jmn85wswh
og:image: https://api.daily.dev/og/posts/jMN85WswH.png
og:image:alt: Cilium Gateway API for Kubernetes Explained
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Cilium Gateway API for Kubernetes Explained

**[That DevOps Guy](https://daily.dev/sources/marcel-dempers)** · 29 min read · 1 upvotes · 1 comments

## Summary

A hands-on walkthrough of setting up Cilium as a Kubernetes Gateway API implementation. Covers creating a kind cluster with CNI disabled, installing Gateway API CRDs (v1.4.1), deploying Cilium via Helm with kube-proxy replacement enabled, and configuring a Gateway with HTTP and HTTPS listeners using node port services. Demonstrates traffic management features including routing by hostname, path matching, URL rewriting, and TLS termination. Highlights key differences from other Gateway API solutions: Cilium uses eBPF at the kernel level instead of dedicated gateway pods, making it a unified CNI, service mesh, load balancer, and observability platform, but with added complexity.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.youtube.com/watch?v=q4bucRkDOm8>

## Questions this post answers

### Why does the Cilium gateway service go into a crash loop on a kind cluster?

The Cilium gateway pods crash loop when a LoadBalancer service remains in a pending state, which always happens on kind clusters since kind has no load balancer implementation. The workaround is to configure the gateway to use a NodePort service instead, exposing specific host ports for HTTP and HTTPS in the kind cluster configuration and patching the NodePort service afterward to match those fixed ports.

_Testing Cilium gateways locally comes with quirks worth tracking before you hit them yourself on daily.dev._

### Which version of the Gateway API CRDs should I install to use with Cilium and other Gateway API implementations like Istio or Nginx Fabric?

Gateway API CRDs version 1.4.1 is recommended rather than the newer 1.5, because most Gateway API implementations including Istio, Nginx Fabric, and K-Gateway had not yet caught up with support for 1.5 at the time. Version 1.4.1 also includes bug fixes not present in earlier releases, making it the safer pinned choice for multi-implementation testing.

_Picking compatible Gateway API CRD versions across implementations is exactly the kind of detail worth surfacing on daily.dev._

### How is Cilium's Gateway API implementation different architecturally from Nginx or Traefik gateways in Kubernetes?

Cilium does not deploy separate gateway pods for the data plane; instead, deploying a gateway only creates a NodePort service with no dedicated pods. Traffic capture and routing happen through eBPF programs running in kube-system namespace pods that intercept traffic directly at the node level, unlike Nginx, Traefik, or K-Gateway which run their own dedicated gateway pods.

_Comparing gateway architectures like this helps when picking a networking stack, something daily.dev keeps developers current on._

## Community discussion

Top comments from developers on daily.dev.

**@hungnguyen58** · 0 upvotes

> cilium vs istio gateway api. which better?

## Similar posts on daily.dev

- [Migrating Ingress NGINX to Cilium](https://daily.dev/posts/migrating-ingress-nginx-to-cilium-e2czybnhu) · Isovalent · 1 upvotes · 0 comments
- [Kubernetes Networking Explained: From ClusterIP to Cilium Service Mesh](https://daily.dev/posts/kubernetes-networking-explained-from-clusterip-to-cilium-service-mesh-rhwqkcwdn) · freeCodeCamp · 5 upvotes · 1 comments
- [Kubernetes Ingress vs Gateway API](https://daily.dev/posts/kubernetes-ingress-vs-gateway-api-jwa9l6ig9) · Isovalent · 11 upvotes · 1 comments
- [Understanding Kubernetes Networking](https://daily.dev/posts/understanding-kubernetes-networking-oooxha7or) · cilium · 22 upvotes · 1 comments

---

Tags: [#linux](https://daily.dev/tags/linux), [#kubernetes](https://daily.dev/tags/kubernetes), [#helm](https://daily.dev/tags/helm), [#cilium](https://daily.dev/tags/cilium)

[View this post on daily.dev](https://daily.dev/posts/cilium-gateway-api-for-kubernetes-explained-jmn85wswh)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Cilium Gateway API for Kubernetes Explained","url":"https://daily.dev/posts/cilium-gateway-api-for-kubernetes-explained-jmn85wswh","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/cilium-gateway-api-for-kubernetes-explained-jmn85wswh"},"datePublished":"2026-07-08T12:23:05.673Z","dateModified":"2026-09-14T09:08:02.443Z","description":"A hands-on walkthrough of setting up Cilium as a Kubernetes Gateway API implementation. Covers creating a kind cluster with CNI disabled, installing Gateway...","image":"https://i.ytimg.com/vi/q4bucRkDOm8/sddefault.jpg","thumbnailUrl":"https://i.ytimg.com/vi/q4bucRkDOm8/sddefault.jpg","isAccessibleForFree":true,"articleSection":"That DevOps Guy","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"That DevOps Guy","logo":"https://media.daily.dev/image/upload/s--dGnHjfCV--/f_auto,q_auto/v1780213230/logos/marcel-dempers?_a=BAMAMiWQ0","url":"https://daily.dev/sources/marcel-dempers"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/cilium-gateway-api-for-kubernetes-explained-jmn85wswh","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"linux,kubernetes,helm,cilium","timeRequired":"PT29M","video":{"@type":"VideoObject","name":"Cilium Gateway API for Kubernetes Explained","description":"A hands-on walkthrough of setting up Cilium as a Kubernetes Gateway API implementation. Covers creating a kind cluster with CNI disabled, installing Gateway...","thumbnailUrl":"https://i.ytimg.com/vi/q4bucRkDOm8/sddefault.jpg","uploadDate":"2026-07-08T12:23:05.673Z","duration":"PT29M","url":"https://api.daily.dev/r/jMN85WswH","embedUrl":"https://www.youtube.com/embed/q4bucRkDOm8"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"That DevOps Guy","item":"https://daily.dev/sources/marcel-dempers"},{"@type":"ListItem","position":3,"name":"Cilium Gateway API for Kubernetes Explained"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/cilium-gateway-api-for-kubernetes-explained-jmn85wswh","comment":[{"@type":"Comment","text":"cilium vs istio gateway api. which better?","datePublished":"2026-07-14T01:31:59.446Z","url":"https://daily.dev/posts/jMN85WswH#c-qJozF1Dtu","author":{"@type":"Person","name":"Hung Nguyen","url":"https://daily.dev/hungnguyen58","image":"https://lh3.googleusercontent.com/a/ACg8ocJ6LDY_C6QxU3HG-qkgKiytZHeM4vICMtPyG3gIdWuoDnY-0l8=s96-c"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/cilium-gateway-api-for-kubernetes-explained-jmn85wswh#faq","mainEntity":[{"@type":"Question","name":"Why does the Cilium gateway service go into a crash loop on a kind cluster?","acceptedAnswer":{"@type":"Answer","text":"The Cilium gateway pods crash loop when a LoadBalancer service remains in a pending state, which always happens on kind clusters since kind has no load balancer implementation. The workaround is to configure the gateway to use a NodePort service instead, exposing specific host ports for HTTP and HTTPS in the kind cluster configuration and patching the NodePort service afterward to match those fixed ports. Testing Cilium gateways locally comes with quirks worth tracking before you hit them yourself on daily.dev."}},{"@type":"Question","name":"Which version of the Gateway API CRDs should I install to use with Cilium and other Gateway API implementations like Istio or Nginx Fabric?","acceptedAnswer":{"@type":"Answer","text":"Gateway API CRDs version 1.4.1 is recommended rather than the newer 1.5, because most Gateway API implementations including Istio, Nginx Fabric, and K-Gateway had not yet caught up with support for 1.5 at the time. Version 1.4.1 also includes bug fixes not present in earlier releases, making it the safer pinned choice for multi-implementation testing. Picking compatible Gateway API CRD versions across implementations is exactly the kind of detail worth surfacing on daily.dev."}},{"@type":"Question","name":"How is Cilium's Gateway API implementation different architecturally from Nginx or Traefik gateways in Kubernetes?","acceptedAnswer":{"@type":"Answer","text":"Cilium does not deploy separate gateway pods for the data plane; instead, deploying a gateway only creates a NodePort service with no dedicated pods. Traffic capture and routing happen through eBPF programs running in kube-system namespace pods that intercept traffic directly at the node level, unlike Nginx, Traefik, or K-Gateway which run their own dedicated gateway pods. Comparing gateway architectures like this helps when picking a networking stack, something daily.dev keeps developers current on."}}]}
```

