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

2.6 KiB
Raw Blame History

本文作者:丁辉

Helm部署KongGateway

官方安装文档 Github仓库

介绍

Kong Gateway是一个基于Nginx和OpenResty实现的云原生分布式API网关具有高性能、高可用特点

开始部署

  1. 添加 Helm 仓库

    helm repo add kong https://charts.konghq.com
    helm repo update
    
  2. 编辑 values.yaml

    vi kong-gateway-values.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. 配置节点标签

    kubectl label node ${node} kong="true"
    
  4. 安装

    helm install kong kong/kong \
      --namespace kong \
      --create-namespace \
      -f kong-gateway-values.yaml
    

启用 Postgres 数据库

要启用 Postgres 数据库的话需要在 values.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. 卸载

    helm uninstall kong -n kong
    
  2. 删除 PVC

    kubectl delete pvc data-kong-postgresql-0 -n kong
    
  3. 删除命名空间

    kubectl delete namespace kong