Azure AKS部署Debian+Python-Django容器后8000端口URL路径无法访问问题求助
问题分析与修复方案
嘿,我一眼就瞅到了导致你访问超时的核心问题——你的Kubernetes Service端口映射配置出错了!
你的Django容器明明在8000端口监听服务,但在myops.yaml的Service配置里,你把targetPort设成了8888——这个端口在容器里根本没有服务在跑,外部流量自然没法转发到正确的容器端口,可不就超时嘛!
快速修复步骤
打开你的
myops.yaml,找到Service部分,把targetPort改成8000,和容器的containerPort保持一致:--- # [START service] apiVersion: v1 kind: Service metadata: name: myops-python spec: type: LoadBalancer ports: - port: 8000 targetPort: 8000 # 这里改成和容器端口一致的8000 selector: app: myops # [END service]重新应用修正后的配置:
kubectl apply -f myops.yaml等个几十秒让Service更新完成,再去访问
http://<external-ip>:8000/myops_app,应该就能正常打开了。
额外排查点(如果修复后还是有问题)
- 检查AKS的安全组规则:确认你的客户端IP被允许访问LoadBalancer的8000端口,AKS默认的安全组可能会限制外部流量,得确保入站规则里开了这个端口。
- 测试集群内部连通性:先在集群里跑个临时Pod测试服务的内部访问,比如:
进去之后用kubectl run -it --rm --image=alpine test-pod -- shwget <cluster-ip>:8000/myops_app试试,如果能拿到响应,说明服务内部没问题,问题出在外部流量的入口配置。 - 核对Django的ALLOWED_HOSTS:别忘了把你的外部IP加到Django项目
settings.py的ALLOWED_HOSTS列表里,不然Django会直接拒绝请求,比如:ALLOWED_HOSTS = ['<你的外部IP>', 'localhost', '127.0.0.1']
内容的提问来源于stack exchange,提问作者sam
相关产品推荐
相关产品推荐

