title: **"**Kubernetes Gateway API로 Ingress 교체하기**"**
description: "Kubernetes Gateway API로 Ingress 교체하는 방법에 대해 논한다. 특히 KinD 환경에 대해 중점적으로 다룬다.**"**
cleanUrl: /sw-engineer/replace-ingress-into-gatewayapi
ogImage: "<https://anyflower.notion.site/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F7570d2fc-66b1-4e23-bb3c-ff7b56842b0d%2F22c8cf98-649c-42df-b1a1-ee2a05d6c43e%2FUntitled.png?table=block&id=ec5b5cfe-443f-49bc-84d1-5885e6ed8801&spaceId=7570d2fc-66b1-4e23-bb3c-ff7b56842b0d&width=2000&userId=&cache=v2>"
floatFirstTOC: right

Kubernetes Gateway API에서의 traffic 전달 논리 구조

Kubernetes Gateway API에서의 traffic 전달 논리 구조

Introduction

Ingress + API Gateway = Kubernetes Gateway API 에서의 논의에 따라 기존 Ingress를 Kubernetes Gateway API로 교체하는 방법을 요약한다. Kubernetes Gateway API 설치는 다음의 문서에 근거한다.

<aside> 💡 본 글은 My Cluster - Home k8s cluster 프로젝트의 일환으로, 아래는 여기서 사용한 코드를 포함한 이 프로젝트의 Github 링크이다.

GitHub - anyflow/my-cluster: Quickly install and remove various apps operated in Kubernetes in a local environment.

</aside>

Prerequisite

교체 절차

Ingress 삭제

port 충돌을 막기 위하여 기 설치된 ingress controller를 삭제한다. 한편 ingress resource는 그대로 두어도 무방하다.

Gateway API 설치

1. Kubernetes Gateway API CRD 설치

kubectl get crd gateways.gateway.networking.k8s.io &> /dev/null || \\
  { kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd?ref=v0.8.0" | kubectl apply -f -; }