Pre-requisite

You need to ensure the following before installation:

  1. Kubernetes cluster (EKS/GKE/AKS/On-prem)

  2. Helm. ( Refer to this documentation to get started)

  3. Controller of Istio or Envoy Gateway (you can refer to the video to install Istio/Envoy Gateway controllers)

You need to install IMESH Agent to your cluster. The minimum resources you require for installing IMESH Agent are provided below:

ItemsCPUMemory

IMESH Agent

50m

128MB

Note: These minimum resources are as per this release only and may vary in future releases.

Install Gateway API CRD

Use the following command to install the Kubernetes Gateway API CRD standard channel.

kubectl apply -f
https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.1.0/standard-install.yaml

(refer to the Kubernetes gateway API guide to know more)

Installing Istio as a controller for Gateway API

You can install the Istio or Envoy Gateway controller. Here are the commands to install Istiod, which will act as the controller for managing the Kubernetes gateway. (We have used istioctl, but you can use HELM alternatively).

istioctl install -set profile=minimal

(Note: we have kept the profile minimal because we need only Istio core or Istiod)

Installing Envoy Gateway as a controller for Gateway API

You can install Envoy Gateway as a controller by executing the following command:

kubectl apply --server-side -f https://github.com/envoyproxy/gateway/releases/download/v1.1.0/install.yaml

Create GatewayClass resource

To create gateways, we have to make a GatewayClass CRD. The GatewayClass resource represents a class of controllers that can be instantiated. Istio automatically installs GatewayClass CRD; however, with Envoy Gateway, one must manually create and deploy GatewayClass CRD.

To create a GatewayClass resource, you can use the following code to create a YAML file.

apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
  name: eg
spec:
  controllerName: gateway.envoyproxy.io/gatewayclass-controller

You can deploy the yaml to create a GatewayClass resource.

Last updated