{"id":51278,"date":"2025-08-05T02:30:18","date_gmt":"2025-08-05T02:30:18","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=51278"},"modified":"2025-08-05T02:30:18","modified_gmt":"2025-08-05T02:30:18","slug":"kubernetes-ingress-rules-complete-guide-with-examples","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/kubernetes-ingress-rules-complete-guide-with-examples\/","title":{"rendered":"Kubernetes Ingress Rules: Complete Guide with Examples"},"content":{"rendered":"\n<p>Here\u2019s a <strong>comprehensive, practical, and easy-to-follow tutorial on all main types of Kubernetes Ingress rules<\/strong>\u2014with <strong>detailed explanations, diagrams, and YAML examples<\/strong> for each. This guide is aimed at both beginners and advanced users and covers every core ingress rule type you\u2019ll encounter, including real-world use cases.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83d\ude80 Kubernetes Ingress Rules: Complete Guide with Examples<\/h1>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Table of Contents<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/chatgpt.com\/g\/g-p-688193af72dc8191aa37d50cfd297006-devops\/c\/68915fca-f704-8327-9b05-dd363d6110ec#what-is-kubernetes-ingress\" target=\"_blank\" rel=\"noopener\">What is Kubernetes Ingress?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/chatgpt.com\/g\/g-p-688193af72dc8191aa37d50cfd297006-devops\/c\/68915fca-f704-8327-9b05-dd363d6110ec#types-of-ingress-rules\" target=\"_blank\" rel=\"noopener\">Types of Ingress Rules<\/a>\n<ul class=\"wp-block-list\">\n<li>Host-based Routing<\/li>\n\n\n\n<li>Path-based Routing<\/li>\n\n\n\n<li>Combined Host &amp; Path Routing<\/li>\n\n\n\n<li>Default Backend (Catch-all)<\/li>\n\n\n\n<li>TLS\/SSL Rules<\/li>\n\n\n\n<li>Advanced (Rewrite\/Redirect, Auth, Rate Limiting)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/chatgpt.com\/g\/g-p-688193af72dc8191aa37d50cfd297006-devops\/c\/68915fca-f704-8327-9b05-dd363d6110ec#examples-and-use-cases\" target=\"_blank\" rel=\"noopener\">Examples and Use Cases<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/chatgpt.com\/g\/g-p-688193af72dc8191aa37d50cfd297006-devops\/c\/68915fca-f704-8327-9b05-dd363d6110ec#visual-summary\" target=\"_blank\" rel=\"noopener\">Visual Summary<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/chatgpt.com\/g\/g-p-688193af72dc8191aa37d50cfd297006-devops\/c\/68915fca-f704-8327-9b05-dd363d6110ec#faq--tips\" target=\"_blank\" rel=\"noopener\">FAQ &amp; Tips<\/a><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. <strong>What is Kubernetes Ingress?<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ingress<\/strong> is a Kubernetes resource that manages <strong>external access to your cluster services<\/strong>, typically HTTP\/HTTPS.<\/li>\n\n\n\n<li>With Ingress, you can expose multiple apps under different domains\/paths using <strong>a single load balancer or IP<\/strong>.<\/li>\n\n\n\n<li>An <strong>Ingress Controller<\/strong> (like NGINX, AWS ALB, Traefik, etc.) implements the routing specified in your Ingress resource.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. <strong>Types of Ingress Rules<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>A. Host-based Routing (Name-based Routing)<\/strong><\/h3>\n\n\n\n<p><strong>What it is:<\/strong><br>Route traffic to different services based on the <strong>requested domain name<\/strong> (host).<\/p>\n\n\n\n<p><strong>Use Case:<\/strong><br>You have multiple apps, each with its own subdomain or domain (e.g., <code>app1.example.com<\/code>, <code>app2.example.com<\/code>).<\/p>\n\n\n\n<p><strong>Example YAML:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">apiVersion: networking.k8s.io\/v1\nkind: Ingress\nmetadata:\n  name: host-based-ingress\nspec:\n  rules:\n    - host: app1.example.com\n      http:\n        paths:\n          - path: \/\n            pathType: Prefix\n            backend:\n              service:\n                name: app1\n                port:\n                  number: 80\n    - host: app2.example.com\n      http:\n        paths:\n          - path: \/\n            pathType: Prefix\n            backend:\n              service:\n                name: app2\n                port:\n                  number: 80\n<\/code><\/span><\/pre>\n\n\n<p><strong>Diagram:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\">(<span class=\"hljs-selector-tag\">app1<\/span><span class=\"hljs-selector-class\">.example<\/span><span class=\"hljs-selector-class\">.com<\/span>) <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-attr\">&#91;Ingress]<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-attr\">&#91;app1 Service]<\/span>\n(<span class=\"hljs-selector-tag\">app2<\/span><span class=\"hljs-selector-class\">.example<\/span><span class=\"hljs-selector-class\">.com<\/span>) <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-attr\">&#91;Ingress]<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; <span class=\"hljs-selector-attr\">&#91;app2 Service]<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>B. Path-based Routing (URL Path Routing)<\/strong><\/h3>\n\n\n\n<p><strong>What it is:<\/strong><br>Route traffic to different services based on the <strong>URL path<\/strong>.<\/p>\n\n\n\n<p><strong>Use Case:<\/strong><br>Expose multiple apps under different paths of the same domain (e.g., <code>\/api<\/code>, <code>\/shop<\/code>).<\/p>\n\n\n\n<p><strong>Example YAML:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">apiVersion: networking.k8s.io\/v1\nkind: Ingress\nmetadata:\n  name: path-based-ingress\nspec:\n  rules:\n    - host: www.example.com\n      http:\n        paths:\n          - path: \/api\n            pathType: Prefix\n            backend:\n              service:\n                name: api-service\n                port:\n                  number: 80\n          - path: \/shop\n            pathType: Prefix\n            backend:\n              service:\n                name: shop-service\n                port:\n                  number: 80\n          - path: \/\n            pathType: Prefix\n            backend:\n              service:\n                name: web-service\n                port:\n                  number: 80\n<\/code><\/span><\/pre>\n\n\n<p><strong>Diagram:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">(www.example.com\/api)  --&gt; &#91;Ingress] --&gt; &#91;api-service]\n(www.example.com\/shop) --&gt; &#91;Ingress] --&gt; &#91;shop-service]\n(www.example.com\/)     --&gt; &#91;Ingress] --&gt; &#91;web-service]\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>C. Combined Host and Path-based Routing<\/strong><\/h3>\n\n\n\n<p><strong>What it is:<\/strong><br>Use both host and path to route traffic for fine-grained control.<\/p>\n\n\n\n<p><strong>Use Case:<\/strong><br>Same domain serves different apps under different paths, and you have more than one domain.<\/p>\n\n\n\n<p><strong>Example YAML:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">apiVersion: networking.k8s.io\/v1\nkind: Ingress\nmetadata:\n  name: combined-ingress\nspec:\n  rules:\n    - host: admin.example.com\n      http:\n        paths:\n          - path: \/dashboard\n            pathType: Prefix\n            backend:\n              service:\n                name: admin-dashboard\n                port:\n                  number: 80\n    - host: shop.example.com\n      http:\n        paths:\n          - path: \/cart\n            pathType: Prefix\n            backend:\n              service:\n                name: cart-service\n                port:\n                  number: 80\n<\/code><\/span><\/pre>\n\n\n<p><strong>Diagram:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">(admin.example.com\/dashboard) --&gt; &#91;Ingress] --&gt; &#91;admin-dashboard]\n(shop.example.com\/cart)       --&gt; &#91;Ingress] --&gt; &#91;cart-service]\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>D. Default Backend (Catch-all Rule)<\/strong><\/h3>\n\n\n\n<p><strong>What it is:<\/strong><br>A <strong>default backend<\/strong> serves any request that doesn\u2019t match the host\/path rules above (often a 404 or static site).<\/p>\n\n\n\n<p><strong>Use Case:<\/strong><br>Handle &#8220;not found&#8221; errors or serve a default landing page.<\/p>\n\n\n\n<p><strong>How to set:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>For NGINX, add a <strong>path: \/<\/strong> rule without host or at the bottom.<\/li>\n\n\n\n<li>For AWS ALB Ingress, define a backend with path <code>\/<\/code> and no host, or use a dedicated default backend controller.<\/li>\n<\/ul>\n\n\n\n<p><strong>Example YAML:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">apiVersion: networking.k8s.io\/v1\nkind: Ingress\nmetadata:\n  name: <span class=\"hljs-keyword\">default<\/span>-backend-ingress\nspec:\n  defaultBackend:\n    service:\n      name: <span class=\"hljs-keyword\">default<\/span>-backend\n      port:\n        number: <span class=\"hljs-number\">80<\/span>\n  rules:\n    - host: myapp.example.com\n      http:\n        paths:\n          - path: \/\n            pathType: Prefix\n            backend:\n              service:\n                name: app-service\n                port:\n                  number: <span class=\"hljs-number\">80<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>Diagram:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">(Any unmatched domain\/path) --&gt; &#91;Ingress] --&gt; &#91;<span class=\"hljs-keyword\">default<\/span>-backend]\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><em>Note: The exact method depends on your Ingress controller version.<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>E. TLS\/SSL Rules<\/strong><\/h3>\n\n\n\n<p><strong>What it is:<\/strong><br>Specify which hosts should use HTTPS and which certificate to use for encryption.<\/p>\n\n\n\n<p><strong>Use Case:<\/strong><br>Serve your app securely over HTTPS.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>NGINX Example:<\/strong><\/h4>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">spec:\n  tls:\n    - hosts:\n        - www.example.com\n      secretName: my-tls-secret\n  rules:\n    - host: www.example.com\n      http:\n        paths:\n          - path: \/\n            pathType: Prefix\n            backend:\n              service:\n                name: web-service\n                port:\n                  number: 80\n<\/code><\/span><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li><code>my-tls-secret<\/code> is a Kubernetes TLS secret with your certificate and private key.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>AWS ALB Example:<\/strong><\/h4>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">metadata:\n  annotations:\n    kubernetes.io\/ingress.class: alb\n    alb.ingress.kubernetes.io\/certificate-arn: arn:aws:acm:REGION:ACCOUNT:certificate\/XXXX\n<\/code><\/span><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li>The annotation links your ACM certificate to the ALB for HTTPS.<\/li>\n<\/ul>\n\n\n\n<p><strong>Diagram:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\">(<span class=\"hljs-selector-tag\">Browser<\/span> <span class=\"hljs-selector-tag\">--HTTPS--<\/span>&gt; <span class=\"hljs-selector-tag\">ALB<\/span>) <span class=\"hljs-selector-tag\">--HTTP--<\/span>&gt; <span class=\"hljs-selector-attr\">&#91;Service]<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>F. Advanced Rules<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>1. Rewrite\/Redirect Rules<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Modify the URL path before passing to backend, or redirect to another location.<\/li>\n\n\n\n<li>Often set using annotations (varies by controller).<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>2. Authentication Rules<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Protect paths with Basic Auth, OAuth2, or custom headers.<\/li>\n\n\n\n<li>Usually via annotations or external Auth service.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>3. Rate Limiting \/ WAF<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Control request rates or apply security policies.<\/li>\n\n\n\n<li>Usually via annotations\/integration with external tools.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. <strong>Examples and Use Cases Table<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Rule Type<\/th><th>Use Case Example<\/th><th>YAML Location<\/th><th>Example Controller Features<\/th><\/tr><\/thead><tbody><tr><td>Host-based<\/td><td>Subdomains for separate apps<\/td><td><code>rules.host<\/code><\/td><td>All controllers<\/td><\/tr><tr><td>Path-based<\/td><td>Single domain, multiple apps (microservices)<\/td><td><code>rules.http.paths<\/code><\/td><td>All controllers<\/td><\/tr><tr><td>Host + Path<\/td><td>Multi-tenant or region-based routing<\/td><td>Both<\/td><td>All controllers<\/td><\/tr><tr><td>Default Backend<\/td><td>Catch-all for 404 or static page<\/td><td><code>defaultBackend<\/code><\/td><td>All controllers<\/td><\/tr><tr><td>TLS\/SSL<\/td><td>Enable HTTPS with certs for security<\/td><td><code>tls<\/code> \/ annotation<\/td><td>NGINX\/ALB\/Traefik (cert or ACM annotation)<\/td><\/tr><tr><td>Rewrite\/Redirect<\/td><td>SEO, cleaner URLs, app migration<\/td><td>annotations<\/td><td>NGINX, Traefik<\/td><\/tr><tr><td>Authentication<\/td><td>Protect admin panels, APIs, dashboards<\/td><td>annotations<\/td><td>NGINX, Traefik, Kong, custom plugins<\/td><\/tr><tr><td>Rate Limiting\/WAF<\/td><td>Throttle abusive users, block attacks<\/td><td>annotations<\/td><td>NGINX, Kong, ALB WAF<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4. <strong>Visual Summary<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">        +-------------------------+\n        |  Ingress Controller     |\n        +-------------------------+\n         |           |           |\n     Host1      Host2+Path     <span class=\"hljs-keyword\">Default<\/span>\n      |             |             |\n  &#91;ServiceA]   &#91;ServiceB]    &#91;<span class=\"hljs-keyword\">Default<\/span> Svc]\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5. <strong>FAQ &amp; Tips<\/strong><\/h2>\n\n\n\n<p><strong>Q: Can I use all rule types in one Ingress?<\/strong><br>A: Yes! You can combine host, path, TLS, and advanced rules as needed.<\/p>\n\n\n\n<p><strong>Q: What about gRPC?<\/strong><br>A: Use the right annotation (e.g., <code>alb.ingress.kubernetes.io\/backend-protocol-version: GRPC<\/code> for AWS) and make sure your ingress controller supports gRPC routing.<\/p>\n\n\n\n<p><strong>Q: What happens if rules overlap?<\/strong><br>A: The most specific rule (exact match &gt; prefix match &gt; default) wins.<\/p>\n\n\n\n<p><strong>Q: Can I redirect HTTP to HTTPS?<\/strong><br>A: Yes, with annotations or controller config. For ALB, use <code>alb.ingress.kubernetes.io\/ssl-redirect: '443'<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6. <strong>Full Example: Real-World Multi-rule Ingress<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">apiVersion: networking.k8s.io\/v1\nkind: Ingress\nmetadata:\n  name: complex-ingress\n  annotations:\n    kubernetes.io\/ingress.class: alb\n    alb.ingress.kubernetes.io\/certificate-arn: arn:aws:acm:ap-northeast-1:123456789012:certificate\/abcd1234\n    alb.ingress.kubernetes.io\/ssl-redirect: '443'\n    alb.ingress.kubernetes.io\/backend-protocol-version: GRPC\nspec:\n  tls:\n    - hosts:\n        - www.example.com\n      secretName: my-tls-secret         # For NGINX\/Traefik; ignored by ALB\n  rules:\n    - host: www.example.com\n      http:\n        paths:\n          - path: \/api\n            pathType: Prefix\n            backend:\n              service:\n                name: api-service\n                port:\n                  number: 80\n          - path: \/shop\n            pathType: Prefix\n            backend:\n              service:\n                name: shop-service\n                port:\n                  number: 80\n    - host: admin.example.com\n      http:\n        paths:\n          - path: \/dashboard\n            pathType: Prefix\n            backend:\n              service:\n                name: admin-dashboard\n                port:\n                  number: 80\n    # Default backend or more hosts\/paths as needed\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Host-based<\/strong>: Route by domain.<\/li>\n\n\n\n<li><strong>Path-based<\/strong>: Route by URL path.<\/li>\n\n\n\n<li><strong>Combined<\/strong>: Mix host\/path for precise routing.<\/li>\n\n\n\n<li><strong>Default backend<\/strong>: Catch all requests not matched.<\/li>\n\n\n\n<li><strong>TLS<\/strong>: Secure HTTPS by mapping domain(s) to certificate(s).<\/li>\n\n\n\n<li><strong>Advanced<\/strong>: Use controller features for rewrites, redirects, auth, WAF, etc.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here\u2019s a comprehensive, practical, and easy-to-follow tutorial on all main types of Kubernetes Ingress rules\u2014with detailed explanations, diagrams, and YAML examples for each. This guide is aimed at both beginners&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-51278","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/51278","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=51278"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/51278\/revisions"}],"predecessor-version":[{"id":51279,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/51278\/revisions\/51279"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=51278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=51278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=51278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}