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

相关推荐
一条闲鱼_mytube3 小时前
Kubernetes Operator 原理与实践:从入门到实战
云原生·容器·kubernetes
匀泪3 小时前
云原生(nginx实验(2))
运维·nginx·云原生
DeeplyMind4 小时前
第6章 Docker镜像基础操作
运维·docker·容器
马丁的代码日记4 小时前
Docker 无法拉取镜像的解决方案
运维·docker·容器
是小王吖!4 小时前
容器技术 - docker
运维·docker·容器
小义_5 小时前
【RH134知识点问答题】第13章 运行容器
linux·云原生
Cyber4K5 小时前
【Kubernetes专项】Ingress、Ingress-Controller
云原生·容器·kubernetes
礼拜天没时间.9 小时前
Docker与Harbor迁移实战:从入门到生产级完整指南
linux·运维·docker·容器·架构·centos
匀泪13 小时前
云原生(nginx实验(1))
nginx·云原生
猫头虎13 小时前
OpenClaw相关的开源AI项目汇总大全:本文涵盖近期所有OpenClaw相关的GitHub高星star热门项目
运维·人工智能·macos·docker·容器·开源·github