spring cloud gateway k8s优雅启停

通过配置readiness探针和preStop hook,实现优雅启动和停止(滚动部署)

  1. k8s工作负载配置
python 复制代码
          readinessProbe:
            httpGet:
              path: /datetime
              port: 8080
              scheme: HTTP
            initialDelaySeconds: 30
            timeoutSeconds: 1
            periodSeconds: 30
            successThreshold: 1
            failureThreshold: 6
          lifecycle:
            preStop:
              exec:
                command:
                  - /bin/sh
                  - '-c'
                  - sleep 15s
  1. 网关改造
java 复制代码
@SpringBootApplication
public class GracefulShutdownApplication {

	public static void main(String[] args) {
		SpringApplication.run(GracefulShutdownApplication.class, args);
	}

	@Bean
	public GracefulShutdown gracefulShutdown() {
		return new GracefulShutdown();
	}
}
java 复制代码
public class GracefulShutdown implements ApplicationListener<ContextClosedEvent> {
    @Override
    public void onApplicationEvent(ContextClosedEvent contextClosedEvent) {
        HttpResources.disposeLoopsAndConnectionsLater().delaySubscription(Duration.ofSeconds(20)).block();
    }
}

经过测试发现,可以实现请求0失败

相关推荐
GlueNa2SiO325 分钟前
10-Docker生产环境部署与K8s入门
笔记·学习·docker·容器·kubernetes
蜀道山老天师1 小时前
Zabbix监控Docker容器应用实践完整指南
linux·运维·docker·容器·zabbix
星空2 小时前
WordPress在docker中部署
运维·docker·容器
wsad05322 小时前
CentOS Stream 10 Docker 容器无法访问外网:xt_addrtype 内核模块缺失解决方法
linux·网络·docker·云原生·eureka·centos
怦怦蓝2 小时前
Windows 安装 Docker Desktop 踩坑完整实战指南(WSL2 故障排错实录)
windows·docker·容器
行业研究员2 小时前
TDSQL-C:云原生架构与AI能力解析
人工智能·云原生·架构·云原生数据库·ai能力解析
人间凡尔赛3 小时前
当 AI Agent 攻陷网关:Istio agentgateway 与 Gateway API Inference Extension 实战解析
后端·云原生·架构
SLD_Allen3 小时前
基于 eBPF + Cilium 的 Kubernetes 网络可观测与安全治理实践
网络·安全·kubernetes
康娜喵3 小时前
在Ubuntu26上使用Docker部署Gitea
docker·容器·gitea
东宇科技4 小时前
我用docker创建了一个springboot4项目
阿里云·docker·容器