Kubernetes/Helm/Helm部署KongGateway.md
offends 7a2f41e7d6
All checks were successful
continuous-integration/drone Build is passing
synchronization
2024-08-07 18:54:39 +08:00

142 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

> 本文作者:丁辉
# Helm部署KongGateway
[官方安装文档](https://docs.konghq.com/gateway/latest/install/kubernetes/proxy/) [Github仓库](https://github.com/pantsel/konga)
## 介绍
Kong Gateway是一个**基于Nginx和OpenResty实现的云原生分布式API网关具有高性能、高可用特点**。
## 开始部署
1. 添加 Helm 仓库
```bash
helm repo add kong https://charts.konghq.com
helm repo update
```
2. 编辑 values.yaml
```bash
vi kong-gateway-values.yaml
```
内容如下
```yaml
ingressController:
enabled: true
# 安装模式配置为 daemonset
deployment:
daemonset: true
hostNetwork: false
# 更改 service type
proxy:
enabled: true
type: ClusterIP
http:
hostPort: 80
tls:
hostPort: 443
manager:
enabled: true
type: ClusterIP
admin:
enabled: true
type: ClusterIP
# 启用管理员API
http:
enabled: true
tls:
enabled: false
# 配置标签
nodeSelector:
kong: "true"
# 开启监控
serviceMonitor:
enabled: true
```
3. 配置节点标签
```bash
kubectl label node ${node} kong="true"
```
4. 安装
```bash
helm install kong kong/kong \
--namespace kong \
--create-namespace \
-f kong-gateway-values.yaml
```
## 启用 Postgres 数据库
要启用 Postgres 数据库的话需要在 values.yaml 内添加如下内容:
```yaml
# 对接外部数据库默认为不对接 postgres
# 官方 postgres 参数文档: https://docs.konghq.com/gateway/3.7.x/reference/configuration/#datastore-section
# 提示 pg_host 参数使用 svc 配置后组件启动可能会报错解析错误, 切换为 svc IP即可解决。
env:
database: "postgres"
pg_host: "kong-postgresql.kong.svc.cluster.local"
pg_port: "5432"
pg_user: kong
pg_password: kong
pg_database: kong
pg_ssl: false
pg_ssl_verify: false
router_flavor: "traditional"
nginx_worker_processes: "2"
proxy_access_log: /dev/stdout
admin_access_log: /dev/stdout
admin_gui_access_log: /dev/stdout
portal_api_access_log: /dev/stdout
proxy_error_log: /dev/stderr
admin_error_log: /dev/stderr
admin_gui_error_log: /dev/stderr
portal_api_error_log: /dev/stderr
prefix: /kong_prefix/
# 开启 postgresql
postgresql:
enabled: true
auth:
username: "kong"
password: "kong"
database: "kong"
```
## 卸载
1. 卸载
```bash
helm uninstall kong -n kong
```
2. 删除 PVC
```bash
kubectl delete pvc data-kong-postgresql-0 -n kong
```
3. 删除命名空间
```bash
kubectl delete namespace kong
```