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