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

相关推荐
wdxylb4 小时前
云原生俱乐部-shell知识点归纳(1)
linux·云原生
木易双人青6 小时前
01-Docker-简介、安装与使用
运维·docker·容器
晴天彩虹雨10 小时前
存算分离与云原生:数据平台的新基石
大数据·hadoop·云原生·spark
罗不俷11 小时前
【RH134知识点问答题】第13章:运行容器
容器·rhel
春人.14 小时前
PortainerCE 跨云管理:cpolar 内网穿透服务实现多环境统一控制
云原生·eureka
tb_first15 小时前
k8sday11服务发现(2/2)
docker·云原生·容器·kubernetes·k8s
zxcxylong17 小时前
almalinux9.6系统:k8s可选组件安装(1)
云原生·容器·kubernetes·metrics·almalinux·hpa·vpa
君不见,青丝成雪18 小时前
大数据云原生是什么
大数据·云原生
一个天蝎座 白勺 程序猿21 小时前
Apache IoTDB(4):深度解析时序数据库 IoTDB 在Kubernetes 集群中的部署与实践指南
数据库·深度学习·kubernetes·apache·时序数据库·iotdb
熊出没1 天前
微服务如何集成swagger3
微服务·云原生·架构