DigitalOcean Kubernetes中Flask应用LoadBalancer无法访问求助
问题排查与解决
核心问题:Service标签选择器不匹配
Deployment的Pod模板中定义的标签是app: unit-app,但LoadBalancer Service的selector设置为app: unit7-app-deploy,两者完全不匹配,导致Service无法关联到对应的Pod,外部流量无法转发到Flask应用。验证方法
执行命令查看Service关联的Pod状态:kubectl get service unit7-app-service -o wide输出的
ENDPOINTS字段会显示为空,说明没有Pod被Service选中。再查看Pod的标签确认:
kubectl get pods --show-labels可见Pod的标签为
app=unit-app,与Service的选择器不匹配。修复步骤
修改LoadBalancer Service的配置文件,将selector修正为与Pod标签一致的app: unit-app,修改后的配置如下:apiVersion: v1 kind: Service metadata: name: unit7-app-service spec: selector: app: unit-app ports: - port: 8080 targetPort: 8080 protocol: TCP type: LoadBalancer重新应用配置:
kubectl apply -f service.yaml等待Service更新完成后,再次查看
ENDPOINTS字段,会显示Pod的IP和端口,此时通过外部IP加8080端口即可正常访问Flask应用。
内容的提问来源于stack exchange,提问作者Maria628
相关产品推荐
相关产品推荐

