Kubernetes服务-无法访问服务IP地址

时间:2019-09-03 17:15:09

标签: kubernetes kubectl tensorflow-serving azure-aks

我正在使用aks服务。我在Azure容器注册表中有一个Tensorflow服务映像。现在,当我部署服务时,公共服务终结点不可访问,也无法ping通。

我的图像在端口8501处暴露,因此我将其用作Yaml中的目标端口。

这是我用于此部署的yaml文件。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: my-model-gpu
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: my-model-gpu
    spec:
      containers:
      - name: my-model-gpu
        image: dsdemocr.azurecr.io/work-place-safety-gpu
        ports:
        - containerPort: 8501
        resources:
         limits:
           nvidia.com/gpu: 1
      imagePullSecrets:
        - name: registrykey

---
apiVersion: v1
kind: Service
metadata:
  name: my-model-gpu
spec:
  type: LoadBalancer
  ports:
  - port: 8501
    protocol: "TCP"
    targetPort: 8501
  selector:
    app: my-model-gpu

以下是我的svc描述:kubectl describe svc my-model-gpu

Name:                     my-model-gpu
Namespace:                default
Labels:                   <none>
Annotations:              kubectl.kubernetes.io/last-applied-configuration:
                            {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"my-model-gpu","namespace":"default"},"spec":{"ports":[{"port":850...
Selector:                 app=my-model-gpu
Type:                     LoadBalancer
IP:                       10.0.244.106
LoadBalancer Ingress:     52.183.17.101
Port:                     <unset>  8501/TCP
TargetPort:               8501/TCP
NodePort:                 <unset>  31546/TCP
Endpoints:                10.244.0.22:8501
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason                Age   From                Message
  ----    ------                ----  ----                -------
  Normal  EnsuringLoadBalancer  10m   service-controller  Ensuring load balancer
  Normal  EnsuredLoadBalancer   9m8s  service-controller  Ensured load balancer

好像我在端口映射上犯了一些错误。非常感谢您的帮助。

4 个答案:

答案 0 :(得分:0)

根据您提供的信息,具有负载均衡器类型的服务没有问题。我认为,可能的原因全都与您的申请有关,我将在下面列出:

  1. 您公开的端口不正确,因此您需要确定什么是正确的公开端口。
  2. 我看到您想在AKS中使用GPU,因此您需要在创建时选择the right VM size for GPU。这也可能导致您的应用程序未处于运行状态的问题。
  3. 您的应用程序还有其他问题,这会导致您的应用程序无法正常运行。因此,您还需要检查您的应用程序状态。
  4. 对于<h2 class="border-heading"> Photo Galleries </h2>,也许您没有为服务主体分配足够的权限来提取图像。这个原因不太可能,但我也在这里列出。

希望这对您有所帮助。

答案 1 :(得分:0)

请遵循社区提供的建议:

在研究此主题时,我建议看一下这些Azure特定信息:

  

如果Kubernetes服务清单的loadBalancerIP属性中定义的静态IP地址不存在,或者尚未在节点资源组中创建,并且未配置其他委托,则负载均衡器服务创建失败。

有一个非常相似的case on github

If using Advanced networking it creates the vNet in the same resource group as the AKS service by default.

注意:

  

当前仅支持基本IP SKU。支持标准IP资源SKU的工作正在进行中。有关更多信息,请see IP address types and allocation methods in Azure

其他资源:

Azure-LoadBalnacer相关:

希望获得帮助。

答案 2 :(得分:0)

我尝试访问的容器在8501上没有打开端口,一旦我修复它,它就可以正常工作。

答案 3 :(得分:0)

我认为您需要访问52.183.17.101:8501上的应用程序

因为您没有定义将流量路由到负载均衡器的80端口。 默认情况下,它将创建监听8501的负载均衡器。

相关问题