k8s部署kong(helm)和konga(yaml)
文中展示了如何将kong和konga部署到k8s内,可用于学习和测试环境
·
目标
- kong作为网关 ,既可以部署到k8s外面也可以部署在k8s里面,作为k8s的流量入口,本文将kong部署到k8s内
- konga是kong的常用的ui,通过konga对kong的进行可视化操作,当然konga也可以部署在k8s外部和内部,本文将konga部署在k8s内
步骤
- 准备
- 一个正常运行的k8s环境(本文环境: mac上docker自带的k8s)
- helm3.0工具,可自行百度安装
- kong安装
-
添加helm repo, 搜索kong, 并下载解压:
helm repo add kong https://charts.konghq.com
helm repo update
helm repo list -
如图:
-
helm search repo kong
-
拉取kong
helm pull kong/kong
tar zxvf kong-2.25.0.tgz -
修改values.yaml
... 指定kong的数据库为postgres env: database: "postgres" ... 开启postgresql数据库,并指定认证信息和images及tag postgresql: enabled: true auth: username: kong password: kong database: kong image: # use postgres < 14 until is https://github.com/Kong/kong/issues/8533 resolved and released # enterprise (kong-gateway) supports postgres 14 tag: 9.6 # 自带版本会遇到问题 ... ... 开启admin(用于konga连接), 关闭tls, 开启http admin: enabled: true type: ClusterIP http: enabled: true tls: enabled: false ... 修改proxy类型为NodePort,不过用原来的LoadBalancer也行 proxy: type: NodePort
-
安装
进入解压目录内,执行
helm install kong -n helm-kong . -
稍等服务启动,确认服务正常:
-
在浏览器中打开地址:http://localhost:31211 这个端口是proxy nodeport的80对应的外部端口,换成实际的(随机分配的),结果如图
-
- konga安装
- 创建文件konga.yaml,内容如下:
apiVersion: apps/v1 kind: Deployment metadata: name: konga namespace: helm-kong spec: replicas: 1 selector: matchLabels: app: konga template: metadata: labels: app: konga spec: containers: - name: konga image: pantsel/konga env: - name: DB_ADAPTER value: 'postgres' - name: DB_HOST value: 'kong-postgresql.helm-kong.svc.cluster.local' - name: DB_PORT value: '5432:5432' - name: DB_PASSWORD value: 'kong' - name: DB_USER value: 'kong' - name: DB_DATABASE value: 'kongba' ports: - containerPort: 1337 name: web --- kind: Service apiVersion: v1 metadata: name: konga namespace: helm-kong spec: type: NodePort ports: - name: http protocol: TCP port: 1337 targetPort: 1337 nodePort: 31337 selector: app: konga
- 执行安装:kubectl apply -f konga.yaml -n helm-kong命令
- 结果如图
- 创建文件konga.yaml,内容如下:
- konga连接kong admin api
- 打开浏览器:http://localhost:31337/
- 注册admin账户后,连接kong admin api: http://kong-kong-admin:8001,如图:
- 用kong代理konga
- 首先进入"SERVICES"并点击新增,然后填入图中三处
- 首先进入"SERVICES"并点击新增,然后填入图中三处
- 然后选则"Routes", 输入图中内容(注意path输入后要按下回车)
- 最后在浏览器访问:http://localhost:31211/konga/,即可进入kong代理后的konga,如图
- (可选)最后让konga只有一个入口(从kong转发进来)
- 输入kubectl edit svc konga -n helm-kong找到下方NodePort,并修改为ClusterIP,保存退出, 如图:
- 效果如图
总结
- 文中展示了如何将kong和konga部署到k8s内,可用于学习和测试环境,至于生产环境是否这样部署由实际情况决定
- 文中忽略了持久化等考虑
参考链接
- konga的yaml来自https://www.cnblogs.com/klvchen/articles/15753893.html
更多推荐
已为社区贡献1条内容
所有评论(0)