Kubernetes部署apisix的理论与最佳实践(四)

#作者: stackofumbrella

文章目录

接上篇:https://panjistack.blog.csdn.net/article/details/150350935?spm=1001.2014.3001.5502

版本升级

K8S部署的apisix是采用deploy控制器部署的,升级版本只需要修改镜像的版本号即可,同时要注意的是apisix有两种镜像类型,即redhat和debian,所以前后版本类型要一致

修改版本

$ sudo vim apisix.yaml

$ kubectl apply -f apisix/apisix.yaml

$ kubectl get pod -n gv-public -w

查看apisix的版本

$ kubectl exec -it apisix-59b764776b-8h5hv -n gv-public -- bash -c "apisix version"

apisix版本升级成功

修改etcd版本

$ sudo vim etcd.yaml

$ kubectl apply -f etcd.yaml

$ kubectl get pod -n gv-public -w

查看etcd版本

$ kubectl exec -it apisix-etcd-0 -n gv-public -- bash -c "etcd --version"

查看数据

可以看到dashboard上的插件数据没有丢失,说明升级成功

apisix和etcd扩缩容

apisix是采用deploy部署,etcd是statefulset部署,都可以采用更改yml配置清单文件,或在线扩缩容,都是可以实现的

apisix在线扩容

$ kubectl scale deploy apisix --replicas=3 -n gv-public

etcd在线扩容

$ kubectl scale sts apisix-etcd --replicas=4 -n gv-public

$ kubectl get pod -n gv-public -w | grep apisix-etcd

测试etcd

$ kubectl exec -it apisix-etcd-0 -n gv-public -- bash -c 'etcdctl put key1 value2'

OK

$ kubectl exec -it apisix-etcd-3 -n gv-public -- bash -c 'etcdctl get key1'

key1

value2

在旧的节点中添加数据,可以在新增的节点中查询到数据,说明etcd集群扩容是成功的

apisix在线缩容

$ kubectl scale deploy apisix --replicas=2 -n gv-public

$ kubectl get pod -n gv-public -w

$ kubectl get pod -n gv-public

etcd在线缩容

$ kubectl scale sts apisix-etcd --replicas=3 -n gv-public

$ kubectl get pod -n gv-public -w | grep apisix-etcd

$ kubectl get pod -n gv-public | grep apisix-etcd

测试etcd

$ kubectl exec -it apisix-etcd-2 -n gv-public -- bash -c 'etcdctl get key1'

key1

value2

在etcd节点中可以查询到旧数据,说明etcd集群缩容是成功的

相关推荐
江湖有缘4 小时前
Docker实战 :使用Docker部署OneTerm堡垒机
运维·docker·容器
张忠琳4 小时前
【NPU】Ascend Docker Runtime v26.0.1 之二 runtime/process/process.go — 超深度逐行分析
云原生·容器·架构·kubernetes·npu·docker-runtime
Kevin Wang7278 小时前
Nvidia-AGX-spark部署手册——课堂质量诊断(jetpack:r36)
python·docker·容器
回眸不遇10 小时前
将 Docker虚拟磁盘文件ext.vhdx迁移出C盘 ,更换到D盘
c语言·docker·容器
雨辰AI11 小时前
K8s人大金仓主从高可用搭建|容器化集群自动同步+故障切换(生产完整版)
云原生·容器·kubernetes
潘正翔12 小时前
k8s基础_kubeadm搭建k8s集群
linux·运维·docker·云原生·容器·kubernetes
Echo flower12 小时前
Docker 容器中 Puppeteer 僵尸进程排查与修复
运维·docker·容器·puppeteer
潘正翔13 小时前
k8s进阶_Harbor镜像仓库
git·云原生·容器·kubernetes·gitee·github
江湖有缘13 小时前
Docker实战 | 使用Docker部署Donetick任务与家务管理应用
运维·docker·容器
乐启国际旅行社有限公司13 小时前
微服务高可用实战:Resilience4j熔断降级解决文旅节假日流量雪崩问题
微服务·云原生·架构