当前位置: 首页 > news >正文

阿里云ACK(Serverless)安装APISIX网关及APISIX Ingress Controller

在k8s上安装apisix全家,通过helm安装很简单,但是会遇到一些问题。

安装

首先登录阿里云控制台,在ACK集群详情页,进入CloudShell,执行下面helm命令安装apisix、apisix-ectd、apisix-dashboard和apisix-ingress-controller。

helm repo add apisix https://charts.apiseven.com && helm repo update && helm upgrade --install apisix apisix/apisix --create-namespace  --namespace apisix --set dashboard.enabled=true --set ingress-controller.enabled=true --set ingress-controller.config.apisix.serviceNamespace=apisix

也可以分成三步执行

# 添加repo
helm repo add apisix https://charts.apiseven.com
# 
helm repo update
# 安装chart
helm upgrade --install apisix apisix/apisix --create-namespace  --namespace apisix --set dashboard.enabled=true --set ingress-controller.enabled=true --set ingress-controller.config.apisix.serviceNamespace=apisix

执行完命令安装的服务:

  • apisix:网关,对应的Service资源有apisix-gateway、apisix-admin。
  • apisix-dashboard:管理后台,对应的Service资源是apisix-dashboard。
  • apisix-ingress-controller:apisix的Ingress Controller,实现将k8s官方提供的Ingress资源,或是apisix自定义的资源ApisixRoute,转为apisix的配置存储到apisix的etcd。
  • apisix-etcd:apisix的etcd集群。

apisix-etcd部署遇到的问题

其中apisix-etcd是有状态服务,部署3个节点,需要用到3个存储卷。

PVC的声明如下:

spec:accessModes:- ReadWriteOnceresources:requests:storage: 8GivolumeMode: Filesystem

因此,我们需要到ECS购买3块云盘(云服务器ECS->存储与快照->云盘->创建云盘),用来做持久化存储卷。需要注意,购买的云盘所在的可用区,必须和集群在同一个可用区,否则无法挂盘成功。

购买成功后,在ack集群服务下,存储->存储卷,创建3个存储卷,类型勾选云盘,然后选择购买好的云盘。

截屏2023-11-12 20.18.55.png

然后到存储->存储声明,修改etcd的几个PVC,添加storageClassName: disk,这样pvc和pv就自动绑定了。

截屏2023-11-12 20.19.53.png

重新部署一下etcd有状态服务,这次将不会报找不到存储卷的错误,但是容器会一直重启,查看启动日记我们会看到pod想创建/bitnami/etcd/data目录,但是报了无权限。

解决权限问题,添加一个初始化容器,修改挂盘路径的权限。

       initContainers:- args:- '-c'- chmod 777 /bitnami/etcdcommand:- /bin/shimage: centosimagePullPolicy: IfNotPresentname: chmodresources: {}securityContext:runAsUser: 0terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilevolumeMounts:- mountPath: /bitnami/etcdname: data

然后还要修改主容器的securityContext。

      securityContext:fsGroup: 0runAsGroup: 0runAsUser: 0

怎么访问apisix网关

由于我买的是ACK的Serverless集群(ASK),没有固定的Node,所以需要将apisix-gateway这个Service资源的type改为LoadBalancer,这样阿里云就会为我们创建一个CLB,然后得到一个公网IP。

怎么访问apisix-dashboard

访问dashboard前,需要给apisix-dashboard也分配clb,即将apisix-dashboard的Service的类型改为LoadBalancer。

账号密码在名为“apisix-dashboard”的ConfigMap资源里面描述,修改账号密码的话也是修改这个ConfigMap资源即可,修改成功后需要重启dashboard容器。(ACK集群控制台->配置管理->配置项->apisix-dashboard)

http://www.lryc.cn/news/227697.html

相关文章:

  • vue+mongodb+nodejs实现表单增删改查
  • SpringBootWeb案例——Tlias智能学习辅助系统(3)——登录校验
  • hive和spark-sql中 日期和时间相关函数 测试对比
  • Cell和RefCell
  • DaoWiki(基于Django)开发笔记 20231113
  • 照片放大软件 Topaz Gigapixel AI mac中文版简介
  • 某手游完整性校验分析
  • 【ElasticSearch】学习使用DSL和RestClient编写查询语句
  • asp.net外卖网站系统VS开发mysql数据库web结构c#编程Microsoft Visual Studio
  • 2.4.0 Milky Way 强势登场!新功能大爆炸,让你High翻全场!
  • C语言----静态链接库和动态链接库
  • PCA(主成分分析)数据降维技术代码详解
  • Git版本控制系统之分支与标签(版本)
  • JSP运行环境搭建
  • React通过属性 (props) 和状态 (state) 来传递和管理组件的数据
  • Web相机和浏览器的二维码扫描方案
  • 云端部署ChatGLM-6B
  • 设计模式(3)-结构型模式
  • C/C++调试工具 - gdb详解
  • 传奇GOM引擎微端连接不上如何解决
  • Easymesh介绍
  • 图像相似度对比方法
  • C++ 配合图形库实现画线效果
  • zookeeper应用之分布式屏障
  • PDBADMIN 的作用,命名,重建 以及能否DROP
  • 华为L410上制作内网镜像模板02
  • 美国材料与试验协会ASTM发布新版玩具安全标准 ASTM F963-23
  • Postman模拟上传文件
  • 【系统架构设计】架构核心知识: 1 系统工程与信息系统基础
  • 加班把数据库重构完毕