首页 文章

即使在kubernetes中公开服务后,也无法连接到外部负载均衡器

提问于
浏览
0

我有以下部署文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: family-tree-deployment
  labels:
    app: familytree
spec:
  replicas: 1
  selector:
    matchLabels:
      app: familytree
  template:
    metadata:
      labels:
        app: familytree
    spec:
      containers:
      - name: familytree
        image: index.docker.io/koustubh/familytree:v1.0
        ports:
        - containerPort: 8080

我可以使用 kubectl create -f deploy.yml 成功创建部署

现在,我只是使用以下命令公开此部署

kubectl expose deployment family-tree-deployment --type=LoadBalancer --name=familytree-service

该服务已成功创建 .

输出是

$ kubectl get svc
    NAME                 TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)          AGE
    familytree-service   LoadBalancer   10.51.244.161   35.221.113.235   8080:30505/TCP   1h

$ kubectl describe svc familytree-service
    Name:                     familytree-service
    Namespace:                default
    Labels:                   app=familytree
    Annotations:              <none>
    Selector:                 app=familytree
    Type:                     LoadBalancer
    IP:                       10.51.244.161
    LoadBalancer Ingress:     35.221.113.235
    Port:                     <unset>  8080/TCP
    TargetPort:               8080/TCP
    NodePort:                 <unset>  30505/TCP
    Endpoints:                10.48.4.7:8080
    Session Affinity:         None
    External Traffic Policy:  Cluster
    Events:                   <none>

我可以登录pod,我确保服务正常 . 但是,当我使用负载均衡器的外部ip并查询我的api时,连接超时 .

我确保防火墙允许端口8080.我的应用程序在端口8080上运行

1 回答

  • 0

    生成的Service对象看起来完全有效,因此我们可以排除标签问题或丢失公共IP地址 . 此外,您可以在内部访问您的服务,这意味着最有可能错误地应用了防火墙规则 .

    请确保您允许传入流量,如下所示

    • 从Internet到TCP端口8080上的负载均衡器

    • 从负载均衡器到TCP端口30505上的所有Kubernetes节点

相关问题