ACK部署Apacheapisix-ingress-cotroller

本文转载自微信公众号「Kirito的技术分享」,作者金卫。转载本文请联系Kirito的技术分享公众号。金卫  

在平泉等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、网站建设 网站设计制作定制网站建设,公司网站建设,企业网站建设,品牌网站建设,营销型网站建设,外贸网站制作,平泉网站建设费用合理。

背景

Ingress 是 Kubernetes 中一个值得关注的模块,作为外部访问 Kubernetes 集群服务的入口,市面上已经有了多种 Ingress controller 的实现。国产实时、高性能的 API 网关 Apache APISIX 推出的 Apache/apisix-ingress-controller 就是其中一员,作为功能更加强大的 ingress 对外提供服务。笔者准备在阿里云 ACK 集群上部署测试。

主题描述

本文主要介绍在阿里云 ACK 部署 apisix-ingress-controller,并且使用 httpbin 测试一个简单的场景。

部署拓扑

网络拓扑

依赖项

阿里云的 ACK 集群 ;推荐最低配置:3个 master 节点:CPU 2核 内存 4G2个 worker 节点:CPU 4核 内存 8G

安装步骤

apisix 2.1 release

通过 helm 安装 apisix 2.1 release

 
 
 
 
  1. $ kubectl create ns apisix 
  2. $ git clone https://github.com/apache/apisix-helm-chart.git 
  3. $ cd ./apisix-helm-chart 
  4. $ helm repo add bitnami https://charts.bitnami.com/bitnami 
  5. $ helm dependency update ./chart/apisix 
  6. $ helm install apisix ./chart/apisix \ 
  7.   --set gateway.type=LoadBalancer \ 
  8.   --set allow.ipList="{0.0.0.0/0}" \ 
  9.   --namespace apisix 

tips: etcd 安装时指定 PVC, PVC 在阿里云部署时,需要指定 PV 为云盘, 请在 PVC 的 annotations 中增加:volume.beta.kubernetes.io/storage-class: alicloud-disk-ssd。(关于 PVC 和 PV 的关系请参考这里)

apisix-ingress-controller

通过 helm 安装 apisix-ingress-controller

 
 
 
 
  1. $ git clone https://github.com/apache/apisix-ingress-controller.git 
  2. $ cd ./apisix-ingress-controller 
  3. $ helm install ingress-apisix-base -n apisix ./charts/base 
  4. $ helm install ingress-apisix ./charts/ingress-apisix \    
  5.   --set ingressController.image.tag=dev \ 
  6.   --set ingressController.config.apisix.baseURL=http://apisix-admin:9180/apisix/admin \ 
  7.   --set ingressController.config.apisix.adminKey=edd1c9f034335f136f87ad84b625c8f1 \ 
  8.   --namespace apisix 

测试

检查集群是否部署成功

 

配置一个简单的路由做测试

 
 
 
 
  1. apiVersion: apisix.apache.org/v1 
  2. kind: ApisixRoute 
  3. metadata: 
  4.   name: httpbin-route 
  5.   namespace: apisix 
  6. spec: 
  7.   rules: 
  8.   - host: httpbin.apisix.com 
  9.     http: 
  10.       paths: 
  11.       - backend: 
  12.           serviceName: httpbin 
  13.           servicePort: 80 
  14.         path: /hello* 

通过 apisix admin api 查看结果,发现路由已经正确配置。

 
 
 
 
  1.     "action": "get", 
  2.     "count": "2", 
  3.     "header": { 
  4.         "revision": "46", 
  5.         "cluster_id": "8320356269565269865", 
  6.         "raft_term": "2", 
  7.         "member_id": "3807956127770623265" 
  8.     }, 
  9.     "node": { 
  10.         "key": "/apisix/upstreams", 
  11.         "dir": true, 
  12.         "modifiedIndex": 27, 
  13.         "createdIndex": 3, 
  14.         "nodes": [ 
  15.             { 
  16.                 "key": "/apisix/upstreams/00000000000000000041", 
  17.                 "modifiedIndex": 42, 
  18.                 "value": { 
  19.                     "nodes": { 
  20.                         "172.20.1.12:80": 100 
  21.                     }, 
  22.                     "type": "roundrobin", 
  23.                     "pass_host": "pass", 
  24.                     "hash_on": "vars", 
  25.                     "desc": "apisix_httpbin_80", 
  26.                     "create_time": 1608561159, 
  27.                     "update_time": 1608561159 
  28.                 }, 
  29.                 "createdIndex": 42 
  30.             } 
  31.         ] 
  32.     } 

扩容 httpbin

 

查看 k8s 中 httpbin

查看 apisix 中 httpbin upstream

 
 
 
 
  1. // 格式化后 
  2.     ... 
  3.         "nodes": { 
  4.             "172.20.1.12:80": 100, 
  5.             "172.20.0.198:80": 100, 
  6.             "172.20.0.197:80": 100 
  7.         }, 
  8.         "id": "00000000000000000041", 
  9.         "key": "/apisix/upstreams/00000000000000000041", 
  10.         "desc": "apisix_httpbin_80", 
  11.   ... 

总结

本文在 ACK 集群环境依次安装了 Etcd、 Apache APISIX、Apache apisix-ingress-controller,并且使用 httpbin 服务验证 ingress 的基本配置功能,通过 CRD 配置了路由,检测了后端服务在扩缩容时服务注册发现机制。

另外值得一提的是 apisix-ingress-controller 可以完整的支持 Apache APISIX 提供的所有插件,甚至是自定义插件。功能丰富且扩展能力强,是一款不错的 Ingress 项目。

新闻名称:ACK部署Apacheapisix-ingress-cotroller
网站链接:http://www.shufengxianlan.com/qtweb/news21/136521.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联