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

AWS EKS中Pod启动失败:Startup probe连接拒绝排查求助

问题排查:AWS EKS Pod启动探针失败(连接拒绝8081端口)

在AWS EKS集群部署应用时,Pod无法启动,报错Startup probe failed: dial tcp 10.0.3.237:8081: connect: connection refused。调整探针initialDelaySeconds参数后问题依旧。应用需使用8081端口,已排查的安全组配置包括:NAT实例添加8081端口入站/出站规则、LB默认安全组允许8081端口从0.0.0.0/0入站、EKS托管工作负载安全组配置入站规则且出站全通,但均无效。

排查建议

  • 排查容器内部端口监听状态:

    • 通过kubectl exec -it <pod-name> -- sh进入容器,执行netstat -tulpn或ss -tulpn检查8081端口是否被应用实际监听;若缺少工具,可临时安装(如apt install net-tools)或用nc -zv localhost 8081测试本地连接。
    • 确认应用配置是否绑定0.0.0.0而非仅127.0.0.1,后者会导致集群内无法访问端口。
  • 优化探针配置合理性:

    • 当前启动探针failureThreshold:3结合periodSeconds:10,总等待时长仅30秒,若应用启动较慢,可调高failureThreshold(如设为10,总等待100秒),避免因启动耗时过长触发探针失败。
    • 检查readinessProbe使用HTTPS协议,但需确认应用是否真的在8081端口提供HTTPS服务,若实际为HTTP,会导致探针失败进而影响Pod状态。
  • 验证NetworkPolicy限制:

    • 检查集群中是否存在NetworkPolicy资源,是否阻止了kubelet(探针发起方)访问Pod的8081端口。可临时删除相关策略测试,或添加允许kubelet访问的规则。
  • 检查节点安全组配置:

    • 确认EKS节点安全组是否允许集群Pod CIDR段的所有流量入站,kubelet与Pod间的通信未被阻止。
  • 测试跨Pod网络连通性:

    • 在同一节点的其他Pod中,执行nc -zv 10.0.3.237 8081(替换为报错中的Pod IP),若无法连通,问题出在Pod内部或节点到Pod的网络;若能连通,需排查kubelet的访问限制。

相关配置片段

部署YAML片段

spec:
      enableServiceLinks: false
      containers:
        - name: {{ .Chart.Name }}
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 8081
          {{- if .Values.probes.enabled }}
          readinessProbe:
            httpGet:
              scheme: HTTPS
              path: /healthz
              port: 8081
            failureThreshold: 3
            initialDelaySeconds: 30
            periodSeconds: 10
          livenessProbe:
            tcpSocket:
              port: 8081
            failureThreshold: 6
            initialDelaySeconds: 30
            periodSeconds: 10
          startupProbe:
            tcpSocket:
              port: 8081
            failureThreshold: 3
            initialDelaySeconds: 30
            periodSeconds: 10
          {{- end }}

测试Pod配置

apiVersion: v1
kind: Pod
metadata:
  name: goproxy
  labels:
    app: goproxy
spec:
  containers:
  - name: goproxy
    image: registry.k8s.io/goproxy:0.1
    ports:
    - containerPort: 8081
    readinessProbe:
      tcpSocket:
        port: 8081
      initialDelaySeconds: 5
      periodSeconds: 10
    livenessProbe:
      tcpSocket:
        port: 8081
      initialDelaySeconds: 15
      periodSeconds: 20

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 23:22:46