<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Networking on Portfolio &amp; blog</title>
    <link>https://sebastianczech.com/tags/networking/</link>
    <description>Recent content in Networking on Portfolio &amp; blog</description>
    <generator>Hugo</generator>
    <language>pl</language>
    <lastBuildDate>Fri, 01 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://sebastianczech.com/tags/networking/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Kubernetes Gateway API</title>
      <link>https://sebastianczech.com/posts/2026-05-01-k8s-gateway/</link>
      <pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate>
      <guid>https://sebastianczech.com/posts/2026-05-01-k8s-gateway/</guid>
      <description>&lt;p&gt;Możnaby powiedzieć, że &lt;a href=&#34;https://gateway-api.sigs.k8s.io/&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Kubernetes Gateway API&lt;/a&gt; to następca klasycznego &lt;code&gt;Ingress&lt;/code&gt;, który jest bardziej nowoczesnym, rozszerzalnym standardem routingu ruchu w klastrach Kubernetes, rozwijanym przez SIG Network. W repozytorium &lt;a href=&#34;https://github.com/sebastianczech/k8s-gateway-api&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;k8s-gateway-api&lt;/a&gt; zebrałem praktyczne przykłady działania dwóch podejść do obsługi ruchu przychodzącego:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;klasycznego &lt;code&gt;NGINX Ingress&lt;/code&gt;,&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Gateway API&lt;/code&gt; na przykładzie:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;KinD&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Istio&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;mermaid&#34;&gt;&#xA;architecture-beta&#xA;    group nginx_group(logos:nginx)[Ingress NGINX]&#xA;    group kind_group(logos:kubernetes)[KinD Gateway API]&#xA;    group istio_group(simple-icons:istio)[Istio Gateway API]&#xA;&#xA;    service nginx_ctrl(logos:nginx)[&#34;ingress-nginx-controller&#34;] in nginx_group&#xA;    service nginx_ingress(logos:kubernetes)[Ingress] in nginx_group&#xA;    service nginx_svc(logos:kubernetes)[Service] in nginx_group&#xA;    service podinfo(logos:kubernetes)[Pod] in nginx_group&#xA;&#xA;    service kind_envoy(logos:envoyproxy)[Envoy proxy] in kind_group&#xA;    service kind_gateway(logos:kubernetes)[Gateway] in kind_group&#xA;    service kind_httproute(logos:kubernetes)[HTTPRoute] in kind_group&#xA;    service kind_svc(logos:kubernetes)[Service] in kind_group&#xA;    service echo_kind(logos:kubernetes)[Pod] in kind_group&#xA;&#xA;    service istio_gw(simple-icons:istio)[Istio Envoy gateway] in istio_group&#xA;    service istio_gateway(logos:kubernetes)[Gateway] in istio_group&#xA;    service istio_httproute(logos:kubernetes)[HTTPRoute] in istio_group&#xA;    service istio_svc(logos:kubernetes)[Service] in istio_group&#xA;    service echo_istio(logos:kubernetes)[Pod] in istio_group&#xA;&#xA;    nginx_ctrl:R --&gt; L:nginx_ingress&#xA;    nginx_ingress:R --&gt; L:nginx_svc&#xA;    nginx_svc:R --&gt; L:podinfo&#xA;&#xA;    kind_envoy:R --&gt; L:kind_gateway&#xA;    kind_gateway:R --&gt; L:kind_httproute&#xA;    kind_httproute:R --&gt; L:kind_svc&#xA;    kind_svc:R --&gt; L:echo_kind&#xA;&#xA;    istio_gw:R --&gt; L:istio_gateway&#xA;    istio_gateway:R --&gt; L:istio_httproute&#xA;    istio_httproute:R --&gt; L:istio_svc&#xA;    istio_svc:R --&gt; L:echo_istio&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;dlaczego-gateway-api-zamiast-ingress&#34;&gt;&#xA;  Dlaczego Gateway API zamiast Ingress?&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#dlaczego-gateway-api-zamiast-ingress&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Klasyczny zasób &lt;code&gt;Ingress&lt;/code&gt; ma swoje ograniczenia — słabo radzi sobie z bardziej zaawansowanymi regułami routingu, a różne kontrolery implementują go w niekompatybilny sposób przez własne adnotacje. &lt;code&gt;Gateway API&lt;/code&gt; rozwiązuje te problemy przez:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
