目录:
(1).第三方仓库与版本选择
(2).kubesphere部署etcd
(3).kubesphere部署apisix与apisix-dashboard
1.创建运维用apisix
1.1.部署apisix-devops
1.2.部署apisix-devops-controller
1.3.部署apisix-devops-dashboard
1.4.统一修改svc的nodeport端口
2.创建业务用apisix
2.1.部署apisix-biz
2.2.部署apisix-biz-controller
2.3.部署apisix-biz-dashboard
2.4.统一修改svc的nodeport端口
(1).第三方仓库与版本选择
etcd版本:3.5.1
apisix版本:2.10.0
apisix-controller版本:1.3.0
apisix-dashboard版本:
etcd选择仓库:
https://charts.bitnami.com/bitnami
apisix选择仓库:
https://charts.apiseven.com
关于Bitnami:
是一个开源项目,为开源的Web应用程序、开发堆栈以及虚拟设备提供安装程序或安装软件包。
(2).kubesphere部署etcd
kubesphere的应用商店里有etcd,是由kubesphere维护的,版本比较老,所以选择Bitnami。
另外,这个etcd集群(个人机器实际只有一个pod)为所有需要的服务提供注册服务,比如apisix至少有两个集群,一个是devops专用,一个是业务专用。
安全起见,开启rbac:
allowNoneAuthentication:是否允许匿名访问etcd(不是用用户名密码),设置为false禁止匿名访问。
rootPassword:设置为etcd@P3d8UiA
如果启动etcd报这个错,密码怎么改都不对,说明你之前在pv中有密码,两者不一致,最简单的做法是删除pvc/pv,生产别这么干。
要注意一下pv用的sc,是default,没有问题:
部署后的组件和pv:
后续如果想增加节点,直接在kubesphere编辑对应的statefulset中的replica的值即可。
(3).kubesphere部署apisix与apisix-dashboard
kubesphere的应用商店里有apisix,是由kubesphere维护的,但是版本太老,所以使用第三方仓库。
1.创建运维用apisix
部署顺序:apisix -> apisix-controller -> apisix-dashboard
1.1.部署apisix-devops
修改etcd部分:使用前边部署的etcd,并修改prefix,访问etcd开启auth。
rootPassword:设置为etcd@P3d8UiA
apisix的replicaCount默认为1,不变。
1.2.部署apisix-devops-controller
修改apisix-admin的serviceName和serviceNamespace:
直至点到完成。
1.3.部署apisix-devops-dashboard
修改etcd相关配置:
rootPassword:设置为etcd@P3d8UiA
但是不支持修改前缀,需要手动修改对应的configmap:
kubectl edit cm -n apisix-devops apisix-devops-dashboard-apisix-dashboard
然后重启pod让其生效。
1.4.统一修改svc的nodeport端口
不支持指定nodeport,只能事后修改svc。apisix和dashboard都暴露nodeport并固定端口号。
apisix固定nodePort为31600。
kubectl edit svc -n apisix-devops apisix-devops-gateway。
修改apisix-devops-dashboard为nodeport,并固定端口号为31601。
kubectl edit -n apisix-devops svc apisix-devops-dashboard-apisix-dashboard
2.创建业务用apisix
2.1.部署apisix-biz
apisix的replicaCount默认为1,不变。
2.2.部署apisix-biz-controller
修改apisix-admin的serviceName和serviceNamespace:
直至点到完成。
2.3.部署apisix-biz-dashboard
修改etcd相关配置:
rootPassword:设置为etcd@P3d8UiA
但是不支持修改前缀,需要手动修改对应的configmap:
kubectl edit cm -n apisix-biz apisix-biz-dashboard-apisix-dashboard
然后重启pod让其生效。
2.4.统一修改svc的nodeport端口
不支持指定nodeport,只能事后修改svc。apisix和dashboard都暴露nodeport并固定端口号。
apisix固定nodePort为31700。
kubectl edit -n apisix-biz svc apisix-biz-gateway。
修改apisix-devops-dashboard为nodeport,并固定端口号为31701。
kubectl edit -n apisix-biz svc apisix-biz-dashboard-apisix-dashboard。