Kubernetes连接超时

时间:2019-06-18 20:37:08

标签: docker kubernetes

我已经使用以下yaml部署了一个小型应用程序。

apiVersion: apps/v1
kind: Deployment
metadata:
    name: simpledotnetapi-deployment
spec:
    replicas: 1
    selector:
        matchLabels:
            app: simpledotnetapi-pod
    template:
        metadata:
            labels:
                app: simpledotnetapi-pod
        spec:
            imagePullSecrets:
              - name: kimagereadersecret
            containers:
              - name: simpledotnetapi
                image: docker.io/coreyperkins/simpledotnetapi:latest
                ports:
                  - containerPort: 5000
---
apiVersion: v1
kind: Service
metadata:
    name: simpledotnetapi-service
spec:
    type: LoadBalancer
    ports:
    - port: 80
      targetPort: 5000
      nodePort: 30008
    selector:
       app: simpledotnetapi-pod
       type: front-end

K8仪表板中的“服务”选项卡显示以下内容:

Name: simpledotnetapi-service
Cluster IP: 10.0.133.156
Internal Endpoints:
simpledotnetapi-service:80 TCP
simpledotnetapi-service:30008 TCP
External Endpoints:
13.77.76.204:80

-kubectl.exe的输出描述了svc simpledotnetapi-service

λ kubectl.exe describe svc simpledotnetapi-service
Name:                     simpledotnetapi-service
Namespace:                default
Labels:                   <none>
Annotations:              kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"simpledotnetapi-service","namespace":"default"},"spec":{"ports":[{"nodePort":3...
Selector:                 app=simpledotnetapi-pod,type=front-end
Type:                     LoadBalancer
IP:                       10.0.133.156
LoadBalancer Ingress:     13.77.76.204
Port:                     <unset>  80/TCP
TargetPort:               5000/TCP
NodePort:                 <unset>  30008/TCP
Endpoints:                <none>
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason                Age               From                Message
  ----    ------                ----              ----                -------
  Normal  EnsuringLoadBalancer  33m (x4 over 2h)  service-controller  Ensuring load balancer
  Normal  EnsuredLoadBalancer   33m (x4 over 2h)  service-controller  Ensured load balancer

当我转到Pod时,可以看到我的docker容器按照指示在端口5000上运行良好。但是,当我导航到http://13.77.76.204/api/values时,应该看到返回了一个数组,但是连接超时了(Chrome中的ERR_CONNECTION_TIMED_OUT)。我已经在本地测试了此Docker容器,并且效果很好。我的假设是,我已经在pod规范中(在“部署”下)捣毁了“ containerPort”,但是我确定该容器在端口5000上仍然有效。也许我缺少一些配置位?但是,通过查看示例和文档,我无法找出为什么未与Pod建立连接,但是除了最初启动该应用程序之外,我没有看到Pod中的任何活动日志。

1 个答案:

答案 0 :(得分:2)

吊舱/服务定义中的标签/选择器不匹配。

您正在将app: simpledotnetapi-pod用于pod模板,并将app: simpledotnetapi用作服务定义中的选择器。编辑其中之一以匹配。

标签type: front-end在您的广告连播模板上也不存在。您需要添加它,或者可能将其从服务选择器中删除。

在那之后,端点列表准备就绪时,应该在您的端点列表中包含条目。

相关问题