88 lines
2.0 KiB
Markdown
88 lines
2.0 KiB
Markdown
---
|
|
title: Gateway
|
|
layout: default
|
|
parent: Operator Manual
|
|
nav_order: 2
|
|
---
|
|
|
|
## Gateway
|
|
The **Gateway** serves as the entry point to the server, handling and routing incoming traffic.
|
|
|
|
### Installation Details
|
|
|
|
When a Gateway is installed, it automatically creates the following Kubernetes resources, all with the same name as the Gateway:
|
|
|
|
- **Service**
|
|
- **ConfigMap**
|
|
- **Deployment**
|
|
|
|
### Service Ports
|
|
|
|
The service exposes the following ports:
|
|
|
|
- **HTTP**: `8080`
|
|
- **HTTPS**: `8443`
|
|
|
|
### Exposing the Gateway Outside the Cluster
|
|
|
|
To expose your Gateway outside the cluster, you have the following options:
|
|
|
|
1. **Create an Ingress resource**:
|
|
Configure an Ingress to route external traffic to your Gateway.
|
|
|
|
2. **Change the Service Type**:
|
|
Patch the Gateway's service to change its type (e.g., to `LoadBalancer` or `NodePort`) for external accessibility.
|
|
|
|
A simple example of gateway
|
|
|
|
```yaml
|
|
apiVersion: gomaproj.github.io/v1beta1
|
|
kind: Gateway
|
|
metadata:
|
|
labels: {}
|
|
name: gateway-sample
|
|
spec:
|
|
# The version of Goma Gateway
|
|
# See: https://github.com/jkaninda/goma-gateway/releases
|
|
gatewayVersion: latest
|
|
## Server config
|
|
server:
|
|
# Kubernetes tls secret name
|
|
tlsSecretName: '' #Optional, tls-secret
|
|
#Redis configs for distributed rate limiting across multiple instances
|
|
redis:
|
|
addr: '' #Optional, redis:6379
|
|
password: '' #Optional, password
|
|
writeTimeout: 10
|
|
readTimeout: 15
|
|
idleTimeout: 30
|
|
logLevel: info
|
|
disableHealthCheckStatus: false
|
|
disableKeepAlive: false
|
|
enableMetrics: true
|
|
replicaCount: 1
|
|
resources:
|
|
limits:
|
|
cpu: 200m
|
|
memory: 512Mi
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
# Enable auto scaling
|
|
autoScaling:
|
|
enabled: true
|
|
minReplicas: 2
|
|
maxReplicas: 5
|
|
targetCPUUtilizationPercentage: 80
|
|
targetMemoryUtilizationPercentage: 80
|
|
affinity: {}
|
|
```
|
|
### Delete gateway
|
|
```shell
|
|
kubectl delete gateway (gatewayName)
|
|
```
|
|
Or
|
|
|
|
```shell
|
|
kubectl delete gateways.gomaproj.github.io (gatewayName)
|
|
``` |