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

相关推荐
小义_38 分钟前
【Kubernetes】(九)Service 2
云原生·容器·kubernetes
Cyber4K3 小时前
【Kubernetes专项】温故而知新,重温技术原理(2)
云原生·容器·kubernetes
雨奔5 小时前
Kubernetes 网络策略(NetworkPolicy)完全指南:声明式 Pod 通信管控
网络·容器·kubernetes
身如柳絮随风扬6 小时前
Kubernetes v1.20.9 集群搭建
云原生·容器·kubernetes
LSL666_6 小时前
微服务架构
微服务·云原生·架构
蛐蛐蛐7 小时前
在Windows 11上安装Docker的踩坑记录
运维·docker·容器
AI精钢7 小时前
Hermes Agent 整合 OpenCode CLI 的实战经验
人工智能·云原生·aigc
cyber_两只龙宝7 小时前
【Oracle】Oracle之使用DML语言管理表
linux·运维·服务器·数据库·云原生·oracle
古典和浪漫7 小时前
docker file 中设置软链接和在k8s 中配置同步时区 有什么区别,各自优缺点
docker·容器·kubernetes
成为你的宁宁8 小时前
【K8s ServiceAccount 机制原理与 RBAC 权限实战应用】
云原生·容器·kubernetes