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失败

相关推荐
Mr.王8355 小时前
Kubernetes宿主机本地盘池化管理
ceph·云原生·容器·kubernetes
Smoothcloud润云8 小时前
从“预测下一个词”到“预测下一个世界状态”:世界模型作为AGI新范式的深度分析报告
人工智能·测试工具·微服务·容器·github·状态模式·agi
老王熬夜敲代码10 小时前
接入Docker隔离测试
docker·容器·langchain
张32312 小时前
K8s存储卷入门
云原生·kubernetes
MGS浪疯13 小时前
让 QClaw 将复杂的 Docker 项目转为 exe!
运维·docker·容器
zhao006614 小时前
flux + kubernetes + gitops + Kustomization
kubernetes·gitops
钝挫力PROGRAMER14 小时前
关于软件架构的一些疑惑
微服务·云原生·架构
.柒宇.14 小时前
docker容器技术实战
运维·docker·容器
倔强的胖蚂蚁14 小时前
信创企业级 openEuler 24 部署 docker-ce 全指南
运维·docker·云原生·容器
岳来16 小时前
docker network 创建 host 和 none 网络模式
网络·docker·容器·docker network