【问题标题】:My Azure AKS Service not able to access from Internet我的 Azure AKS 服务无法从 Internet 访问
【发布时间】:2020-03-20 09:30:07
【问题描述】:

我在 AKS 中部署了一个 pod,我正尝试通过公共 IP 连接到我的服务。 当我从 kubectl 命令或 K8 仪表板检查我的服务时,我的部署是成功的。 Service 和 Pod 运行良好。

当我想通过端口访问我的公共 IP 时,我的服务没有响应。 我的公共 IP 和端口已显示在正确的 Azure 网络安全组中。

我需要在 Azure 端添加任何其他设置吗?

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: sample-service
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: sample-service
    spec:
      containers:
      - name: sample-service
        image: container/sample-service:#{Build.BuildId}#
        ports:
        - containerPort: 80
          name: sample-service
      dnsPolicy: xxxxx
      restartPolicy: Always

apiVersion: v1
kind: Service
metadata:
  name: sample-service
spec:
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: sample-service

【问题讨论】:

  • 可以分享一下你用来部署 pod 和 service 的 YAML 文件吗?
  • 不,你需要在 k8s 端进行额外的设置。您需要通过某种入口控制器公开您的服务。请提供您的 yaml pod 和服务定义。
  • @Software Engineer 不正确。虽然 Ingress 系统可能会有所帮助,但这不是必需的,您可以直接使用 LoadBalancer 或 NodePort 服务。
  • 这不是错误,只是不完整:) 这并不是一个完整的答案,只是对他能做的最简单的事情的评论。
  • Charles...请查找 YAML 文件

标签: azure kubernetes azure-aks


【解决方案1】:

对于您的问题,可能的原因是您没有在服务中设置targetPort。因此,您可以尝试如下更改服务:

apiVersion: v1
kind: Service
metadata:
  name: sample-service
spec:
  type: LoadBalancer
  ports:
  - port: 80
    targetPort: 80
    name: sample-service
  selector:
    app: sample-service

然后重新创建服务。

【讨论】:

  • 我尝试了同样的方法。我仍然遇到同样的问题。当我 ping 公共 IP 时,我正在超时....
  • 在 Azure 的网络组中,我可以将新的公共 IP 视为入站规则...但我的服务仍然没有在浏览器中打开
  • @SrinivasaragavanR 你不需要关心网络组,Azure 为你设置了规则。你能分享一下pod状态吗?您还可以对 pod 进行端口转发,以检查 pod 是否正常工作。
  • Pod 状态为 Running
  • @SrinivasaragavanR 你测试 pod 的端口转发吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-15
  • 2018-07-24
  • 2021-02-12
  • 1970-01-01
  • 1970-01-01
  • 2020-06-01
相关资源
最近更新 更多