Files
awesome-kubernetes/kubernetes-networking.html
2026-05-18 19:32:46 +00:00

8743 lines
190 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="A curated list of awesome IT projects and resources. Inspired by the awesome list.">
<meta name="author" content="nubenetes@gmail.com">
<link rel="canonical" href="https://nubenetes.com/kubernetes-networking.html">
<link rel="prev" href="kubectl-commands.html">
<link rel="next" href="kubernetes-monitoring.html">
<link rel="icon" href="images/favicon-car.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.6">
<title>Kubernetes Networking - Nubenetes</title>
<link rel="stylesheet" href="assets/stylesheets/main.484c7ddc.min.css">
<link rel="stylesheet" href="assets/stylesheets/palette.ab4e12ef.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="static/extra.css">
<script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
<script id="__analytics">function __md_analytics(){function e(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],e("js",new Date),e("config",""),document.addEventListener("DOMContentLoaded",(function(){document.forms.search&&document.forms.search.query.addEventListener("blur",(function(){this.value&&e("event","search",{search_term:this.value})}));document$.subscribe((function(){var t=document.forms.feedback;if(void 0!==t)for(var a of t.querySelectorAll("[type=submit]"))a.addEventListener("click",(function(a){a.preventDefault();var n=document.location.pathname,d=this.getAttribute("data-md-value");e("event","feedback",{page:n,data:d}),t.firstElementChild.disabled=!0;var r=t.querySelector(".md-feedback__note [data-md-value='"+d+"']");r&&(r.hidden=!1)})),t.hidden=!1})),location$.subscribe((function(t){e("config","",{page_path:t.pathname})}))}));var t=document.createElement("script");t.async=!0,t.src="https://www.googletagmanager.com/gtag/js?id=",document.getElementById("__analytics").insertAdjacentElement("afterEnd",t)}</script>
<script>if("undefined"!=typeof __md_analytics){var consent=__md_get("__consent");consent&&consent.analytics&&__md_analytics()}</script>
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="red">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#kubernetes-networking" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow md-header--lifted" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="index.html" title="Nubenetes" class="md-header__button md-logo" aria-label="Nubenetes" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 89 89">
<path d="M3.136,17.387l0,42.932l42.932,21.467l-42.932,-64.399Z" />
<path d="M21.91,8l42.933,64.398l-18.775,9.388l-42.932,-64.399l18.774,-9.387Z" style="fill-opacity: 0.5" />
<path d="M67.535,17.387l-27.262,18.156l21.878,32.818l5.384,2.691l0,-53.665Z" />
<path d="M67.535,17.387l0,53.666l18.774,-9.388l0,-53.665l-18.774,9.387Z" style="fill-opacity: 0.25" />
</svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Nubenetes
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Kubernetes Networking
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="red" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6m0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4M7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"/></svg>
</label>
<input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="light-blue" data-md-color-accent="yellow" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"/></svg>
</label>
</form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/nubenetes/awesome-kubernetes" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
</div>
<div class="md-source__repository">
nubenetes/awesome-kubernetes
</div>
</a>
</div>
</nav>
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="https://nubenetes.com/v2/" class="md-tabs__link">
🚀 Try Nubenetes V2 (Elite)
</a>
</li>
<li class="md-tabs__item">
<a href="index.html" class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="introduction.html" class="md-tabs__link">
Intro
</a>
</li>
<li class="md-tabs__item">
<a href="sre.html" class="md-tabs__link">
SRE
</a>
</li>
<li class="md-tabs__item">
<a href="devops.html" class="md-tabs__link">
DevOps
</a>
</li>
<li class="md-tabs__item">
<a href="devsecops.html" class="md-tabs__link">
DevSecOps
</a>
</li>
<li class="md-tabs__item">
<a href="noops.html" class="md-tabs__link">
NoOps
</a>
</li>
<li class="md-tabs__item">
<a href="docker.html" class="md-tabs__link">
Docker
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="kubernetes.html" class="md-tabs__link">
K8s
</a>
</li>
<li class="md-tabs__item">
<a href="openshift.html" class="md-tabs__link">
OpenShift
</a>
</li>
<li class="md-tabs__item">
<a href="rancher.html" class="md-tabs__link">
Rancher
</a>
</li>
<li class="md-tabs__item">
<a href="cicd.html" class="md-tabs__link">
CI/CD
</a>
</li>
<li class="md-tabs__item">
<a href="monitoring.html" class="md-tabs__link">
Montrg
</a>
</li>
<li class="md-tabs__item">
<a href="iac.html" class="md-tabs__link">
Infra Prov
</a>
</li>
<li class="md-tabs__item">
<a href="ansible.html" class="md-tabs__link">
Config Mgmt
</a>
</li>
<li class="md-tabs__item">
<a href="databases.html" class="md-tabs__link">
DB
</a>
</li>
<li class="md-tabs__item">
<a href="message-queue.html" class="md-tabs__link">
Data Pipeline
</a>
</li>
<li class="md-tabs__item">
<a href="servicemesh.html" class="md-tabs__link">
Service Mesh
</a>
</li>
<li class="md-tabs__item">
<a href="demos.html" class="md-tabs__link">
Demos
</a>
</li>
<li class="md-tabs__item">
<a href="public-cloud-solutions.html" class="md-tabs__link">
Cloud
</a>
</li>
<li class="md-tabs__item">
<a href="api.html" class="md-tabs__link">
APIs
</a>
</li>
<li class="md-tabs__item">
<a href="devel-sites.html" class="md-tabs__link">
Dev
</a>
</li>
<li class="md-tabs__item">
<a href="qa.html" class="md-tabs__link">
QA
</a>
</li>
<li class="md-tabs__item">
<a href="ai.html" class="md-tabs__link">
AI
</a>
</li>
<li class="md-tabs__item">
<a href="project-management-methodology.html" class="md-tabs__link">
Project Mgmt
</a>
</li>
<li class="md-tabs__item">
<a href="other-awesome-lists.html" class="md-tabs__link">
Refs+
</a>
</li>
<li class="md-tabs__item">
<a href="recruitment.html" class="md-tabs__link">
Hiring
</a>
</li>
<li class="md-tabs__item">
<a href="customer.html" class="md-tabs__link">
Clients
</a>
</li>
<li class="md-tabs__item">
<a href="about.html" class="md-tabs__link">
About
</a>
</li>
</ul>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="index.html" title="Nubenetes" class="md-nav__button md-logo" aria-label="Nubenetes" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 89 89">
<path d="M3.136,17.387l0,42.932l42.932,21.467l-42.932,-64.399Z" />
<path d="M21.91,8l42.933,64.398l-18.775,9.388l-42.932,-64.399l18.774,-9.387Z" style="fill-opacity: 0.5" />
<path d="M67.535,17.387l-27.262,18.156l21.878,32.818l5.384,2.691l0,-53.665Z" />
<path d="M67.535,17.387l0,53.666l18.774,-9.388l0,-53.665l-18.774,9.387Z" style="fill-opacity: 0.25" />
</svg>
</a>
Nubenetes
</label>
<div class="md-nav__source">
<a href="https://github.com/nubenetes/awesome-kubernetes" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
</div>
<div class="md-source__repository">
nubenetes/awesome-kubernetes
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="https://nubenetes.com/v2/" class="md-nav__link">
<span class="md-ellipsis">
🚀 Try Nubenetes V2 (Elite)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="index.html" class="md-nav__link">
<span class="md-ellipsis">
Home
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-ellipsis">
Intro
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Intro
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="introduction.html" class="md-nav__link">
<span class="md-ellipsis">
Microservice Architecture. From Java EE To Cloud Native. Openshift VS Kubernetes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="faq.html" class="md-nav__link">
<span class="md-ellipsis">
Microservices FAQ & Kubernetes Native
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<span class="md-ellipsis">
SRE
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
SRE
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="sre.html" class="md-nav__link">
<span class="md-ellipsis">
SRE Site Reliability Engineering
</span>
</a>
</li>
<li class="md-nav__item">
<a href="networking.html" class="md-nav__link">
<span class="md-ellipsis">
Networking
</span>
</a>
</li>
<li class="md-nav__item">
<a href="finops.html" class="md-nav__link">
<span class="md-ellipsis">
FinOps. Cloud Financial Management
</span>
</a>
</li>
<li class="md-nav__item">
<a href="chaos-engineering.html" class="md-nav__link">
<span class="md-ellipsis">
Chaos Engineering
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<span class="md-ellipsis">
DevOps
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
DevOps
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="devops.html" class="md-nav__link">
<span class="md-ellipsis">
DevOps
</span>
</a>
</li>
<li class="md-nav__item">
<a href="gitops.html" class="md-nav__link">
<span class="md-ellipsis">
GitOps
</span>
</a>
</li>
<li class="md-nav__item">
<a href="mlops.html" class="md-nav__link">
<span class="md-ellipsis">
MLOps
</span>
</a>
</li>
<li class="md-nav__item">
<a href="cheatsheets.html" class="md-nav__link">
<span class="md-ellipsis">
Cheat Sheets
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<span class="md-ellipsis">
DevSecOps
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
DevSecOps
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="devsecops.html" class="md-nav__link">
<span class="md-ellipsis">
DevSecOps. Container Security
</span>
</a>
</li>
<li class="md-nav__item">
<a href="securityascode.html" class="md-nav__link">
<span class="md-ellipsis">
Security Policy as Code
</span>
</a>
</li>
<li class="md-nav__item">
<a href="oauth.html" class="md-nav__link">
<span class="md-ellipsis">
OAuth2
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
<span class="md-ellipsis">
NoOps
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
NoOps
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="noops.html" class="md-nav__link">
<span class="md-ellipsis">
NoOps
</span>
</a>
</li>
<li class="md-nav__item">
<a href="serverless.html" class="md-nav__link">
<span class="md-ellipsis">
Serverless Architectures & Frameworks. OpenFaaS, Knative & Kubeless
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="docker.html" class="md-nav__link">
<span class="md-ellipsis">
Docker
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" checked>
<label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="">
<span class="md-ellipsis">
K8s
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_9">
<span class="md-nav__icon md-icon"></span>
K8s
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="kubernetes.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="kubernetes-tutorials.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Tutorials
</span>
</a>
</li>
<li class="md-nav__item">
<a href="kubernetes-tools.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Plugins, Tools, Extensions and Projects
</span>
</a>
</li>
<li class="md-nav__item">
<a href="kubectl-commands.html" class="md-nav__link">
<span class="md-ellipsis">
kubectl Commands
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Kubernetes Networking
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="kubernetes-networking.html" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Kubernetes Networking
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#introduction" class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kubernetes-dns" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes DNS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kubernetes-services-and-load-balancing" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Services and Load Balancing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#tcp-keep-alive-requests" class="md-nav__link">
<span class="md-ellipsis">
TCP Keep Alive Requests
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#headless-kubernetes-service" class="md-nav__link">
<span class="md-ellipsis">
Headless Kubernetes Service
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#networkpolicy" class="md-nav__link">
<span class="md-ellipsis">
NetworkPolicy
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#nginx-ingress-controller" class="md-nav__link">
<span class="md-ellipsis">
Nginx Ingress Controller
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#contour-ingress-controller" class="md-nav__link">
<span class="md-ellipsis">
Contour Ingress Controller
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kubernetes-gateway-api" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Gateway API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kube-proxy" class="md-nav__link">
<span class="md-ellipsis">
Kube-proxy
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#multicloud-communication-for-kubernetes" class="md-nav__link">
<span class="md-ellipsis">
Multicloud communication for Kubernetes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#multi-cluster-kubernetes-networking" class="md-nav__link">
<span class="md-ellipsis">
Multi-Cluster Kubernetes Networking
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kubernetes-network-policy" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Network Policy
</span>
</a>
<nav class="md-nav" aria-label="Kubernetes Network Policy">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#cilium" class="md-nav__link">
<span class="md-ellipsis">
Cilium
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kubernetes-network-policy-samples" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Network Policy Samples
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#kubernetes-ingress-specification" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Ingress Specification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#xposer-kubernetes-controller-to-manage-ingresses" class="md-nav__link">
<span class="md-ellipsis">
Xposer Kubernetes Controller To Manage Ingresses
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#software-defined-ip-address-management-ipam" class="md-nav__link">
<span class="md-ellipsis">
Software-Defined IP Address Management (IPAM)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#cni-container-networking-interface" class="md-nav__link">
<span class="md-ellipsis">
CNI Container Networking Interface
</span>
</a>
<nav class="md-nav" aria-label="CNI Container Networking Interface">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#list-of-existing-cni-plugins-ipam" class="md-nav__link">
<span class="md-ellipsis">
List of existing CNI Plugins (IPAM)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#project-calico" class="md-nav__link">
<span class="md-ellipsis">
Project Calico
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#dns-service-with-coredns" class="md-nav__link">
<span class="md-ellipsis">
DNS Service with CoreDNS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#kubernetes-node-local-dns-cache" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Node Local DNS Cache
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#k8gb" class="md-nav__link">
<span class="md-ellipsis">
k8gb
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#vpc-lattice" class="md-nav__link">
<span class="md-ellipsis">
VPC Lattice
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#images" class="md-nav__link">
<span class="md-ellipsis">
Images
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#videos" class="md-nav__link">
<span class="md-ellipsis">
Videos
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#tweets" class="md-nav__link">
<span class="md-ellipsis">
Tweets
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="kubernetes-monitoring.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Monitoring and Logging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="kubernetes-security.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Security
</span>
</a>
</li>
<li class="md-nav__item">
<a href="kubernetes-storage.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Storage
</span>
</a>
</li>
<li class="md-nav__item">
<a href="kubernetes-backup-migrations.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Backup and Migrations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="kubernetes-autoscaling.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Autoscaling
</span>
</a>
</li>
<li class="md-nav__item">
<a href="kubernetes-operators-controllers.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Operators and Controllers
</span>
</a>
</li>
<li class="md-nav__item">
<a href="kubernetes-based-devel.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Based Development
</span>
</a>
</li>
<li class="md-nav__item">
<a href="kubernetes-on-premise.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes On Premise
</span>
</a>
</li>
<li class="md-nav__item">
<a href="managed-kubernetes-in-public-cloud.html" class="md-nav__link">
<span class="md-ellipsis">
Managed kubernetes in public clouds
</span>
</a>
</li>
<li class="md-nav__item">
<a href="kubernetes-troubleshooting.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Troubleshooting
</span>
</a>
</li>
<li class="md-nav__item">
<a href="kubernetes-releases.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Releases
</span>
</a>
</li>
<li class="md-nav__item">
<a href="kubernetes-newsletters.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Newsletters
</span>
</a>
</li>
<li class="md-nav__item">
<a href="matrix-table.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Distributions & Installers
</span>
</a>
</li>
<li class="md-nav__item">
<a href="kubernetes-bigdata.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Big Data
</span>
</a>
</li>
<li class="md-nav__item">
<a href="kubernetes-alternatives.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes alternatives
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" >
<label class="md-nav__link" for="__nav_10" id="__nav_10_label" tabindex="0">
<span class="md-ellipsis">
OpenShift
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_10">
<span class="md-nav__icon md-icon"></span>
OpenShift
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="openshift.html" class="md-nav__link">
<span class="md-ellipsis">
OpenShift docs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="ocp3.html" class="md-nav__link">
<span class="md-ellipsis">
OCP 3
</span>
</a>
</li>
<li class="md-nav__item">
<a href="ocp4.html" class="md-nav__link">
<span class="md-ellipsis">
OCP 4
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_11" >
<label class="md-nav__link" for="__nav_11" id="__nav_11_label" tabindex="0">
<span class="md-ellipsis">
Rancher
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_11_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_11">
<span class="md-nav__icon md-icon"></span>
Rancher
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="rancher.html" class="md-nav__link">
<span class="md-ellipsis">
Rancher - Enterprise management for Kubernetes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_12" >
<label class="md-nav__link" for="__nav_12" id="__nav_12_label" tabindex="0">
<span class="md-ellipsis">
CI/CD
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_12_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_12">
<span class="md-nav__icon md-icon"></span>
CI/CD
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="cicd.html" class="md-nav__link">
<span class="md-ellipsis">
CI/CD - Continuous Integration & Continuous Delivery
</span>
</a>
</li>
<li class="md-nav__item">
<a href="git.html" class="md-nav__link">
<span class="md-ellipsis">
Git & Git Patterns. Trunk Devel, Git Flow & Feature Flags. Merge BOTs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="jenkins.html" class="md-nav__link">
<span class="md-ellipsis">
Jenkins & Cloudbees
</span>
</a>
</li>
<li class="md-nav__item">
<a href="performance-testing-with-jenkins-and-jmeter.html" class="md-nav__link">
<span class="md-ellipsis">
Performance testing with Jenkins, JMeter, Gatling, Azure Load Testing, etc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="openshift-pipelines.html" class="md-nav__link">
<span class="md-ellipsis">
OpenShift Pipelines with Jenkins, Tekton and more...
</span>
</a>
</li>
<li class="md-nav__item">
<a href="performance-testing-with-jenkins-and-jmeter.html" class="md-nav__link">
<span class="md-ellipsis">
Performance testing with Jenkins, JMeter, Gatling, Azure Load Testing, etc
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_12_7" >
<label class="md-nav__link" for="__nav_12_7" id="__nav_12_7_label" tabindex="0">
<span class="md-ellipsis">
DevOps Tools aka Toolchain. Jenkins Alternatives. Cloud Native CI/CD Tools
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_12_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_12_7">
<span class="md-nav__icon md-icon"></span>
DevOps Tools aka Toolchain. Jenkins Alternatives. Cloud Native CI/CD Tools
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="devops-tools.html" class="md-nav__link">
<span class="md-ellipsis">
DevOps Tools
</span>
</a>
</li>
<li class="md-nav__item">
<a href="jenkins-alternatives.html" class="md-nav__link">
<span class="md-ellipsis">
Jenkins Alternatives for Continuous Integration & Deployment
</span>
</a>
</li>
<li class="md-nav__item">
<a href="argo.html" class="md-nav__link">
<span class="md-ellipsis">
Argo - Declarative GitOps for Kubernetes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="flux.html" class="md-nav__link">
<span class="md-ellipsis">
Flux CD - The GitOps Operator for Kubernetes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="tekton.html" class="md-nav__link">
<span class="md-ellipsis">
Tekton - Cloud Native CI/CD
</span>
</a>
</li>
<li class="md-nav__item">
<a href="keptn.html" class="md-nav__link">
<span class="md-ellipsis">
Keptn
</span>
</a>
</li>
<li class="md-nav__item">
<a href="container-managers.html" class="md-nav__link">
<span class="md-ellipsis">
Container Runtimes/Managers & Base Images. Podman, Buildah & Skopeo
</span>
</a>
</li>
<li class="md-nav__item">
<a href="maven-gradle.html" class="md-nav__link">
<span class="md-ellipsis">
Maven, Gradle & SDKMAN
</span>
</a>
</li>
<li class="md-nav__item">
<a href="sonarqube.html" class="md-nav__link">
<span class="md-ellipsis">
SonarQube
</span>
</a>
</li>
<li class="md-nav__item">
<a href="registries.html" class="md-nav__link">
<span class="md-ellipsis">
Docker Registries. Quay, Nexus, JFrog Artifactory, Harbor and more
</span>
</a>
</li>
<li class="md-nav__item">
<a href="linux.html" class="md-nav__link">
<span class="md-ellipsis">
Linux & SSH
</span>
</a>
</li>
<li class="md-nav__item">
<a href="mkdocs.html" class="md-nav__link">
<span class="md-ellipsis">
MkDocs & GitHub Pages
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_12_8" >
<label class="md-nav__link" for="__nav_12_8" id="__nav_12_8_label" tabindex="0">
<span class="md-ellipsis">
Web Servers, Reverse Proxies, Java Runtimes & Caching Solutions
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_12_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_12_8">
<span class="md-nav__icon md-icon"></span>
Web Servers, Reverse Proxies, Java Runtimes & Caching Solutions
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="web-servers.html" class="md-nav__link">
<span class="md-ellipsis">
Web Servers & Reverse Proxies - Apache, Nginx, HAProxy, Traefik and more
</span>
</a>
</li>
<li class="md-nav__item">
<a href="java_app_servers.html" class="md-nav__link">
<span class="md-ellipsis">
Java EE/Jakarta EE and MicroProfile Runtimes - Payara, JBoss EAP, WebSphere Liberty, WildFly and more
</span>
</a>
</li>
<li class="md-nav__item">
<a href="embedded-servlet-containers.html" class="md-nav__link">
<span class="md-ellipsis">
Embedded Servlet Containers in SpringBoot
</span>
</a>
</li>
<li class="md-nav__item">
<a href="caching.html" class="md-nav__link">
<span class="md-ellipsis">
Caching Solutions
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_13" >
<label class="md-nav__link" for="__nav_13" id="__nav_13_label" tabindex="0">
<span class="md-ellipsis">
Montrg
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_13_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_13">
<span class="md-nav__icon md-icon"></span>
Montrg
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="monitoring.html" class="md-nav__link">
<span class="md-ellipsis">
Monitoring and Performance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="prometheus.html" class="md-nav__link">
<span class="md-ellipsis">
Prometheus
</span>
</a>
</li>
<li class="md-nav__item">
<a href="grafana.html" class="md-nav__link">
<span class="md-ellipsis">
Grafana
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_14" >
<label class="md-nav__link" for="__nav_14" id="__nav_14_label" tabindex="0">
<span class="md-ellipsis">
Infra Prov
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_14_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_14">
<span class="md-nav__icon md-icon"></span>
Infra Prov
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="iac.html" class="md-nav__link">
<span class="md-ellipsis">
IaC Infrastructure as Code
</span>
</a>
</li>
<li class="md-nav__item">
<a href="terraform.html" class="md-nav__link">
<span class="md-ellipsis">
Terraform & Packer.Kubernetes Boilerplates
</span>
</a>
</li>
<li class="md-nav__item">
<a href="pulumi.html" class="md-nav__link">
<span class="md-ellipsis">
Pulumi
</span>
</a>
</li>
<li class="md-nav__item">
<a href="crossplane.html" class="md-nav__link">
<span class="md-ellipsis">
Crossplane
</span>
</a>
</li>
<li class="md-nav__item">
<a href="cloud-arch-diagrams.html" class="md-nav__link">
<span class="md-ellipsis">
Cloud Architecture Diagram Tools
</span>
</a>
</li>
<li class="md-nav__item">
<a href="cloud-asset-inventory.html" class="md-nav__link">
<span class="md-ellipsis">
Cloud Asset Inventory
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_15" >
<label class="md-nav__link" for="__nav_15" id="__nav_15_label" tabindex="0">
<span class="md-ellipsis">
Config Mgmt
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_15">
<span class="md-nav__icon md-icon"></span>
Config Mgmt
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="ansible.html" class="md-nav__link">
<span class="md-ellipsis">
Ansible
</span>
</a>
</li>
<li class="md-nav__item">
<a href="helm.html" class="md-nav__link">
<span class="md-ellipsis">
Helm Kubernetes Tool
</span>
</a>
</li>
<li class="md-nav__item">
<a href="kustomize.html" class="md-nav__link">
<span class="md-ellipsis">
Kustomize - Template-Free Kubernetes Configuration Customization
</span>
</a>
</li>
<li class="md-nav__item">
<a href="stackstorm.html" class="md-nav__link">
<span class="md-ellipsis">
StackStorm
</span>
</a>
</li>
<li class="md-nav__item">
<a href="chef.html" class="md-nav__link">
<span class="md-ellipsis">
Chef
</span>
</a>
</li>
<li class="md-nav__item">
<a href="cicd-kubernetes-plugins.html" class="md-nav__link">
<span class="md-ellipsis">
CI/CD Kubernetes Plugins
</span>
</a>
</li>
<li class="md-nav__item">
<a href="kubernetes-client-libraries.html" class="md-nav__link">
<span class="md-ellipsis">
Client Libraries for Kubernetes - Go client, Python, Fabric8, JKube & Java Operator SDK
</span>
</a>
</li>
<li class="md-nav__item">
<a href="liquibase.html" class="md-nav__link">
<span class="md-ellipsis">
Database Version Control. Liquibase, Flyway and PlanetScale
</span>
</a>
</li>
<li class="md-nav__item">
<a href="yaml.html" class="md-nav__link">
<span class="md-ellipsis">
YAML and JSON
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16" >
<label class="md-nav__link" for="__nav_16" id="__nav_16_label" tabindex="0">
<span class="md-ellipsis">
DB
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_16_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16">
<span class="md-nav__icon md-icon"></span>
DB
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="databases.html" class="md-nav__link">
<span class="md-ellipsis">
Relational Databases and Database DevOps
</span>
</a>
</li>
<li class="md-nav__item">
<a href="crunchydata.html" class="md-nav__link">
<span class="md-ellipsis">
Crunchy Data PostgreSQL Operator
</span>
</a>
</li>
<li class="md-nav__item">
<a href="nosql.html" class="md-nav__link">
<span class="md-ellipsis">
NoSQL Databases
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="message-queue.html" class="md-nav__link">
<span class="md-ellipsis">
Data Pipeline
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_18" >
<label class="md-nav__link" for="__nav_18" id="__nav_18_label" tabindex="0">
<span class="md-ellipsis">
Service Mesh
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_18_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_18">
<span class="md-nav__icon md-icon"></span>
Service Mesh
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="servicemesh.html" class="md-nav__link">
<span class="md-ellipsis">
Service Mesh
</span>
</a>
</li>
<li class="md-nav__item">
<a href="istio.html" class="md-nav__link">
<span class="md-ellipsis">
Istio
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_19" >
<label class="md-nav__link" for="__nav_19" id="__nav_19_label" tabindex="0">
<span class="md-ellipsis">
Demos
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_19_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_19">
<span class="md-nav__icon md-icon"></span>
Demos
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="demos.html" class="md-nav__link">
<span class="md-ellipsis">
Demos, Boilerplates & Screencasts
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_20" >
<label class="md-nav__link" for="__nav_20" id="__nav_20_label" tabindex="0">
<span class="md-ellipsis">
Cloud
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_20_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_20">
<span class="md-nav__icon md-icon"></span>
Cloud
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="public-cloud-solutions.html" class="md-nav__link">
<span class="md-ellipsis">
Public Cloud Solutions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="private-cloud-solutions.html" class="md-nav__link">
<span class="md-ellipsis">
Private Cloud Solutions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="edge-computing.html" class="md-nav__link">
<span class="md-ellipsis">
Edge Computing
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_20_4" >
<label class="md-nav__link" for="__nav_20_4" id="__nav_20_4_label" tabindex="0">
<span class="md-ellipsis">
AWS Cloud
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_20_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_20_4">
<span class="md-nav__icon md-icon"></span>
AWS Cloud
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="aws.html" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-miscellaneous.html" class="md-nav__link">
<span class="md-ellipsis">
AWS Miscellaneous
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-architecture.html" class="md-nav__link">
<span class="md-ellipsis">
AWS Architecture and Best Practices
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-networking.html" class="md-nav__link">
<span class="md-ellipsis">
AWS Networking
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-databases.html" class="md-nav__link">
<span class="md-ellipsis">
AWS Databases
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-storage.html" class="md-nav__link">
<span class="md-ellipsis">
AWS Storage
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-security.html" class="md-nav__link">
<span class="md-ellipsis">
AWS Security
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-monitoring.html" class="md-nav__link">
<span class="md-ellipsis">
AWS Monitoring
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-iac.html" class="md-nav__link">
<span class="md-ellipsis">
AWS IaC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-tools-scripts.html" class="md-nav__link">
<span class="md-ellipsis">
AWS Tools Scripts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-messaging.html" class="md-nav__link">
<span class="md-ellipsis">
AWS Messaging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-data.html" class="md-nav__link">
<span class="md-ellipsis">
AWS Data
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-devops.html" class="md-nav__link">
<span class="md-ellipsis">
AWS DevOps
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-serverless.html" class="md-nav__link">
<span class="md-ellipsis">
AWS Serverless
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-pricing.html" class="md-nav__link">
<span class="md-ellipsis">
AWS Pricing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-containers.html" class="md-nav__link">
<span class="md-ellipsis">
AWS Containers
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-backup.html" class="md-nav__link">
<span class="md-ellipsis">
AWS Backup and Migrations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-training.html" class="md-nav__link">
<span class="md-ellipsis">
AWS Training and Certification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-newfeatures.html" class="md-nav__link">
<span class="md-ellipsis">
AWS New Features
</span>
</a>
</li>
<li class="md-nav__item">
<a href="aws-spain.html" class="md-nav__link">
<span class="md-ellipsis">
AWS Spain
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="azure.html" class="md-nav__link">
<span class="md-ellipsis">
Microsoft Azure
</span>
</a>
</li>
<li class="md-nav__item">
<a href="GoogleCloudPlatform.html" class="md-nav__link">
<span class="md-ellipsis">
Google Cloud Platform
</span>
</a>
</li>
<li class="md-nav__item">
<a href="ibm_cloud.html" class="md-nav__link">
<span class="md-ellipsis">
IBM & IBM Cloud
</span>
</a>
</li>
<li class="md-nav__item">
<a href="oraclecloud.html" class="md-nav__link">
<span class="md-ellipsis">
Oracle Cloud
</span>
</a>
</li>
<li class="md-nav__item">
<a href="digitalocean.html" class="md-nav__link">
<span class="md-ellipsis">
Digital Ocean
</span>
</a>
</li>
<li class="md-nav__item">
<a href="cloudflare.html" class="md-nav__link">
<span class="md-ellipsis">
Cloudflare
</span>
</a>
</li>
<li class="md-nav__item">
<a href="scaleway.html" class="md-nav__link">
<span class="md-ellipsis">
Scaleway
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_21" >
<label class="md-nav__link" for="__nav_21" id="__nav_21_label" tabindex="0">
<span class="md-ellipsis">
APIs
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_21_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_21">
<span class="md-nav__icon md-icon"></span>
APIs
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="api.html" class="md-nav__link">
<span class="md-ellipsis">
APIs with SOAP, REST and gRPC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="swagger-code-generator-for-rest-apis.html" class="md-nav__link">
<span class="md-ellipsis">
Swagger code generator for REST APIs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="postman.html" class="md-nav__link">
<span class="md-ellipsis">
API Test Automation with Postman and REST Assured
</span>
</a>
</li>
<li class="md-nav__item">
<a href="developerportals.html" class="md-nav__link">
<span class="md-ellipsis">
API Marketplaces. API Management with API Gateways & Developer Portals
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_22" >
<label class="md-nav__link" for="__nav_22" id="__nav_22_label" tabindex="0">
<span class="md-ellipsis">
Dev
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_22_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_22">
<span class="md-nav__icon md-icon"></span>
Dev
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="devel-sites.html" class="md-nav__link">
<span class="md-ellipsis">
Websites for web developers
</span>
</a>
</li>
<li class="md-nav__item">
<a href="angular.html" class="md-nav__link">
<span class="md-ellipsis">
Angular
</span>
</a>
</li>
<li class="md-nav__item">
<a href="dom.html" class="md-nav__link">
<span class="md-ellipsis">
Document Object Model (DOM)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="golang.html" class="md-nav__link">
<span class="md-ellipsis">
Golang
</span>
</a>
</li>
<li class="md-nav__item">
<a href="javascript.html" class="md-nav__link">
<span class="md-ellipsis">
JavaScript - node.js & npm
</span>
</a>
</li>
<li class="md-nav__item">
<a href="python.html" class="md-nav__link">
<span class="md-ellipsis">
Python - Django & Flask
</span>
</a>
</li>
<li class="md-nav__item">
<a href="react.html" class="md-nav__link">
<span class="md-ellipsis">
React
</span>
</a>
</li>
<li class="md-nav__item">
<a href="lowcode-nocode.html" class="md-nav__link">
<span class="md-ellipsis">
Low Code and No Code
</span>
</a>
</li>
<li class="md-nav__item">
<a href="web3.html" class="md-nav__link">
<span class="md-ellipsis">
Web 3
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_22_10" >
<label class="md-nav__link" for="__nav_22_10" id="__nav_22_10_label" tabindex="0">
<span class="md-ellipsis">
Microsoft
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_22_10_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_22_10">
<span class="md-nav__icon md-icon"></span>
Microsoft
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="dotnet.html" class="md-nav__link">
<span class="md-ellipsis">
Microsoft .NET
</span>
</a>
</li>
<li class="md-nav__item">
<a href="xamarin.html" class="md-nav__link">
<span class="md-ellipsis">
Microsoft Xamarin
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_22_11" >
<label class="md-nav__link" for="__nav_22_11" id="__nav_22_11_label" tabindex="0">
<span class="md-ellipsis">
Java
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_22_11_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_22_11">
<span class="md-nav__icon md-icon"></span>
Java
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="java_frameworks.html" class="md-nav__link">
<span class="md-ellipsis">
Java & Open Source Microservices Frameworks. SpringBoot, MicroProfile, Quarkus and more
</span>
</a>
</li>
<li class="md-nav__item">
<a href="java-and-java-performance-optimization.html" class="md-nav__link">
<span class="md-ellipsis">
Java Memory Management & Java Performance Optimization
</span>
</a>
</li>
<li class="md-nav__item">
<a href="jvm-parameters-matrix-table.html" class="md-nav__link">
<span class="md-ellipsis">
Java Parameters Matrix Table
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_22_12" >
<label class="md-nav__link" for="__nav_22_12" id="__nav_22_12_label" tabindex="0">
<span class="md-ellipsis">
Dev Environment
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_22_12_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_22_12">
<span class="md-nav__icon md-icon"></span>
Dev Environment
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="visual-studio.html" class="md-nav__link">
<span class="md-ellipsis">
Visual Studio Code
</span>
</a>
</li>
<li class="md-nav__item">
<a href="linux-dev-env.html" class="md-nav__link">
<span class="md-ellipsis">
WSL - Linux Dev Environment on Windows
</span>
</a>
</li>
<li class="md-nav__item">
<a href="scaffolding.html" class="md-nav__link">
<span class="md-ellipsis">
Scaffolding Tools
</span>
</a>
</li>
<li class="md-nav__item">
<a href="ChromeDevTools.html" class="md-nav__link">
<span class="md-ellipsis">
Chrome & Firefox DevTools. HTTP Protocols & WebSockets
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_23" >
<label class="md-nav__link" for="__nav_23" id="__nav_23_label" tabindex="0">
<span class="md-ellipsis">
QA
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_23_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_23">
<span class="md-nav__icon md-icon"></span>
QA
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="qa.html" class="md-nav__link">
<span class="md-ellipsis">
QA
</span>
</a>
</li>
<li class="md-nav__item">
<a href="testops.html" class="md-nav__link">
<span class="md-ellipsis">
TestOps and Continuous Testing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="test-automation-frameworks.html" class="md-nav__link">
<span class="md-ellipsis">
Test Automation Frameworks and BDD
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_24" >
<label class="md-nav__link" for="__nav_24" id="__nav_24_label" tabindex="0">
<span class="md-ellipsis">
AI
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_24_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_24">
<span class="md-nav__icon md-icon"></span>
AI
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="ai.html" class="md-nav__link">
<span class="md-ellipsis">
AI
</span>
</a>
</li>
<li class="md-nav__item">
<a href="ai-agents-mcp.html" class="md-nav__link">
<span class="md-ellipsis">
Model Context Protocol (MCP) & AI Agents
</span>
</a>
</li>
<li class="md-nav__item">
<a href="mlops.html" class="md-nav__link">
<span class="md-ellipsis">
MLOps
</span>
</a>
</li>
<li class="md-nav__item">
<a href="chatgpt.html" class="md-nav__link">
<span class="md-ellipsis">
ChatGPT
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_25" >
<label class="md-nav__link" for="__nav_25" id="__nav_25_label" tabindex="0">
<span class="md-ellipsis">
Project Mgmt
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_25_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_25">
<span class="md-nav__icon md-icon"></span>
Project Mgmt
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="project-management-methodology.html" class="md-nav__link">
<span class="md-ellipsis">
Project Management Methodology
</span>
</a>
</li>
<li class="md-nav__item">
<a href="project-management-tools.html" class="md-nav__link">
<span class="md-ellipsis">
Project Management Tools
</span>
</a>
</li>
<li class="md-nav__item">
<a href="appointment-scheduling.html" class="md-nav__link">
<span class="md-ellipsis">
Appointment Scheduling
</span>
</a>
</li>
<li class="md-nav__item">
<a href="workfromhome.html" class="md-nav__link">
<span class="md-ellipsis">
Work From Home
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_26" >
<label class="md-nav__link" for="__nav_26" id="__nav_26_label" tabindex="0">
<span class="md-ellipsis">
Refs+
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_26_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_26">
<span class="md-nav__icon md-icon"></span>
Refs+
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="other-awesome-lists.html" class="md-nav__link">
<span class="md-ellipsis">
Other Awesome Lists
</span>
</a>
</li>
<li class="md-nav__item">
<a href="interview-questions.html" class="md-nav__link">
<span class="md-ellipsis">
Interview Questions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="newsfeeds.html" class="md-nav__link">
<span class="md-ellipsis">
Subreddits
</span>
</a>
</li>
<li class="md-nav__item">
<a href="elearning.html" class="md-nav__link">
<span class="md-ellipsis">
E-Learning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="digital-money.html" class="md-nav__link">
<span class="md-ellipsis">
Digital Money
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_27" >
<label class="md-nav__link" for="__nav_27" id="__nav_27_label" tabindex="0">
<span class="md-ellipsis">
Hiring
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_27_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_27">
<span class="md-nav__icon md-icon"></span>
Hiring
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="recruitment.html" class="md-nav__link">
<span class="md-ellipsis">
Recruitment
</span>
</a>
</li>
<li class="md-nav__item">
<a href="hr.html" class="md-nav__link">
<span class="md-ellipsis">
Human Resources
</span>
</a>
</li>
<li class="md-nav__item">
<a href="freelancing.html" class="md-nav__link">
<span class="md-ellipsis">
Freelancing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="remote-tech-jobs.html" class="md-nav__link">
<span class="md-ellipsis">
Remote Tech Jobs
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="customer.html" class="md-nav__link">
<span class="md-ellipsis">
Clients
</span>
</a>
</li>
<li class="md-nav__item">
<a href="about.html" class="md-nav__link">
<span class="md-ellipsis">
About
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="kubernetes-networking">Kubernetes Networking</h1>
<ol>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#kubernetes-dns">Kubernetes DNS</a></li>
<li><a href="#kubernetes-services-and-load-balancing">Kubernetes Services and Load Balancing</a></li>
<li><a href="#tcp-keep-alive-requests">TCP Keep Alive Requests</a></li>
<li><a href="#headless-kubernetes-service">Headless Kubernetes Service</a></li>
<li><a href="#networkpolicy">NetworkPolicy</a></li>
<li><a href="#nginx-ingress-controller">Nginx Ingress Controller</a></li>
<li><a href="#contour-ingress-controller">Contour Ingress Controller</a></li>
<li><a href="#kubernetes-gateway-api">Kubernetes Gateway API</a></li>
<li><a href="#kube-proxy">Kube-proxy</a></li>
<li><a href="#multicloud-communication-for-kubernetes">Multicloud communication for Kubernetes</a></li>
<li><a href="#multi-cluster-kubernetes-networking">Multi-Cluster Kubernetes Networking</a></li>
<li><a href="#kubernetes-network-policy">Kubernetes Network Policy</a><ol>
<li><a href="#cilium">Cilium</a></li>
<li><a href="#kubernetes-network-policy-samples">Kubernetes Network Policy Samples</a></li>
</ol>
</li>
<li><a href="#kubernetes-ingress-specification">Kubernetes Ingress Specification</a></li>
<li><a href="#xposer-kubernetes-controller-to-manage-ingresses">Xposer Kubernetes Controller To Manage Ingresses</a></li>
<li><a href="#software-defined-ip-address-management-ipam">Software-Defined IP Address Management (IPAM)</a></li>
<li><a href="#cni-container-networking-interface">CNI Container Networking Interface</a><ol>
<li><a href="#list-of-existing-cni-plugins-ipam">List of existing CNI Plugins (IPAM)</a></li>
<li><a href="#project-calico">Project Calico</a></li>
</ol>
</li>
<li><a href="#dns-service-with-coredns">DNS Service with CoreDNS</a></li>
<li><a href="#kubernetes-node-local-dns-cache">Kubernetes Node Local DNS Cache</a></li>
<li><a href="#k8gb">k8gb</a></li>
<li><a href="#vpc-lattice">VPC Lattice</a></li>
<li><a href="#images">Images</a></li>
<li><a href="#videos">Videos</a></li>
<li><a href="#tweets">Tweets</a></li>
</ol>
<h2 id="introduction">Introduction</h2>
<ul>
<li><a href="https://kubernetes.io/docs/concepts/cluster-administration/networking">kubernetes.io: The Kubernetes network model. How to implement the Kubernetes networking model</a></li>
<li><a href="https://blog.ovhcloud.com">ovh.com - getting external traffic into kubernetes: clusterip, nodeport, loadbalancer and ingress</a></li>
<li><a href="https://learnkube.com/kubernetes-long-lived-connections"><mark>learnk8s.io: Load balancing and scaling long-lived connections in Kubernetes</mark> 🌟🌟🌟</a> <strong>Kubernetes doesn&rsquo;t load balance long-lived connections, and some Pods might receive more requests than others. If you&rsquo;re using HTTP/2, gRPC, etc. or any other long-lived connection, you might want to consider client-side load balancing</strong></li>
<li><a href="https://www.stackrox.com/post/2020/01/kubernetes-networking-demystified">stackrox.com: Kubernetes Networking Demystified: A Brief Guide</a></li>
<li><a href="https://medium.com/@sindhujacynixit/fighting-service-latency-in-microservices-with-kubernetes-f5a584f5af36">medium.com: Fighting Service Latency in Microservices With Kubernetes</a></li>
<li><a href="https://medium.com/google-cloud/kubernetes-nodeport-vs-loadbalancer-vs-ingress-when-should-i-use-what-922f010849e0">medium.com: Kubernetes NodePort vs LoadBalancer vs Ingress? When should I use what? 🌟</a></li>
<li><a href="https://blog.alexellis.io/ingress-for-your-local-kubernetes-cluster">blog.alexellis.io: Get a LoadBalancer for your private Kubernetes cluster</a></li>
<li><a href="https://dustinspecker.com/posts/how-do-kubernetes-and-docker-create-ip-addresses">dustinspecker.com: How Do Kubernetes and Docker Create IP Addresses?!</a></li>
<li><a href="https://www.youtube.com/watch?v=VicH6KojwCI">youtube: Kubernetes Ingress Explained Completely For Beginners</a></li>
<li><a href="https://ambking1234.biz/?action=register&amp;marketingRef=6788b227da9499f55f6ea745">AWS and Kubernetes Networking Options and Trade-Offs (part 1)</a></li>
<li><a href="https://ambking1234.biz/?action=register&amp;marketingRef=6788b227da9499f55f6ea745">AWS and Kubernetes Networking Options and Trade-Offs (part 2)</a></li>
<li><a href="https://medium.com/faun/service-types-in-kubernetes-24a1587677d6">medium: Service Types in Kubernetes? 🌟</a> A Service enables network access to a set of Pods in Kubernetes.</li>
<li><a href="https://traefik.io/blog/kubernetes-ingress-service-api-demystified">containo.us: Kubernetes Ingress &amp; Service API Demystified</a></li>
<li><a href="https://speakerdeck.com/thockin/kubernetes-and-networks-why-is-this-so-dang-hard">speakerdeck.com: Kubernetes and networks. Why is this so dan hard? 🌟</a></li>
<li><a href="https://eevans.co/blog/deconstructing-kubernetes-networking">eevans.co: Deconstructing Kubernetes Networking</a></li>
<li><a href="https://blog.getambassador.io/externaltrafficpolicy-local-on-kubernetes-e66e498212f9">externalTrafficPolicy=local on kubernetes. How to preserve the source IP in kubernetes</a> externalTrafficPolicy=local is an annotation on the Kubernetes service resource that can be set to preserve the client source IP. When it is set, the actual IP address of a client is propagated to the K8s service instead of the IP address of the node.</li>
<li><a href="https://ronaknathani.com/blog/2020/08/how-a-kubernetes-pod-gets-an-ip-address">ronaknathani.com: How a Kubernetes Pod Gets an IP Address 🌟</a></li>
<li><a href="https://opensource.com/article/20/8/ingress-controllers-kubernetes">opensource.com: Why I use Ingress Controllers to expose Kubernetes services</a> Kubernetes ingress controllers will make or break your cloud architecture.</li>
<li><a href="https://blog.nody.cc/posts/2020-06-kubernetes-network-policy-verification">blog.nody.cc: Verify your Kubernetes Cluster Network Policies: From Faith to Proof</a></li>
<li><a href="https://medium.com/@jmrobles/how-to-setup-hetzner-load-balancer-on-a-kubernetes-cluster-2ce79ca4a27b">medium: How to setup Hetzner load balancer on a Kubernetes cluster</a></li>
<li><a href="https://zhimin-wen.medium.com/sticky-sessions-in-kubernetes-56eb0e8f257d">zhimin-wen.medium.com: Sticky Sessions in Kubernetes 🌟</a></li>
<li><a href="https://www.infoq.com/news/2020/09/kubernetes-ingress-ga">infoq.com: Kubernetes Ingress Is Now Generally Available</a></li>
<li><a href="https://docs.google.com/spreadsheets/d/191WWNpjJ2za6-nbG4ZoUMXMpUK8KlCIosvQB0f-oq3k/edit#gid=907731238">Learnk8s: Comparison of Kubernetes Ingress Controllers 🌟🌟</a> How do you choose the <em>right</em> Kubernetes Ingress controller when: Not all Ingress controllers support UDP, Only Kong has a free LDAP integration, Nginx Ingress and HAProxy are the only two ingress without CRDs.</li>
<li><a href="https://blog.alexellis.io/get-private-kubectl-access-anywhere">blog.alexellis.io: Get kubectl access to your private cluster from anywhere</a></li>
<li><a href="https://jmrobles.medium.com/how-to-setup-hetzner-load-balancer-on-a-kubernetes-cluster-2ce79ca4a27b">jmrobles.medium.com: How to setup Hetzner load balancer on a Kubernetes cluster</a></li>
<li><a href="https://kubernetes.io/blog/2020/09/02/scaling-kubernetes-networking-with-endpointslices">kubernetes.io: Scaling Kubernetes Networking With EndpointSlices</a> EndpointSlices are a new Kubernetes API that provides a scalable and extensible alternative to the Endpoints API.</li>
<li><a href="https://medium.com/better-programming/creating-a-custom-annotation-for-the-kubernetes-ingress-nginx-controller-444e9d486192">medium: Create a Custom Annotation for the Kubernetes ingress-nginx Controller</a></li>
<li><a href="https://www.haproxy.com/blog/announcing-haproxy-kubernetes-ingress-controller-1-5">haproxy.com: Announcing HAProxy Kubernetes Ingress Controller 1.5 🌟</a></li>
<li><a href="https://www.devclass.com/containers/2021/01/26/haproxy-ingress-controller-15-introduces-mtls-support-gives-load-balancing-experts-more-power/1619777">devclass.com: HAProxy Ingress Controller 1.5 introduces mTLS support, gives load balancing experts more power</a></li>
<li><a href="https://thenewstack.io/haproxy-kubernetes-ingress-controller-moves-outside-the-cluster">thenewstack.io: HAProxy Kubernetes Ingress Controller Moves Outside the Cluster</a></li>
<li><a href="https://www.suse.com/c/nginx-guest-blog-kubernetes-ingress-controller">suse.com: NGINX Guest Blog: NGINX Kubernetes Ingress Controller 🌟</a></li>
<li><a href="https://blog.cloudflare.com/moving-k8s-communication-to-grpc">blog.cloudflare.com: Moving k8s communication to gRPC</a></li>
<li><a href="https://github.com/AbsaOSS/k8gb">K8GB - Kubernetes Global Balancer</a> - <a href="https://www.redhat.com/en/blog/openshift-commons-briefing-k8gb-kubernetes-global-balancer-with-yuri-tsarev-absa-and-paul-morie-red-hat">openshift.com: K8GB - Kubernetes Global Balancer </a></li>
<li><a href="https://www.altoros.com/blog/kubernetes-networking-writing-your-own-simple-cni-plug-in-with-bash">altoros.com: Kubernetes Networking: How to Write Your Own CNI Plug-in with Bash</a></li>
<li><a href="https://github.com/kakao/network-node-manager">Network Node Manager</a> network-node-manager is a kubernetes controller that controls the network configuration of a node to resolve network issues of kubernetes. By simply deploying and configuring network-node-manager, you can solve kubernetes network issues that cannot be resolved by kubernetes or resolved by the higher kubernetes Version. Below is a list of kubernetes&rsquo;s issues to be resolved by network-node-manager. network-node-manager is based on kubebuilder v2.3.1.</li>
<li><a href="https://docs.getenroute.io">getenroute.io: Drive API Security At Kubernetes Ingress Using Helm And Envoy 🌟</a></li>
<li><a href="https://www.ithands-on.com/2021/04/kubernetes-101-external-services.html">ithands-on.com: Kubernetes 101 : External services - ExternalName, DNS and Endpoints</a></li>
<li><a href="https://www.ibm.com/think">ibm.com: Multizone Kubernetes and VPC Load Balancer Setup</a> Securely expose your Kubernetes app by setting up a Load Balancer for VPC in a different zone.</li>
<li><a href="https://opensource.googleblog.com/2020/11/kubernetes-efficient-multi-zone.html">opensource.googleblog.com: Kubernetes: Efficient Multi-Zone Networking with Topology Aware Routing</a></li>
<li><a href="https://nbailey.ca/post/k8s-networking">nbailey.ca: Domesticated Kubernetes Networking</a></li>
<li><a href="https://sookocheff.com/post/kubernetes/understanding-kubernetes-networking-model">sookocheff.com: A Guide to the Kubernetes Networking Model 🌟</a></li>
<li><a href="https://build.thebeat.co/a-curious-case-of-aws-nlb-timeouts-in-kubernetes-522bd88a3399">build.thebeat.co: A curious case of AWS NLB timeouts in Kubernetes</a> A debugging adventure that allowed us to solve the tail latencies our Kubernetes applications were experiencing when talking with our AWS NLB.</li>
<li><a href="https://ingressbuilder.jetstack.io">ingressbuilder.jetstack.io 🌟🌟</a> Ingress Builder allows users to select any annotation from the list of available controllers, to add to the ingress manifest.</li>
<li><a href="https://itnext.io/generating-kubernetes-network-policies-by-sniffing-network-traffic-6d5135fe77db">itnext.io: Generating Kubernetes Network Policies Automatically By Sniffing Network Traffic 🌟</a> This blog post is about an experiment to automate creation of Kubernetes Network Policies based on actual network traffic captured from applications running on a Kubernetes cluster - <a href="https://github.com/mcelep/blog/tree/master/automated-networkpolicy-generation">code</a></li>
<li><a href="https://medium.com/@maninder.bindra/using-nginx-ingress-controller-to-restrict-access-by-ip-ip-whitelisting-for-a-service-deployed-to-bd5c86dc66d6">medium: Using nginx-ingress controller to restrict access by IP (ip whitelisting) for a service deployed to a Kubernetes (AKS) cluster</a></li>
<li><a href="https://www.redhat.com/en/blog/grpc-or-http/2-ingress-connectivity-in-openshift">openshift.com: gRPC or HTTP/2 Ingress Connectivity in OpenShift 🌟</a></li>
<li><a href="https://inlets.dev/blog/2021/07/08/short-lived-clusters.html">inlets.dev: Fixing Ingress for short-lived local Kubernetes clusters</a></li>
<li><a href="https://www.f5.com/products/nginx">nginx.com: How to Simplify Kubernetes Ingress and Egress Traffic Management</a></li>
<li><a href="https://blog.teamhephy.info/blog/posts/tutorials/running-workflow-without-any-loadbalancer.html">blog.teamhephy.info: Running Workflow Without Any LoadBalancer</a></li>
<li><a href="https://blog.alexellis.io/ingress-for-your-local-kubernetes-cluster">blog.alexellis.io: Get a public LoadBalancer for your private Kubernetes cluster 🌟</a></li>
<li><a href="https://www.techtarget.com/searchitoperations/feature/Differences-between-Kubernetes-Ingress-vs-load-balancer">searchitoperations.techtarget.com: Differences between Kubernetes Ingress vs. load balancer</a> To manage Kubernetes cluster traffic, admins have a few choices. Compare Kubernetes Ingress vs. load balancers, as well as the NodePort and ClusterIP service types.</li>
<li><a href="https://monzo.com/blog/controlling-outbound-traffic-from-kubernetes">monzo.com: Controlling outbound traffic from Kubernetes</a></li>
<li><a href="https://medium.com/codex/access-application-externally-in-kubernetes-cluster-using-load-balancer-service-d1b7858d51">medium: Access Application Externally In Kubernetes Cluster using Load Balancer Service</a> Learn how to create a Pod and how to create a Load Balancer service using Kubernetes cluster. And access the application from outside.</li>
<li><a href="https://itnext.io/why-and-how-of-kubernetes-ingress-and-networking-6cb308ca03d2">itnext.io: Why and How of Kubernetes Ingress (and Networking) 🌟</a></li>
<li><a href="https://techdozo.dev/grpc-load-balancing-on-kubernetes-using-headless-service">techdozo.dev: gRPC load balancing on Kubernetes (using Headless Service)</a></li>
<li><a href="https://thenewstack.io/zerolb-a-new-decentralized-pattern-for-load-balancing">thenewstack.io: ZeroLB, a New Decentralized Pattern for Load Balancing</a></li>
<li><a href="https://ungleich.ch/u/blog/kubernetes-making-dns-publicly-reachable">ungleich.ch: Making kubernetes kube-dns publicly reachable</a></li>
<li><a href="https://ungleich.ch/u/blog/kubernetes-without-ingress">ungleich.ch: Building Ingress-less Kubernetes Clusters</a> Building Ingress-less Kubernetes Clusters with IPv6</li>
<li><a href="https://thenewstack.io/ingress-controllers-the-more-the-merrier">thenewstack.io: Ingress Controllers: The More the Merrier</a></li>
<li><a href="https://levelup.gitconnected.com/setting-up-application-load-balancer-ingress-for-the-pods-running-in-aws-eks-fargate-519e20e97497">levelup.gitconnected.com: Setting up Application Load Balancer (Ingress) for the Pods running in AWS EKS Fargate</a></li>
<li><a href="https://devopscube.com/kubernetes-ingress-tutorial">devopscube.com: Kubernetes Ingress Tutorial For Beginners 🌟</a> In this Kubernetes ingress tutorial, you will learn the basic concepts of ingress, the native ingress resource object, and the concepts involved in ingress controllers</li>
<li><a href="https://ystatit.medium.com/how-to-change-kubernetes-kube-apiserver-ip-address-402d6ddb8aa2">ystatit.medium.com: How to Change Kubernetes Kube-apiserver IP Address</a></li>
<li><a href="https://monzo.com/blog/controlling-outbound-traffic-from-kubernetes">monzo.com: Controlling outbound traffic from Kubernetes</a></li>
<li><a href="https://www.f5.com/products/nginx">nginx.com: Reducing Kubernetes Costs by 70% in the Cloud with NGINX, Opsani, and Prometheus</a></li>
<li><a href="https://www.ithands-on.com/2021/09/kubernetes-101-changing-service-type.html">ithands-on.com: Kubernetes 101 : Changing a service type</a> If we realize that our service, a ClusterIP doesn&rsquo;t suit our needs anymore, we could change its type to a nodePort service for example.</li>
<li><a href="https://www.redhat.com/en/blog/global-load-balancer-approaches">cloud.redhat.com: Global Load Balancer Approaches 🌟</a></li>
<li><a href="https://www.vcluster.com/blog/kubernetes-nginx-ingress"><mark>loft.sh: Kubernetes NGINX Ingress: 10 Useful Configuration Options</mark> 🌟</a> Kubernetes Ingress is the object that provides routing rules into your cluster. To best serve traffic to your app, you need to correctly configure it. This is an incredible article from loft.sh with 10 useful options for configuring NginX Ingress</li>
<li><a href="https://technos.medium.com/kubernetes-services-for-absolute-beginners-nodeport-139b7060fe3"><mark>technos.medium.com: Kubernetes Services for Absolute Beginners — NodePort</mark> 🌟</a></li>
<li><a href="https://fransemalila.medium.com/kubernetes-networking-cea2e1b7d2b3">fransemalila.medium.com: Kubernetes Networking</a> To access the application over the network, K8s services must be used to expose the pods to external traffic and load balancing the traffic across multiple pods.<ul>
<li>Cluster IP</li>
<li>Target Ports</li>
<li>Node Port</li>
<li>External IPs</li>
<li>Load Balancer</li>
</ul>
</li>
<li><a href="https://thenewstack.io/ingress-controllers-the-swiss-army-knife-of-kubernetes"><mark>thenewstack.io: Ingress Controllers: The Swiss Army Knife of Kubernetes</mark></a></li>
<li><a href="https://www.f5.com/products/nginx"><mark>nginx.com: Kubernetes Networking 101</mark></a></li>
<li><a href="https://medium.com/the-programmer/working-with-clusterip-service-type-in-kubernetes-45f2c01a89c8">medium.com/the-programmer: Working With ClusterIP Service Type In Kubernetes</a> Working with services in Kubernetes Using ClusterIP</li>
<li><a href="https://olamiko.medium.com/technical-series-kubernetes-networking-5a5dc3823163">olamiko.medium.com: Technical Series: Kubernetes Networking</a></li>
<li><a href="https://learnkube.com/kubernetes-network-packets"><mark>learnk8s.io: Tracing the path of network traffic in Kubernetes</mark> 🌟</a></li>
<li><a href="https://devopslearners.com/kubernetes-ingress-tutorial-for-beginners-26c2f7727bc"><mark>devopslearners.com: Kubernetes Ingress Tutorial For Beginners</mark></a> - <a href="https://devopscube.com/kubernetes-ingress-tutorial">https://devopscube.com/kubernetes-ingress-tutorial</a></li>
<li><a href="https://devopscube.com/configure-ingress-tls-kubernetes">devopscube.com: How To Configure Ingress TLS/SSL Certificates in Kubernetes</a></li>
<li><a href="https://www.armosec.io/blog/kubernetes-ingress-beginners-guide">armosec.io: Getting Started with Kubernetes Ingress | Ben Hirschberg</a></li>
<li><a href="https://itnext.io/kubernetes-service-type-lb-for-on-prem-deployments-89e9b2a73a0c"><mark>itnext.io: Kubernetes Service Type LB for On Prem Deployments</mark></a></li>
<li><a href="https://medium.com/techbeatly/kubernetes-networking-fundamentals-d30baf8a28c8"><mark>medium.com/techbeatly: Kubernetes Networking Fundamentals</mark></a></li>
<li><a href="https://rajivsharma-2205.medium.com/demystify-how-traffic-reaches-directly-to-pod-on-using-alb-ingress-kubernetes-io-target-type-ip-f2d1be346b46">rajivsharma-2205.medium.com: Demystify how traffic reaches directly to pod on using alb.ingress.kubernetes.io/target-type: ip</a></li>
<li><a href="https://medium.com/linux-shots/kubernetes-ingress-as-reverse-proxy-to-application-running-outside-cluster-206b6003f9cb">medium.com/linux-shots: Kubernetes ingress as reverse proxy to Application running outside cluster</a> This article demonstrates how to serve an application running outside Kubernetes as if it were part of the cluster by configuring the Ingress controller and using the ExternalName Service.</li>
<li><a href="https://medium.com/@zhaoyi0113/kubernetes-how-does-service-network-work-in-the-cluster-d235b69ff536">medium.com/@zhaoyi0113: Kubernetes — How does service network work in the cluster</a></li>
<li><a href="https://medium.com/@pavanbelagatti/kubernetes-service-types-explained-2709cde3bc0c"><mark>medium.com/@pavanbelagatti: Kubernetes Service Types Explained</mark> 🌟</a></li>
<li><a href="https://www.tkng.io"><mark>tkng.io: The Kubernetes Networking Guide</mark> 🌟🌟</a> The purpose of The Kubernetes networking guide is to provide an overview of various Kubernetes networking components with a specific focus on exactly how they implement the required functionality<ul>
<li><a href="https://www.tkng.io/arch"><mark>tkng.io/arch: THE KUBERNETES NETWORK MODEL</mark> 🌟🌟</a></li>
</ul>
</li>
<li><a href="https://medium.com/stakater/efficiently-expose-services-on-kubernetes-494a80f88aad">medium.com/stakater: Efficiently Expose Services on Kubernetes (part 1) 🌟</a><ul>
<li><a href="https://medium.com/stakater/efficiently-expose-services-on-kubernetes-part-2-c302f135f719">medium.com/stakater: Efficiently Expose Services on Kubernetes (part 2)</a></li>
</ul>
</li>
<li><a href="https://platform9.com/blog/ultimate-guide-to-kubernetes-ingress-controllers"><mark>platform9.com: Ultimate Guide to Kubernetes Ingress Controllers</mark> 🌟</a></li>
<li><a href="https://faun.pub/kubernetes-service-types-tutorial-39223391316c">faun.pub: Kubernetes Service Types Tutorial | Pavan Belagatti 🌟</a> Configure ClusterIP, NodePort, LoadBalancer and Ingress</li>
<li><a href="https://medium.com/slalom-build/managing-ingress-traffic-on-kubernetes-platforms-ebd537cdfb46">medium.com/slalom-build: Managing Ingress Traffic on Kubernetes Platforms 🌟</a> <strong>Why you need an Ingress and how to pick the right one</strong></li>
<li><a href="https://craig-godden-payne.medium.com/how-does-ingress-work-in-kubernetes-f3b121d0351f">craig-godden-payne.medium.com: How does ingress work in Kubernetes?</a> And how to set up ingress in minikube</li>
<li><a href="https://dustinspecker.com/posts/kubernetes-networking-from-scratch-bgp-bird-advertise-pod-routes">dustinspecker.com: Kubernetes Networking from Scratch: Using BGP and BIRD to Advertise Pod Routes</a> In this article, you will learn how Calico sets up pod routes between Kubernetes nodes. In this post, you won&rsquo;t use containers or pods. You&rsquo;ll learn by creating network namespaces and virtual ethernet devices manually.</li>
<li><a href="https://home.robusta.dev/blog/kubernetes-service-vs-loadbalancer-vs-ingress"><mark>home.robusta.dev: The ultimate guide to Kubernetes Services, LoadBalancers, and Ingress</mark> 🌟🌟🌟</a></li>
<li><a href="https://sanjimoh.medium.com/demystifying-kubernetes-networking-episode-1-ca5605a97f87">sanjimoh.medium.com: Demystifying Kubernetes Networking — Episode 1</a> In this series of articles you will learn about Kubernetes networking:<ul>
<li>Linux namespaces and Networking namespace</li>
<li>Intra pod networking &amp; pause container</li>
<li>Kubernetes networking model</li>
</ul>
</li>
<li><a href="https://dev.to/imjoseangel/tune-up-your-kubernetes-application-performance-with-a-small-dns-configuration-1o46"><mark>dev.to: Tune up your Kubernetes Application Performance with a small DNS Configuration</mark></a></li>
<li><a href="https://medium.com/@mehmetodabashi/kubernetes-networking-and-service-object-understanding-clusterip-and-nodeport-with-hands-on-study-90cfeaf66e8c">medium.com/@mehmetodabashi: Kubernetes networking and service object: Understanding ClusterIp and nodePort with hands on study</a></li>
<li><a href="https://medium.com/@jasonmfehr/inspecting-kubernetes-client-to-api-server-network-traffic-cd6d1802bb43">medium.com/@jasonmfehr: Inspecting Kubernetes Client to API Server Network Traffic</a></li>
<li><a href="https://medium.com/geekculture/k8s-network-cni-introduction-b035d42ad68f">medium.com/geekculture: K8s Network — CNI Introduction</a> Introduction to K8s container network interface</li>
<li><a href="https://medium.com/patilswapnilv/getting-started-with-kubernetes-networking-7e10623fc78f"><mark>medium.com/patilswapnilv: Getting Started with Kubernetes Networking</mark> 🌟</a> <strong>In this article, you will examine Kubernetes networking with the help of 10 detailed diagrams</strong></li>
<li><a href="https://faun.pub/kubernetes-ingress-with-nginx-3c77e703e91a"><mark>faun.pub: Kubernetes Ingress with Nginx</mark></a> How to install and secure Nginx Ingress</li>
<li><a href="https://medium.com/codex/access-application-externally-in-kubernetes-cluster-using-load-balancer-service-d1b7858d51">medium.com/codex: Access Application Externally In Kubernetes Cluster using Load Balancer Service</a> Learn how to create a Pod and how to create a Load Balancer service using Kubernetes cluster. And access the application from outside.</li>
<li><a href="https://itnext.io/inspecting-and-understanding-service-network-dfd8c16ff2c5">itnext.io: Inspecting and Understanding k8s Service Network 🌟</a></li>
<li><a href="https://ovidiuborlean.medium.com/networking-latency-measurement-in-kubernetes-with-sockperf-plugin-68283a0ed989">ovidiuborlean.medium.com: Networking latency measurement in Kubernetes with Sockperf plugin</a></li>
<li><a href="https://itnext.io/kubernetes-network-deep-dive-7492341e0ab5">itnext.io: Kubernetes networking deep dive: Did you make the right choice?</a> Kubernetes networking design can be intimidating, especially when you are the one to make decisions for cluster-level network choices. In this session, we will discuss how these choices will affect cluster routing and load balancing, focusing on KubeProxy modes(iptables vs IPVS) and network solutions.</li>
<li><a href="https://medium.com/@muhidabid.cs/why-does-kubernetes-need-ingress-73d969fb6ffe">medium.com/@muhidabid.cs: Why does Kubernetes need Ingress?</a> - <a href="https://muhidabid.hashnode.dev/why-does-kubernetes-need-ingress">muhidabid.hashnode.dev: Why does Kubernetes need Ingress?</a></li>
<li><a href="https://blog.devgenius.io/k8s-ipvs-mode-introduction-6457a02cd91a">blog.devgenius.io: K8s — ipvs Mode Introduction</a></li>
<li><a href="https://www.edureka.co/blog/kubernetes-networking"><mark>edureka.co: Kubernetes Networking A Comprehensive Guide To The Networking Concepts In Kubernetes</mark></a></li>
<li><a href="https://whyk8s.substack.com/p/why-not-dns">whyk8s.substack.com: Why not DNS?</a> Why is KubeProxy necessary? Couldn&rsquo;t simple DNS records do the job? You do a DNS lookup on my-service in Kubernetes. You do NOT get back IPs for pods that provide that Service. Have you ever wondered why?</li>
<li><a href="https://medium.com/geekculture/kubernetes-gateway-api-the-intro-you-need-to-read-80965f7acd82">medium.com/geekculture: Kubernetes Gateway API: The Intro You Need To Read</a> In this article, you&rsquo;ll learn how to deploy k3s to a Raspberry Pi cluster with ClusterHat and ClusterCTRL</li>
<li><a href="https://ksingh7.medium.com/kubernetes-endpoint-object-your-bridge-to-external-services-3fc48263b776"><mark>ksingh7.medium.com: Kubernetes Endpoint Object: Your Bridge to External Services</mark> 🌟🌟</a> Chances are that you might want to access services external to the cluster, such as a database. In this article, you will learn how to create an endpoint manually to make an external database available to the Pods in the cluster.</li>
<li><a href="https://medium.com/@ahmet16ck/what-is-load-balancer-and-how-does-it-work-in-kubernetes-5ab5f0537069">medium.com/@ahmet16ck: What Is Load Balancer and How Does It Work In Kubernetes ? 🌟</a></li>
<li><a href="https://api7.ai/blog/apisix-ingress-support-thousands-pod-replicas">api7.ai: How Does APISIX Ingress Support Thousands of Pod Replicas?</a> In this article, you&rsquo;ll explore the challenges of deploying large numbers of Pods in your Kubernetes cluster. You&rsquo;ll also compare Endpoints and EndpointSlice and discuss how to enable EndpointSlice when installing APISIX Ingress.</li>
<li><a href="https://medium.com/illuminations-mirror/basic-networking-and-communication-between-pods-in-kubernetes-2e1627b03a87">medium.com/illuminations-mirror: Basic | Networking and Communication Between Pods in Kubernetes</a></li>
<li><a href="https://blog.devops.dev/networking-in-kubernetes-55dcf794b9cd">blog.devops.dev: Networking in Kubernetes</a> In this blog post, were going to delve into the world of Kubernetes networking and explore the many components that make it such a powerful and reliable platform for modern containerized applications. lets discover the essential networking components that make Kubernetes the go-to choice for cloud-native deployments!</li>
<li><a href="https://medium.com/@mustafaaltunok/how-ingress-service-deployment-and-pod-link-to-eachother-d3a6ae2c0e06">medium.com/@mustafaaltunok: How Ingress, Service, Deployment and Pod Link to each other</a> In Kubernetes domain, deployment of an app consists of mainly three components. From outer to inner.</li>
<li><a href="https://inlets.dev/blog/2023/02/24/ingress-for-local-kubernetes-clusters.html">inlets.dev: How to Get Ingress for Private Kubernetes Clusters</a> By design, local Kubernetes clusters are inaccessible from the internet. So how can we fix that if we want to use Ingress? What are the options for getting a public IP or LoadBalancer for local Kubernetes clusters? I cover use-cases and compare port-forwarding, Ngrok, Wireguard and inletsdev</li>
<li><a href="https://blog.devops.dev/demystifying-kubernetes-understanding-ingress-configuration-and-best-practices-fb34e33e5f5f">blog.devops.dev: Demystifying Kubernetes:Understanding Ingress, Configuration, and Best Practices</a> A comprehensive overview of Kubernetes, the basics of ingress and how to configure it to expose services within K8s cluster.</li>
<li><a href="https://dev.to/narasimha1997/communication-between-microservices-in-a-kubernetes-cluster-1n41"><mark>dev.to/narasimha1997: Communication between Microservices in a Kubernetes cluster</mark> 🌟</a> <strong>This article discusses the various ways in which microservices in Kubernetes can communicate with each other. It provides an example of two pods, one acting as an HTTP web server and the other as a curl client that makes a request to the web server.</strong></li>
<li><a href="https://medium.com/google-cloud/kubernetes-ingress-vs-gateway-api-647ee233693d"><mark>medium.com/google-cloud: Kubernetes Ingress Vs Gateway API</mark> 🌟</a> Understanding the Differences between Kubernetes Ingress and Gateway API for Effective Traffic Management</li>
<li><a href="https://medium.com/nerd-for-tech/kubernetes-deploying-nginx-with-a-configmap-e8a2fe59bcb1">medium.com/nerd-for-tech: Kubernetes: Deploying NGINX with a ConfigMap | Chanel Jemmott</a></li>
<li><a href="https://medium.com/@sangjinn/how-to-communicate-with-kubernetes-workloads-1-service-abe1c5b03fc">medium.com/@sangjinn: How to communicate with Kubernetes workloads — Part I. Service | Brandon Kang</a><ul>
<li><a href="https://medium.com/@sangjinn/how-to-communicate-with-kubernetes-workloads-2-ingress-18f44a712690">medium.com/@sangjinn: How to communicate with Kubernetes workloads — Part II. Ingress | Brandon Kang</a></li>
</ul>
</li>
<li><a href="https://shahneil.medium.com/what-are-kubernetes-endpoints-and-how-to-use-them-a5a5da56f4d4"><mark>shahneil.medium.com: What Are Kubernetes Endpoints?</mark></a></li>
<li><a href="https://fr4nk.xyz/understanding-ingress-in-kubernetes-a-comprehensive-guide-b23b5cf37f8d"><mark>fr4nk.xyz: Understanding Ingress in Kubernetes: A Comprehensive Guide</mark></a> <strong>Kubernetes Ingress plays a crucial role in managing external access to services within a cluster.</strong></li>
<li><a href="https://thenewstack.io/otterize-intent-based-access-control-for-kubernetes-and-cloud">thenewstack.io: Otterize: Intent-Based Access Control for Kubernetes and Cloud</a> Otterize offers intent-based access control and secure connectivity management within clusters and across the cloud.</li>
<li><a href="https://palark.com/blog/comparing-ingress-controllers-for-kubernetes">blog.palark.com: Comparing Ingress controllers for Kubernetes</a></li>
<li><a href="https://community.ops.io/danielepolencic/learning-how-an-ingress-controller-works-by-building-one-in-bash-3fni"><mark>community.ops.io: Kubernetes Ingress Controller. How does it work?=</mark></a> Learning how an ingress controller works by building one in bash.</li>
<li><a href="https://medium.com/@rasikzilte711/kubernetes-networking-a-guide-to-services-ingress-network-policies-dns-and-cni-plugins-fc1ad7d22ab4">medium.com/@rasikzilte711: Kubernetes Networking — A Guide to Services, Ingress, Network Policies, DNS, and CNI Plugins</a></li>
<li><a href="https://www.sysdig.com/blog/kubernetes-services-clusterip-nodeport-loadbalancer">sysdig.com: Kubernetes Services: ClusterIP, Nodeport and LoadBalancer</a> Your Kubernetes Pods have internal IPs, but can since Pods are created and destroyed, can you rely on those? Discover services and their types: ClusterIP, NodePort and LoadBalancer</li>
<li><a href="https://medium.com/codex/capture-tcpdump-with-ksniff-and-wireshark-from-kubernetes-c212b93ff9f9">medium.com/codex: Capture tcpdump with ksniff and wireshark from Kubernetes</a> In Kubernetes, there are many ways to deploy and run apps, such as pods, services, and more. Tcpdump can be used to capture network traffic between these components, helping to identify network issues and diagnose problems.</li>
<li><a href="https://www.cloudtechtwitter.com/2022/05/reverse-proxy-vs-forward-proxy.html">cloudtechtwitter.com: Reverse Proxy vs. Forward Proxy: The Differences</a></li>
<li><a href="https://matthewpalmer.net/kubernetes-app-developer/articles/kubernetes-networking-guide-beginners.html">matthewpalmer.net: Kubernetes Networking Guide for Beginners</a></li>
<li><a href="https://itnext.io/deciphering-the-kubernetes-networking-maze-navigating-load-balance-bgp-ipvs-and-beyond-7123ef428572">itnext.io: Deciphering the Kubernetes Networking Maze: Navigating Load-Balance, BGP, IPVS and Beyond</a></li>
<li><a href="https://adil.medium.com/network-traffic-shaping-in-kubernetes-topology-aware-routing-e4ea4a03dd20">adil.medium.com: Network Traffic Shaping in Kubernetes: Topology Aware Routing</a><ul>
<li>One challenge in cloud-distributed systems is keeping network traffic within the same availability zone</li>
<li>Kubernetes introduced Topology Aware Routing to address this issue</li>
<li>This ensures requests between apps remain in the same zone</li>
</ul>
</li>
<li><a href="https://www.cyera.com">otterize.com: Mastering Kubernetes networking: A journey in cloud-native packet management</a> Master Kubernetes networking with a comprehensive packet walk, and learn how Otterize helps build adaptive Network Policies.</li>
</ul>
<h2 id="kubernetes-dns">Kubernetes DNS</h2>
<h2 id="kubernetes-services-and-load-balancing">Kubernetes Services and Load Balancing</h2>
<ul>
<li><a href="https://blog.cloudtrooper.net/2025/04/02/application-gateway-for-containers-a-not-so-gentle-intro-4">Application Gateway for Containers with AKS Overlay Networking and VNet Flow Logs</a> 🌟 - This post delves into the integration of Azure Application Gateway for Containers (AGC) with Azure Kubernetes Service (AKS) when using the overlay network option. It explores how AGC interacts with pods using non-routable IP addresses and examines the feasibility of using VNet Flow Logs to monitor traffic between AGC and AKS.</li>
<li><a href="https://blog.cloudtrooper.net/2025/02/28/application-gateway-for-containers-a-not-so-gentle-intro-1">Introduction to Azure Application Gateway for Containers (AGC)</a> - <em>(Related to azure topic)</em></li>
<li>
<p><a href="https://learnkube.com/kubernetes-services-and-load-balancing">Kubernetes Services and Load Balancing Explained</a> 🌟 - An in-depth exploration of Kubernetes networking, focusing on Services, kube-proxy, and load balancing mechanisms. The article details how pods communicate within a cluster, the role of Services in directing traffic, and managing external access. It covers ClusterIP, NodePort, and LoadBalancer service types, their implementation via iptables, and advanced topics like preserving source IPs, handling terminating endpoints, and integrating with cloud load balancers. The content is illustrated with a practical example of deploying a two-tier application.</p>
</li>
<li>
<p><a href="https://blog.cloudsigma.com/kubernetes-dns-service-a-beginners-guide">blog.cloudsigma.com: Kubernetes DNS Service: A Beginners Guide</a> Kubernetes DNS service allows you to contact services with consistent DNS names instead of IP addresses.</p>
</li>
</ul>
<h2 id="tcp-keep-alive-requests">TCP Keep Alive Requests</h2>
<ul>
<li><a href="https://kuderko.medium.com/fixing-bad-cpu-usage-distribution-in-kubernetes-e1e43ed87cd6">kuderko.medium.com: Fixing bad CPU usage distribution in Kubernetes 🌟</a> In this article, you will learn how TCP keep-alive requests could hurt horizontal scaling for your pods. You will also discuss the workarounds you can apply to your apps or web servers.</li>
</ul>
<h2 id="headless-kubernetes-service">Headless Kubernetes Service</h2>
<ul>
<li><a href="https://medium.com/@bubu.tripathy/headless-k8s-service-924c689607a7">medium.com: Headless Kubernetes Service</a> A headless service in Kubernetes can be a useful tool for creating distributed applications. It allows you to directly access the individual pods in a service. This is useful in scenarios where you need to perform complex load-balancing. A headless service does not have a cluster IP assigned to it. Instead of providing a single virtual IP address for the service, a headless service creates a DNS record for each pod associated with the service. These DNS records can then be used to directly address each pod. Heres a high-level overview of how a headless service works:<ul>
<li>A headless service is created in Kubernetes</li>
<li>Pods are associated with the service through labels</li>
<li>DNS records are created for each pod associated with the service</li>
<li>Clients can use the DNS records to directly access each pod</li>
</ul>
</li>
<li><a href="https://www.goglides.dev/bkpandey/headless-services-in-kubernetes-what-why-and-how-39fl">goglides.dev: Headless services in Kubernetes Vs Regular Service: What, Why, and How?</a></li>
</ul>
<h2 id="networkpolicy">NetworkPolicy</h2>
<ul>
<li><a href="https://opensource.com/article/21/10/kubernetes-networkpolicy">opensource.com: What you need to know about Kubernetes NetworkPolicy</a> Understanding Kubernetes NetworkPolicy is one of the fundamental requirements to learn before deploying an application to Kubernetes.</li>
<li><a href="https://itnext.io/ckad-scenarios-about-ingress-and-networkpolicy-155ce958c9ce">itnext.io: CKAD Scenarios about Ingress and NetworkPolicy</a> In-Browser CKAD Scenarios about Ingress and NetworkPolicies.<ul>
<li><a href="https://editor.networkpolicy.io"><mark>editor.cilium.io</mark> 🌟🌟🌟</a> <strong>For learning, you can use the amazing NetworkPolicy Editor at cilium.</strong></li>
</ul>
</li>
<li><a href="https://whyk8s.substack.com/p/why-networkpolicies">whyk8s.substack.com: Why NetworkPolicies?</a> Is Kubernetes networking insecure by default? Why was it built that way?</li>
<li><a href="https://yuminlee2.medium.com/kubernetes-network-policies-a93c2f588e31">yuminlee2.medium.com: Kubernetes Network Policies</a></li>
<li><a href="https://bagas-awibowo.medium.com/helm-templating-network-policy-using-helm-783b2f7e401a"><mark>bagas-awibowo.medium.com: Helm — Templating Network Policy using Helm</mark></a></li>
</ul>
<h2 id="nginx-ingress-controller">Nginx Ingress Controller</h2>
<ul>
<li><a href="https://github.com/kubernetes-sigs/ingate">InGate: Ingress &amp; Gateway API Controller (Archived)</a> - InGate was an Ingress and Gateway API controller for Kubernetes, developed by the kubernetes-sigs organization. It aimed to provide advanced traffic management capabilities for Kubernetes clusters. The project has been archived and is recommended for migration to the Gateway API.</li>
<li>
<p><a href="https://traefik.io/blog/transition-from-ingress-nginx-to-traefik">Transitioning from ingress-nginx to Traefik in Kubernetes</a> 🌟 - This article discusses the challenges and strategies for migrating Kubernetes ingress traffic from ingress-nginx to Traefik, especially in light of ingress-nginx entering maintenance mode. It highlights Traefik&rsquo;s modern approach and features as a viable alternative for managing cloud-native API gateways.</p>
</li>
<li>
<p><a href="https://blog.teamhephy.info/blog/posts/tutorials/running-workflow-without-any-loadbalancer.html">blog.teamhephy.info: Learn how to use the Nginx Ingress controller to serve traffic over SSH with TCP load balancing</a></p>
</li>
<li><a href="https://www.f5.com/products/nginx">nginx.com: A Guide to Choosing an Ingress Controller, Part 4: NGINX Ingress Controller Options</a></li>
<li><a href="https://github.com/kubernetes/ingress-nginx/releases/tag/controller-v1.0.0">NGINX Ingress Controller - v1.0.0</a> NGINX Ingress Controller v1.0.0 released today! The biggest change is the support to stable/v1 ingress object, and dropping support to v1beta1.</li>
<li><a href="https://amy-ma.medium.com/ingress-configuration-d9f13c5bcf1a">amy-ma.medium.com: Nginx Ingress Configuration</a> Configure NGINX basic routing with TLS on HPCC. This tutorial provides steps on how to set up basic routing for ECLWatch with the NGINX Ingress controller and configure certificates using Cert-Manager.</li>
<li><a href="https://devopscube.com/setup-ingress-kubernetes-nginx-controller">devopscube.com: How to Setup Nginx Ingress Controller On Kubernetes Detailed Guide 🌟</a></li>
<li><a href="https://medium.com/@jonathan_37674/how-to-secure-kubernetes-ingress-by-armo-cb86086ec540">medium.com/@jonathan_37674: How to secure Kubernetes ingress? | By ARMO</a></li>
<li><a href="https://www.f5.com/products/nginx">nginx.com: Automating Multi-Cluster DNS with NGINX Ingress Controller</a></li>
<li><a href="https://engineering.backmarket.com/how-we-improved-third-party-availability-and-latency-with-nginx-in-kubernetes-bb3fc7224ae4"><mark>engineering.backmarket.com: How we improved third-party availability and latency with Nginx in Kubernetes</mark> 🌟</a> Introducing a gateway to cache your third-party API can significantly improve its performance and stability. In this case study, you will discover how the team at Back Market configured NGINX in Kubernetes to improve third-party API availability and latency.</li>
<li><a href="https://towardsdev.com/kubernetes-deploying-nginx-servers-with-configmaps-shared-services-with-minikube-618aee9a8ff6">towardsdev.com: Kubernetes: Deploying Nginx Servers with ConfigMaps &amp; Shared Services with Minikube</a></li>
<li><a href="https://faun.pub/how-to-monitor-and-alert-on-nginx-ingress-in-kubernetes-6d7d172f0399">faun.pub: How to Monitor and Alert on Ingress-NGINX in Kubernetes</a></li>
<li><a href="https://sumanprasad.hashnode.dev/a-beginners-guide-to-ingress-and-ingress-controllers-in-kubernetes">sumanprasad.hashnode.dev: A Beginner&rsquo;s Guide to Ingress and Ingress Controllers in Kubernetes</a></li>
<li><a href="https://akyriako.medium.com/configure-path-based-routing-with-nginx-ingress-controller-64a63cd4d6bd">akyriako.medium.com: Configure path-based routing with Nginx Ingress Controller</a></li>
<li><a href="https://mattias.engineer/k8s/ingress"><mark>mattias.engineer: Kubernetes-101: Ingress</mark> 🌟</a> The article provides an in-depth guide on the Ingress resource. It explains that Ingress offers more functionalities than a Service, enabling multiple routing rules for different Services. It also touches upon HTTPS traffic with TLS certificates.</li>
</ul>
<h2 id="contour-ingress-controller">Contour Ingress Controller</h2>
<ul>
<li><a href="https://trstringer.com/kubernetes-ingress-with-contour">trstringer.com: Kubernetes Ingress with Contour</a></li>
</ul>
<h2 id="kubernetes-gateway-api">Kubernetes Gateway API</h2>
<ul>
<li>
<p><a href="https://github.com/kubernetes-sigs/gateway-api">Kubernetes Gateway API</a> 🌟 - The Kubernetes Gateway API is a collection of APIs that model service networking in Kubernetes. It aims to provide a more expressive, role-oriented, and extensible successor to the Kubernetes Ingress API, enabling advanced traffic management, routing, and load balancing capabilities.</p>
</li>
<li>
<p><a href="https://gateway-api.sigs.k8s.io"><mark>gateway-api.sigs.k8s.io</mark> 🌟</a> Gateway API is an open source project managed by the SIG-NETWORK community. It&rsquo;s is a collection of resources that model service networking in Kubernetes. These resources - GatewayClass,Gateway, HTTPRoute, TCPRoute, Service, etc - aim to evolve Kubernetes service networking through expressive, extensible, and role-oriented interfaces that are implemented by many vendors and have broad industry support.</p>
</li>
<li><a href="https://kubernetes.io/blog/2021/04/22/evolving-kubernetes-networking-with-the-gateway-api">kubernetes.io: Evolving Kubernetes networking with the Gateway API</a></li>
<li><a href="https://thenewstack.io/unifying-kubernetes-service-networking-again-with-the-gateway-api">thenewstack.io: Unifying Kubernetes Service Networking (Again) with the Gateway API 🌟</a> The <a href="https://gateway-api.sigs.k8s.io">Gateway API</a>, formerly known as the Services API and before that Ingress V2, was first discussed in detail — and in-person — at Kubecon 2019 in San Diego. There were already many well-known and <a href="https://dave.cheney.net/paste/ingress-is-dead-long-live-ingressroute.pdf">well-documented</a> limitations of Ingress and Kubernetes networking APIs. The <a href="https://www.youtube.com/watch?v=GiFQNevrxYA">Gateway API</a> was intended as a redo of these APIs, built on the lessons from Services, Ingress and the service mesh community.</li>
<li><a href="https://blog.flomesh.io/kubernetes-gateway-api-evolution-of-service-networking-aa76ec4efa7e">blog.flomesh.io: Kubernetes Gateway API — Evolution of Service Networking</a></li>
<li><a href="https://www.armosec.io/blog/kubernetes-gateway-api"><mark>armosec.io: The New Kubernetes Gateway API and Its Use Cases</mark></a></li>
<li><a href="https://medium.com/google-cloud/security-with-kubernetes-gateway-api-dcbb934ed2a4">medium.com/google-cloud: Security with Kubernetes Gateway API 🌟</a></li>
<li><a href="https://navendu.me/posts/gateway-vs-ingress-api">navendu.me: Comparing Kubernetes Gateway and Ingress APIs</a> In this article, you will explore the new Kubernetes Gateway API and compare it with the existing Kubernetes Ingress API for handling external traffic</li>
</ul>
<h2 id="kube-proxy">Kube-proxy</h2>
<ul>
<li>
<p><a href="https://kubernetes.io/blog/2025/02/28/nftables-kube-proxy">NFTables mode for kube-proxy in Kubernetes</a> 🌟 - This article introduces the new nftables mode for kube-proxy, an alpha feature in Kubernetes 1.29 that is currently in beta and expected to reach General Availability (GA) in version 1.33. The new mode addresses long-standing performance issues associated with the iptables mode, particularly for large Kubernetes clusters with numerous Services. It leverages the capabilities of nftables to improve data plane latency by providing a more scalable and efficient way to handle Service proxying compared to the traditional iptables approach. The article encourages users with recent kernels to try out this new mode.</p>
</li>
<li>
<p><a href="https://dustinspecker.com/posts/iptables-how-kubernetes-services-direct-traffic-to-pods">dustinspecker.com: iptables: How Kubernetes Services Direct Traffic to Pods</a> In this article you will learn how Kubernetes&rsquo;s kube-proxy uses iptables to direct traffic to pods randomly. You&rsquo;ll focus on the ClusterIP type of Kubernetes services.</p>
</li>
<li><a href="https://arthurchiao.art/blog/cracking-k8s-node-proxy">arthurchiao.art: Cracking kubernetes node proxy (aka kube-proxy)</a> This post analyzes the Kubernetes node proxy model, and provides 5 demo implementations (within couples of lines of code) of the model, each based on different tech-stacks (userspace/iptables/ipvs/tc-ebpf/sock-ebpf).</li>
</ul>
<h2 id="multicloud-communication-for-kubernetes">Multicloud communication for Kubernetes</h2>
<ul>
<li><a href="https://techcommunity.microsoft.com/blog/azurenetworkingblog/introducing-subnet-peering-in-azure/4383841">Introducing Subnet Peering in Azure</a> - <em>(Related to azure topic)</em></li>
<li>
<p><a href="https://blog.cloudtrooper.net/2025/02/17/private-link-reality-bites-service-endpoints-vs-private-link">Private Link Reality Bites: Service Endpoints vs Private Link</a> - This blog post explores the differences and commonalities between Azure VNet Service Endpoints and Azure Private Link, addressing common confusion among organizations, especially those who adopted service endpoints before Private Link&rsquo;s release. It provides context by tracing the evolution from public IP access to the introduction of service endpoints and then Private Link for Azure services.</p>
</li>
<li>
<p><a href="https://developers.redhat.com/blog/2021/04/20/use-skupper-to-connect-multiple-kubernetes-clusters">developers.redhat.com: Use Skupper to connect multiple Kubernetes clusters 🌟</a> - <a href="https://skupper.io">skupper.io</a> Multicloud communication for Kubernetes. Skupper is a layer 7 service interconnect. It enables secure communication across Kubernetes clusters with no VPNs or special firewall rules. With Skupper, your application can span multiple cloud providers, data centers, and regions.</p>
</li>
</ul>
<h2 id="multi-cluster-kubernetes-networking">Multi-Cluster Kubernetes Networking</h2>
<ul>
<li><a href="https://itnext.io/multi-cluster-kubernetes-networking-with-netmaker-bfa4e22eb2fb">itnext.io: Multi-Cluster Kubernetes Networking with Netmaker</a><ul>
<li><a href="https://github.com/gravitl/netmaker">NetMaker</a> Netmaker makes networks with WireGuard. Netmaker automates fast, secure, and distributed virtual networks.</li>
</ul>
</li>
</ul>
<h2 id="kubernetes-network-policy">Kubernetes Network Policy</h2>
<ul>
<li><a href="https://www.howtoforge.com/kubernetes_network_policy">howtoforge.com: Network Policy in Kubernetes 🌟</a> By default, pods accept traffic from any source. A network policy helps to specify how a group of pods can communicate with each other and other network endpoints.</li>
<li><a href="https://medium.com/avmconsulting-blog/exploring-network-policies-in-kubernetes-c8a3d8ed00cb">medium: How to Provision Network Policies in Kubernetes | AWS 🌟</a></li>
<li><a href="https://www.learncloudnative.com/blog/2020-10-07-network-policies">learncloudnative.com: Kubernetes Network Policy</a></li>
<li><a href="https://www.bionconsulting.com/blog/kubernetes-network-policies">bionconsulting.com: Kubernetes Network Policies</a><ul>
<li><a href="https://www.bionconsulting.com/blog/kubernetes-network-policies-part-2">bionconsulting.com: Kubernetes Network Policies - Part 2</a></li>
</ul>
</li>
<li><a href="https://thenewstack.io/the-kubernetes-network-security-effect">thenewstack.io: The Kubernetes Network Security Effect 🌟</a> Kubernetes has a built-in object for managing network security: NetworkPolicy. While it allows the user to define the relationship between pods with ingress and egress policies, it is basic and requires very precise IP mapping of a solution — which changes constantly, so most users Ive talked to are not using it.</li>
<li><a href="https://faun.pub/control-traffic-flow-to-and-from-kubernetes-pods-with-network-policies-bc384c2d1f8c">faun.pub: Control traffic flow to and from Kubernetes pods with Network Policies</a></li>
<li><a href="https://www.redhat.com/en/blog/network-policies-controlling-cross-project-communication-on-openshift">openshift.com: Network Policies: Controlling Cross-Project Communication on OpenShift</a></li>
<li><a href="https://loft-sh.medium.com/kubernetes-network-policies-a-practitioners-guide-c9bb4cdd0dbc">loft-sh.medium.com: Kubernetes Network Policies: A Practitioners Guide 🌟</a></li>
<li><a href="https://www.vcluster.com/blog/kubernetes-network-policies-a-practitioners-guide">loft.sh: Kubernetes Network Policies: A Practitioner&rsquo;s Guide 🌟</a></li>
<li><a href="https://medium.com/codex/kubernetes-network-polices-are-they-really-useful-c3a153c49316">medium: Kubernetes Network Policies: Are They Really Useful? 🌟</a></li>
<li><a href="https://www.vcluster.com/blog/kubernetes-network-policies-for-isolating-namespaces">loft.sh: Kubernetes Network Policies for Isolating Namespaces 🌟</a></li>
<li><a href="https://arthurchiao.art/blog/cracking-k8s-network-policy">arthurchiao.art: Cracking Kubernetes Network Policy</a> This post digs into the Kubernetes NetworkPolicy model, then designs a policy enforcer based on the technical requirements and further implements it with less than 100 lines of eBPF code. Hope that after reading through this post, readers will get a deeper understanding on how network policies are enforced in the underlying.</li>
<li><a href="https://engineering.mercari.com/en/blog/entry/20220214-managing-network-policies">engineering.mercari.com: Managing Network Policies for namespaces isolation on a multi-tenant Kubernetes cluster</a> This post outlines how to implement an abstraction over network policies in a multi-tenant Kubernetes cluster instead of directly exposing raw YAML-based manifests for better usability and verifiability</li>
<li><a href="https://blog.devgenius.io/kubernetes-namespace-wide-network-policy-1126fafdf221">blog.devgenius.io: Simplify Kubernetes Network Policy Generation</a></li>
<li><a href="https://blog.slycreator.com/network-policies-understanding-kubernetes-network-policies">blog.slycreator.com: Network Policies: Understanding Kubernetes Network Policies</a> This article explores the fundamental concepts, syntax, semantics, and implementation considerations associated with Network Policies. It also delves into best practices and real-world examples to illustrate their practical application and benefits.</li>
</ul>
<h3 id="cilium">Cilium</h3>
<ul>
<li><a href="https://cilium.io">cilium.io 🌟</a> eBPF-based Networking, Observability, and Security</li>
<li><a href="https://cilium.io/blog/2021/02/10/network-policy-editor">cilium.io: NetworkPolicy Editor: Create, Visualize, and Share Kubernetes NetworkPolicies 🌟</a></li>
<li><a href="https://editor.networkpolicy.io">editor.cilium.io 🌟</a> Learn how to create Network Policies for Kubernetes using an interactive playground</li>
<li><a href="https://www.buoyant.io/blog/kubernetes-network-policies-with-cilium-and-linkerd">buoyant.io: Kubernetes network policies with Cilium and Linkerd</a></li>
<li><a href="https://itnext.io/installing-cilium-on-kubernetes-in-a-fast-and-efficient-way-dbcb79ce9699">itnext.io: Installing Cilium on Kubernetes in a fast and efficient way</a></li>
<li><a href="https://cilium.io/blog/2021/05/11/cni-benchmark">cilium.io: CNI Benchmark: Understanding Cilium Network Performance</a></li>
<li><a href="https://www.cockroachlabs.com/blog/cockroachdb-kubernetes-cilium">cockroachlabs.com: How to use Cluster Mesh for Multi-Region Kubernetes Pod Communication</a><ul>
<li>Thanks to services provided by AWS, GCP, and Azure its become relatively easy to develop applications that span multiple regions. This is great because slow apps kill businesses. There is one common problem with these applications: they are not supported by multi-region database architecture.</li>
<li>CockroachDB is built to solve that problem and were doing it in production for many applications today. But thats not what this blog is about. In this blog, I will provide a solution for the problem of getting Kubernetes pods to talk to each other in multi-region deployments.</li>
</ul>
</li>
<li><a href="https://cilium.io/blog/2021/05/20/cilium-110">cilium.io: Cilium 1.10: WireGuard, BGP Support, Egress IP Gateway, New Cilium CLI, XDP Load Balancer, Alibaba Cloud Integration and more</a> Traditional workloads have a fixed and unique IP that can be recognized by a firewall. Traffic coming from a containerized application will come from many different IPs. How can you fix that?
Cilium allows users to specify an egress NAT policy</li>
<li><a href="https://medium.com/@charled.breteche/kubernetes-security-control-pod-to-pod-communications-with-cilium-network-policies-d7275b2ed378">medium.com/@charled.breteche: Kubernetes Security — Control pod to pod communications with Cilium network policies</a> In this article, you&rsquo;ll explore Cilium network policies and how you can use them to control pod to pod communications on a 3 nodes and 3 masters cluster. You will also use Hubble to visualise the effect of the network policies in your cluster.</li>
<li><a href="https://www.solo.io/blog">solo.io: Exploring Cilium Layer 7 Capabilities Compared to Istio</a></li>
<li><a href="https://betterprogramming.pub/k8s-network-policy-made-simple-with-cilium-editor-a5b55781291c">betterprogramming.pub: K8s: Network Policy Made Simple With Cilium Editor 🌟</a> An intuitive graphical tool to define complex network policies</li>
</ul>
<center>
<script async="async" class="speakerdeck-embed" data-id="9251193501114da199d70b2a679c552f" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>
</center>
<h3 id="kubernetes-network-policy-samples">Kubernetes Network Policy Samples</h3>
<ul>
<li><a href="https://github.com/ahmetb/kubernetes-network-policy-recipes"><mark>ahmetb/kubernetes-network-policy-recipes</mark> 🌟</a> Example recipes for Kubernetes Network Policies that you can just copy paste. This repository contains various use cases of Kubernetes Network Policies and sample YAML files to leverage in your setup. If you ever wondered how to drop/restrict traffic to applications running on Kubernetes, this is for you</li>
</ul>
<h2 id="kubernetes-ingress-specification">Kubernetes Ingress Specification</h2>
<ul>
<li><a href="https://kubernetes.io/blog/2020/06/05/supporting-the-evolving-ingress-specification-in-kubernetes-1.18">Supporting the Evolving Ingress Specification in Kubernetes 1.18</a></li>
<li><a href="https://medium.com/faun/ingress-service-types-in-kubernetes-3e9b68b78307">medium: Ingress service types in Kubernetes 🌟</a></li>
<li><a href="https://itnext.io/autoscaling-ingress-controllers-in-kubernetes-c64b47088485"><mark>itnext.io: Autoscaling Ingress Controllers in Kubernetes (Daniele Polencic)</mark></a></li>
</ul>
<h2 id="xposer-kubernetes-controller-to-manage-ingresses">Xposer Kubernetes Controller To Manage Ingresses</h2>
<ul>
<li><a href="https://github.com/stakater/Xposer">Xposer 🌟</a> A Kubernetes controller to manage (create/update/delete) Kubernetes Ingresses based on the Service<ul>
<li>Problem: We would like to watch for services running in our cluster; and create Ingresses and generate TLS certificates automatically (optional)</li>
<li>Solution: Xposer can watch for all the services running in our cluster; Creates, Updates, Deletes Ingresses and uses certmanager to generate TLS certificates automatically based on some annotations.</li>
</ul>
</li>
</ul>
<h2 id="software-defined-ip-address-management-ipam">Software-Defined IP Address Management (IPAM)</h2>
<ul>
<li><a href="https://en.wikipedia.org/wiki/IP_address_management">IP Address Management (IPAM)</a></li>
<li><a href="https://www.fusionlayer.com/products/infinity">fusionlayer.com: Software-Defined IP Address Management (IPAM)</a><ul>
<li>Cloud computing and service automation are changing the way in which applications and data are being delivered and consumed. The existing 30-year-old networking model is failing to keep up with the automated service architectures and the Internet of Things (IoT) based on end-to-end automation.</li>
<li><strong>To facilitate the migration to cloud-era computing, service providers and data centers must add networking into the automated service workflows.</strong> This requires agility and elasticity that traditional networking products are not designed to provide. As IT environments of tomorrow involve a plethora of orchestrators and controllers spinning up services and applications inside shared networks, they all must be managed and provisioned by a unified solution authoritative for all network-related information.</li>
</ul>
</li>
</ul>
<h2 id="cni-container-networking-interface">CNI Container Networking Interface</h2>
<ul>
<li><a href="https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins">Kubernetes.io: Network Plugins</a></li>
<li><a href="https://rancher.com/docs/rancher/v2.x/en/faq/networking/cni-providers">rancher.com: Container Network Interface (CNI) Providers</a></li>
<li><a href="https://github.com/containernetworking">github.com/containernetworking 🌟</a><ul>
<li><a href="https://github.com/containernetworking/cni">CNI</a></li>
</ul>
</li>
<li><a href="https://dzone.com/articles/how-to-understand-and-setup-kubernetes-networking">dzone: How to Understand and Set Up Kubernetes Networking 🌟</a> Take a look at this tutorial that goes through and explains the inner workings of Kubernetes networking, including working with multiple networks.</li>
<li><a href="https://medium.com/@vikram.fugro/container-networking-interface-aka-cni-bdfe23f865cf">medium: Container Networking Interface aka CNI</a></li>
<li><a href="https://itnext.io/benchmark-results-of-kubernetes-network-plugins-cni-over-10gbit-s-network-updated-august-2020-6e1b757b9e49">itnext.io: Benchmark results of Kubernetes network plugins (CNI) over 10Gbit/s network (Updated: August 2020)</a></li>
</ul>
<h3 id="list-of-existing-cni-plugins-ipam">List of existing CNI Plugins (IPAM)</h3>
<ul>
<li><a href="https://kubernetes.io/docs/concepts/cluster-administration/networking">Kubernetes Networking</a></li>
<li>Overlay Network plugins:<ul>
<li><a href="https://github.com/flannel-io/flannel">Flannel</a></li>
<li><a href="https://www.weave.works/docs/net/latest/overview">Weave-net</a></li>
</ul>
</li>
<li>Routed Network Plugins:<ul>
<li><a href="https://en.wikipedia.org/wiki/Amazon_Virtual_Private_Cloud">AWS-VPC</a></li>
<li><a href="https://www.kube-router.io">kube-router</a></li>
<li><a href="https://www.projectcalico.org">Calico</a></li>
<li><a href="https://github.com/antrea-io/antrea">VMware-tanzu Antrea</a></li>
</ul>
</li>
<li><a href="https://en.wikipedia.org/wiki/IP_address_management">IPAM</a> modules:<ul>
<li>dhcp</li>
<li>host-local</li>
</ul>
</li>
<li>Multi CNI plugins:<ul>
<li><a href="https://github.com/nokia/danm">Damn</a></li>
<li><a href="https://github.com/openshift/multus-cni">Multus</a></li>
<li><a href="https://github.com/cni-genie/CNI-Genie">CNI-Genie</a></li>
</ul>
</li>
</ul>
<center>
<p><a href="https://thenewstack.io/kubernetes"><img alt="kubernetes sdn solutions" src="images/kubernetes_sdn_solutions.png" /></a></p>
</center>
<h3 id="project-calico">Project Calico</h3>
<ul>
<li><a href="https://www.tigera.io">tigera.io</a></li>
<li><a href="https://www.projectcalico.org">Project Calico 🌟</a> Secure networking for the cloud native era</li>
<li><a href="https://medium.com/flant-com/calico-for-kubernetes-networking-792b41e19d69">medium: Calico for Kubernetes networking: the basics &amp; examples</a></li>
<li><a href="https://thenewstack.io/kubernetes">thenewstack.io: Tigera&rsquo;s Calico Aims to Ease Connectivity Pain with Kubernetes</a></li>
<li><a href="https://www.projectcalico.org/advertising-kubernetes-service-ips-with-calico-and-bgp">projectcalico.org: Advertising Kubernetes Service IPs with Calico and BGP</a></li>
<li><a href="https://mhmxs.blogspot.com/2020/12/autoscaling-calico-route-reflector.html">mhmxs.blogspot.com: Autoscaling Calico Route Reflector topology in Kubernetes</a></li>
<li><a href="https://www.tigera.io/blog/enforcing-network-security-policies-with-gitops-part-1">tigera.io: Enforcing Network Security Policies with GitOps Part 1 (Calico + ArgoCD)</a> Network policy is a key element of Kubernetes security. Network policy is expressed as a YAML configuration and works very well with GitOps. By adopting GitOps, security teams benefit in the following ways:<ul>
<li>Take your policies with you. Kubernetes cluster creation from code is fairly common. It is much easier and less error-prone to push your Git-based policies to a new cluster.</li>
<li>You can monitor policy changes using information from pull requests. This will also be easy to integrate with your existing systems, instead of writing integrations from scratch. If something goes wrong, you can simply roll back to an earlier commit.</li>
<li>You can lock down who can deploy security policies. If you lock it down to only a single Git user, that will be easy to control. Everybody else can push their policy changes into Git via pull request.</li>
<li>Your GitOps tool can ensure that it will override any accidental or malicious change at runtime. This solves a major compliance concern. Git becomes the source of truth for your security policies.</li>
<li>It would be much easier to manage if no user could create a security policy from kubectl. Then you can enable de-centralized security by creating specific users for different services, and giving them rights to deploy only specific policies. Developers and DevOps teams are very comfortable with the notion of a Git pipeline.</li>
</ul>
</li>
<li><a href="https://blog.devgenius.io/k8s-networking-calico-part1-7f74395b6fe2">blog.devgenius.io: K8s Networking — Calico (Part1)</a> Introduction to Calico.</li>
<li><a href="https://medium.com/@arbnair97/introduction-to-kubernetes-network-policy-and-calico-based-network-policy-675a7fa6b5dc">medium.com/@arbnair97: Introduction to Kubernetes Network Policy and Calico Based Network Policy</a> Kubernetes Network Policies are designed to control the network&rsquo;s traffic flow in and out of the cluster. This article will teach you how to use Network Policies with the Calico CNI.</li>
</ul>
<h2 id="dns-service-with-coredns">DNS Service with CoreDNS</h2>
<ul>
<li><a href="https://medium.com/faun/how-to-autoscale-the-dns-service-in-a-kubernetes-cluster-cbb46ae89678">medium: How to Autoscale the DNS Service in a Kubernetes Cluster</a></li>
<li><a href="https://thenewstack.io/supercharge-coredns-with-cluster-addons">thenewstack.io: Supercharge CoreDNS with Cluster Addons 🌟</a></li>
<li><a href="https://www.sysdig.com/blog/how-to-monitor-coredns">sysdig.com: How to monitor coreDNS 🌟</a> The most common problems and outages in a Kubernetes cluster come from coreDNS, so learning how to monitor coreDNS is crucial.</li>
<li><a href="https://ungleich.ch/u/blog/kubernetes-making-dns-publicly-reachable">ungleich.ch: Making kubernetes kube-dns/CoreDNS publicly reachable</a></li>
<li><a href="https://iamitcohen.medium.com/dns-in-kubernetes-how-does-it-work-7c4690fd813e">iamitcohen.medium.com: DNS in Kubernetes, how does it work?</a></li>
<li><a href="https://www.nslookup.io/learning/the-life-of-a-dns-query-in-kubernetes">nslookup.io: The life of a DNS query in Kubernetes</a> In Kubernetes, DNS queries follow a specific path to resolve the IP address of a hostname. In this blog post, you will learn the life of a DNS query in Kubernetes step-by-step.</li>
<li><a href="https://levelup.gitconnected.com/kubernetes-with-coredns-e40772c5e6ee">levelup.gitconnected.com: Kubernetes with CoreDNS</a></li>
</ul>
<h2 id="kubernetes-node-local-dns-cache">Kubernetes Node Local DNS Cache</h2>
<ul>
<li><a href="https://github.com/kubernetes/enhancements">NodeLocal DNSCache</a></li>
<li><a href="https://povilasv.me/kubernetes-node-local-dns-cache">Kubernetes Node Local DNS Cache</a></li>
</ul>
<h2 id="k8gb">k8gb</h2>
<ul>
<li><a href="https://www.k8gb.io">k8gb.io</a> A cloud native Kubernetes Global Balancer</li>
<li><a href="https://blog.abaganon.com/going-global-with-kubernetes-490cf51e2bf8">blog.abaganon.com: Why you probably wont use K8gb.io</a> This article covers the 2 kinds of Global Server Load Balancers and goes into some hands-on specifics of K8gb — the first open-source DNS-based Global Server Load balancer for Kubernetes.</li>
</ul>
<h2 id="vpc-lattice">VPC Lattice</h2>
<ul>
<li><a href="https://dev.to/aws-builders/amazon-vpc-lattice-build-applications-not-networks-59j8">dev.to/aws-builders: Amazon VPC Lattice — Build Applications, Not Networks</a> An exciting new service that simplifies the networking layer for developers and cloud administrators.</li>
</ul>
<h2 id="images">Images</h2>
<details class="note">
<summary>Click to expand!</summary>
<center markdown="1">
<p><a href="https://home.robusta.dev/blog/kubernetes-service-vs-loadbalancer-vs-ingress"><img alt="k8s service types img" src="images/k8s_service_types_matrix.png" /></a></p>
</center>
</details>
<h2 id="videos">Videos</h2>
<details class="note">
<summary>Click to expand!</summary>
<center markdown="1">
<p><iframe width="560" height="315" src="https://www.youtube.com/embed/T4Z7visMM4E" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe width="560" height="315" src="https://www.youtube.com/embed/5cNrTU6o3Fw" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe width="560" height="315" src="https://www.youtube.com/embed/80Ew_fsV4rM" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe width="560" height="315" src="https://www.youtube.com/embed/VSn6DPKIhM8?si=pNaN7q9t3UKWaEhK" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></p>
</center>
</details>
<h2 id="tweets">Tweets</h2>
<details>
<summary>Click to expand!</summary>
<center markdown="1">
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Kubernetes is an example of what happens when you have an indefinitely complex network stack and no troubleshooting tools in place.</p>&mdash; Jaana Dogan ヤナ ドガン (@rakyll) <a href="https://twitter.com/rakyll/status/1458317772941713408?ref_src=twsrc%5Etfw">November 10, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Let&#39;s see how many folks here haven&#39;t seen this thread on Kubernetes Networking.<br><br>Once again, the thread doesn&#39;t try to explain the subject matter in great detail but offers a particular learning order instead.<br><br>As usual, based on my personal experience 🔽 <a href="https://t.co/pxCWJUxj5j">pic.twitter.com/pxCWJUxj5j</a></p>&mdash; Ivan Velichko (@iximiuz) <a href="https://twitter.com/iximiuz/status/1464922049604997121?ref_src=twsrc%5Etfw">November 28, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">🧵 How does Pod to Pod communication work in Kubernetes?<br><br>How does the traffic reach the right Pod?<br><br>Let&#39;s see 👇 <a href="https://t.co/gF2eVWYL4Q">pic.twitter.com/gF2eVWYL4Q</a></p>&mdash; Daniele Polencic (@danielepolencic) <a href="https://twitter.com/danielepolencic/status/1488119972463218690?ref_src=twsrc%5Etfw">January 31, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">When your apps receive a ton of traffic, how do you scale your Ingress Controller in Kubernetes?<br><br>Here is what I do 👇 <a href="https://t.co/T6aYurE7Lj">pic.twitter.com/T6aYurE7Lj</a></p>&mdash; Daniele Polencic (@danielepolencic) <a href="https://twitter.com/danielepolencic/status/1498999951661010945?ref_src=twsrc%5Etfw">March 2, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Should you use a single Kubernetes Ingress controller or multiple?<br><br>On Monday 8PT/5CET Andrea will make a convincing case on why multiple controllers are good for<br><br>✅ security<br>✅ segregating team &amp; resources<br>✅ isolation<br><br>Register here (it&#39;s free) <a href="https://t.co/62oKodt7tQ">https://t.co/62oKodt7tQ</a> <a href="https://t.co/DWNy0iTYq6">pic.twitter.com/DWNy0iTYq6</a></p>&mdash; Learnk8s (@learnk8s) <a href="https://twitter.com/learnk8s/status/1502986561901965319?ref_src=twsrc%5Etfw">March 13, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Networking in Kubernetes is arguably the most important piece.<br><br>Why?<br><br>Because theres not much you can do in a Kubernetes cluster without proper networking.<br><br>A thread 🧵</p>&mdash; Michael Levan 👨🏻‍💻☕️ (@TheNJDevOpsGuy) <a href="https://twitter.com/TheNJDevOpsGuy/status/1607747382711664640?ref_src=twsrc%5Etfw">December 27, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">How do you deal with peaks of traffic in Kubernetes?<br><br>You can use an autoscaler, but how should you configure and test it?<br><br>Let&#39;s dive into it. <a href="https://t.co/AxfEgqyEFW">pic.twitter.com/AxfEgqyEFW</a></p>&mdash; Daniele Polencic — @danielepolencic@hachyderm.io (@danielepolencic) <a href="https://twitter.com/danielepolencic/status/1647935320288284673?ref_src=twsrc%5Etfw">April 17, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</center>
</details>
<form class="md-feedback" name="feedback" hidden>
<fieldset>
<legend class="md-feedback__title">
Was this page helpful?
</legend>
<div class="md-feedback__inner">
<div class="md-feedback__list">
<button class="md-feedback__icon md-icon" type="submit" title="This page was helpful" data-md-value="1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 12a8 8 0 0 0-8-8 8 8 0 0 0-8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8m2 0a10 10 0 0 1-10 10A10 10 0 0 1 2 12 10 10 0 0 1 12 2a10 10 0 0 1 10 10M10 9.5c0 .8-.7 1.5-1.5 1.5S7 10.3 7 9.5 7.7 8 8.5 8s1.5.7 1.5 1.5m7 0c0 .8-.7 1.5-1.5 1.5S14 10.3 14 9.5 14.7 8 15.5 8s1.5.7 1.5 1.5m-5 7.73c-1.75 0-3.29-.73-4.19-1.81L9.23 14c.45.72 1.52 1.23 2.77 1.23s2.32-.51 2.77-1.23l1.42 1.42c-.9 1.08-2.44 1.81-4.19 1.81"/></svg>
</button>
<button class="md-feedback__icon md-icon" type="submit" title="This page could be improved" data-md-value="0">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 12a8 8 0 0 0-8-8 8 8 0 0 0-8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8m2 0a10 10 0 0 1-10 10A10 10 0 0 1 2 12 10 10 0 0 1 12 2a10 10 0 0 1 10 10m-6.5-4c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5.7-1.5 1.5-1.5M10 9.5c0 .8-.7 1.5-1.5 1.5S7 10.3 7 9.5 7.7 8 8.5 8s1.5.7 1.5 1.5m2 4.5c1.75 0 3.29.72 4.19 1.81l-1.42 1.42C14.32 16.5 13.25 16 12 16s-2.32.5-2.77 1.23l-1.42-1.42C8.71 14.72 10.25 14 12 14"/></svg>
</button>
</div>
<div class="md-feedback__note">
<div data-md-value="1" hidden>
Thanks for your feedback!
</div>
<div data-md-value="0" hidden>
Thanks for your feedback! Help us improve this page by using our <a href="..." target=_blank>feedback form</a>.
</div>
</div>
</div>
</fieldset>
</form>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
Back to top
</button>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
2026 <a href="https://twitter.com/nubenetes">Nubenetes</a>, <a href="https://nubenetes.com/about/">about</a>.
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
<div class="md-social">
<a href="https://www.youtube.com/channel/UCnrc0CFnNJSG2Kt4Ohdr3UA/playlists?view=1" target="_blank" rel="noopener" title="www.youtube.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M549.7 124.1c-6.2-23.7-24.8-42.3-48.3-48.6C458.9 64 288.1 64 288.1 64S117.3 64 74.7 75.5c-23.5 6.3-42 24.9-48.3 48.6C15 167 15 256.4 15 256.4s0 89.4 11.4 132.3c6.3 23.6 24.8 41.5 48.3 47.8C117.3 448 288.1 448 288.1 448s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zM232.2 337.6V175.2l142.7 81.2z"/></svg>
</a>
<a href="https://twitter.com/nubenetes" target="_blank" rel="noopener" title="twitter.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg>
</a>
<a href="https://github.com/nubenetes" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M202.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1M496 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2m-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3m-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1"/></svg>
</a>
<a href="https://speakerdeck.com/nubenetes/stars" target="_blank" rel="noopener" title="speakerdeck.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M213.9 296H100c-26.5 0-52-10.5-70.7-29.3S0 222.5 0 196s10.5-52 29.3-70.7S73.5 96 100 96h132.8c10.6 0 20.8 4.2 28.3 11.7s11.7 17.7 11.7 28.3-4.2 20.8-11.7 28.3-17.7 11.7-28.3 11.7H98c-26.5 0-26.4 40 0 40h113.8c26.5 0 52 10.5 70.7 29.3s29.3 44.2 29.3 70.7-10.5 52-29.3 70.7-44.2 29.3-70.7 29.3H40c-10.6 0-20.8-4.2-28.3-11.7S0 386.6 0 376s4.2-20.8 11.7-28.3S29.4 336 40 336h173.9c26.5 0 26.5-40 0-40M298 416c13.5-9.2 25-21 33.8-34.7s14.7-29.2 17.3-45.3h64.6c2.6 0 5.2-.6 7.6-1.6s4.6-2.5 6.4-4.4 3.3-4.1 4.2-6.5 1.5-5 1.4-7.6v-120c0-2.6-.5-5.2-1.4-7.6s-2.4-4.6-4.2-6.5-4-3.3-6.4-4.4-5-1.6-7.6-1.6H296.5c9.7-11.1 15-25.3 15-40s-5.3-28.9-15-40h136.9c43.4 0 78.6 35.8 78.6 80v160c0 44.2-35.2 80-78.6 80z"/></svg>
</a>
<a href="https://www.slideshare.net/nubenetes/favorites" target="_blank" rel="noopener" title="www.slideshare.net" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M187.9 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7m143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7m156.6 90-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.8c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72-56.3 191.7 137.4 222.3 134.3 124.1 0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8m-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z"/></svg>
</a>
<a href="https://twitter.com/redhatspain" target="_blank" rel="noopener" title="twitter.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M459.4 151.7c.3 4.5.3 9.1.3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53C87.4 130.8 165 172.4 252.1 176.9c-1.6-7.8-2.6-15.9-2.6-24C249.5 95.1 296.3 48 354.4 48c30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3"/></svg>
</a>
<a href="https://www.linkedin.com/groups/1937212/" target="_blank" rel="noopener" title="www.linkedin.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3M135.4 416H69V202.2h66.5V416zM102.2 96a38.5 38.5 0 1 1 0 77 38.5 38.5 0 1 1 0-77m282.1 320h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9z"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<div class="md-consent" data-md-component="consent" id="__consent" hidden>
<div class="md-consent__overlay"></div>
<aside class="md-consent__inner">
<form class="md-consent__form md-grid md-typeset" name="consent">
<h4>Cookie consent</h4>
<p>We use cookies to recognize your repeated visits and preferences, as well as to measure the effectiveness of our documentation and whether users find what they're searching for. With your consent, you're helping us to make our documentation better.</p>
<input class="md-toggle" type="checkbox" id="__settings" >
<div class="md-consent__settings">
<ul class="task-list">
<li class="task-list-item">
<label class="task-list-control">
<input type="checkbox" name="analytics" checked>
<span class="task-list-indicator"></span>
Google Analytics
</label>
</li>
<li class="task-list-item">
<label class="task-list-control">
<input type="checkbox" name="github" checked>
<span class="task-list-indicator"></span>
GitHub
</label>
</li>
</ul>
</div>
<div class="md-consent__controls">
<button class="md-button md-button--primary">Accept</button>
<label class="md-button" for="__settings">Manage settings</label>
</div>
</form>
</aside>
</div>
<script>var consent=__md_get("__consent");if(consent)for(var input of document.forms.consent.elements)input.name&&(input.checked=consent[input.name]||!1);else"file:"!==location.protocol&&setTimeout((function(){document.querySelector("[data-md-component=consent]").hidden=!1}),250);var form=document.forms.consent;for(var action of["submit","reset"])form.addEventListener(action,(function(e){if(e.preventDefault(),"reset"===e.type)for(var n of document.forms.consent.elements)n.name&&(n.checked=!1);__md_set("__consent",Object.fromEntries(Array.from(new FormData(form).keys()).map((function(e){return[e,!0]})))),location.hash="",location.reload()}))</script>
<script id="__config" type="application/json">{"annotate": null, "base": ".", "features": ["navigation.instant", "navigation.tracking", "navigation.tabs", "navigation.tabs.sticky", "navigation.sections", "toc.integrate", "navigation.top", "content.code.annotate", "navigation.indexes", "search.highlight", "search.share", "search.suggest"], "search": "assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="assets/javascripts/bundle.79ae519e.min.js"></script>
<script src="javascript/extra.js"></script>
</body>
</html>