K8S提供了ingress特性,而可实现ingress的软件有nginx、haproxy、traefix等,本文描述如何将API网关服务Kong作为ingress来暴露集群提供的服务。
本文采用Helm方式安装,否则可用原始YAMLs文件方式安装,如:
% kubectl apply -f https://bit.ly/kong-ingress
% kubectl apply -f https://bit.ly/kong-ingress-dbless
可选。若主机无法访问gcr.io网站,需将charts下载到本地主机:
git clone https://github.com/helm/charts.git
创建namespace:
% kubectl create namespace kong
如下以db-less模式安装kong,并启用其k8s ingress control:
% helm install stable/kong
–name kong
–namespace kong
–set ingressController.enabled=true
–set postgresql.enabled=false
–set env.database=off
% cd charts/stable/kong
% mv requirements.yaml requirements.yaml.orig # db-less模式安装,可将数据库依赖删掉
% helm install .
–name kong
–namespace kong
–set ingressController.enabled=true
–set postgresql.enabled=false
–set env.database=off
安装完成后检查。注意:默认helm安装采用NodePort方式暴露kong-proxy(代理)端口,故端口是随机生成的,如下所示,通过主机的30569可访问kong的80端口,通过32461端口可访问kong的443端口。
https://segmentfault.com/a/1190000020470164
https://github.com/Kong/kubernetes-ingress-controller
https://github.com/helm/charts/tree/master/stable/kong
https://www.jianshu.com/p/520570bc171c
https://www.cnblogs.com/cuishuai/p/10737737.html
https://github.com/cuishuaigit/k8s-kong
https://zhuanlan.zhihu.com/p/136411744
https://it.baiked.com/kubernetes/2477.html