You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Azure Kubernetes Services部署ASP.NET Core应用时startup probe失败咨询

常见遗漏配置及修复方案

1. ASP.NET Core Kestrel 监听地址限制

这是最高概率的根因:默认配置下,Kestrel 可能仅绑定到回环地址(127.0.0.1/::1)或者你指定的FQDN主机名,拒绝来自Pod IP的请求。
修复方式二选一:

  • 在Program.cs中显式配置Kestrel监听所有网卡:
builder.WebHost.UseUrls("http://0.0.0.0:32243", "https://0.0.0.0:443");
  • 在K8s部署的容器环境变量中添加配置:
env:
- name: ASPNETCORE_URLS
  value: "http://+:32243;https://+:443"

2. 探针协议与服务监听协议不匹配

你外部访问健康端点用的是HTTPS协议,但是探针默认用HTTP协议访问端口32243,如果该端口仅开放HTTPS服务,会直接拒绝HTTP请求。
修复方式:在探针配置中指定使用HTTPS协议,若使用自签证书需跳过证书校验:

startupProbe:
  httpGet:
    path: /health/startup
    port: 32243
    scheme: HTTPS
    tlsSkipVerify: true # 自签证书场景必填,公共可信证书可省略
  failureThreshold: 25
  periodSeconds: 10

3. 容器端口未正确暴露

需确认Pod定义中已正确声明容器监听的端口:

ports:
- containerPort: 32243
  name: health
- containerPort: 443
  name: https

4. 全局HTTPS重定向拦截探针请求

如果你配置了全局HTTP转HTTPS中间件,会导致探针的HTTP请求被重定向,部分场景下也会触发探针失败。可以单独排除健康检查路径的重定向规则:

app.UseWhen(context => !context.Request.Path.StartsWithSegments("/health"), appBuilder =>
{
    appBuilder.UseHttpsRedirection();
});

内容的提问来源于stack exchange,提问作者user584018

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:36:01