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集群缩容是成功的

相关推荐
CAFEBABE 342 小时前
安装完docker之后怎么使用
运维·docker·容器
测试人社区—小叶子3 小时前
测试开发面试高频“灵魂八问”深度解析与应答策略
网络·人工智能·测试工具·云原生·容器·面试·职场和发展
Henry Zhu1234 小时前
VPP中ACL实战配置指南与VPP的API使用初探
运维·服务器·网络·计算机网络·云原生
VermiliEiz5 小时前
使用二进制文件方式部署kubernetes(1)
kubernetes·云计算
kevin_水滴石穿5 小时前
centos7 离线安装docker-compose(纯绿色安装)
运维·docker·容器
java_logo6 小时前
CALIBRE-WEB Docker 容器化部署指南
前端·docker·容器·电子书·calibre·calibre-web·docker部署calibre
云计算小黄同学7 小时前
k8s中的服务通过secret访问数据库的实际案例
数据库·阿里云·kubernetes
Watermelo6177 小时前
【简单快速】windows中docker数据如何从C盘迁移到其他盘
java·运维·docker·容器·运维开发·devops·空间计算
炸裂狸花猫8 小时前
开源日志收集体系ELK
elk·elasticsearch·云原生·kubernetes·metricbeat