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

相关推荐
小马同学-1 小时前
K8s 控制器详解 — Deployment、ReplicaSet、DaemonSet 与 Job
云原生·容器·kubernetes
阿里云云原生2 小时前
深度解析 Jev 模型:如何快速做结构化决策
云原生
刘婉晴4 小时前
【K8S安全】4. 节点到云
安全·容器·kubernetes
阿里云云原生6 小时前
AI 中台的构建和智能体调优实践
云原生·agent
做运维的阿瑞6 小时前
Terraform 模块版本管理:约束语法、源类型与升级策略
云原生·云计算·terraform
时间售卖铺6 小时前
MySQL 表的约束
运维·数据库·mysql·云原生
做运维的阿瑞7 小时前
Terraform 模块组合:VPC、安全组、EC2 的输出传递与依赖编排
云原生·云计算·terraform
孔令飞7 小时前
【OneX】OneX AI 工具安装、配置及功能介绍
云原生·go·ai编程
lisanmengmeng7 小时前
监控Kubernetes集群的GPU资源(三)
linux·容器·kubernetes