【问题标题】:Not able to access the application using Load Balancer service in Azure Kubernetes Service无法使用 Azure Kubernetes 服务中的负载均衡器服务访问应用程序
【发布时间】:2020-09-08 06:37:59
【问题描述】:

我在 Azure Kubernetes 服务中创建了小型 nginx 部署并键入为 LoadBalancer,但我无法使用 LoadBalaner 服务访问应用程序。有人可以提供解决方案吗

我已经更新了安全组以允许所有流量,但没有用。

我是否需要更新任何安全组才能访问应用程序?

请找到部署文件。

cat nginx.yml

apiVersion: v1

kind: Service

metadata:

  name: nginx-kubernetes

spec:

  type: LoadBalancer

  ports:

  - port: 8080

    targetPort: 8080

  selector:

    app: hello-kubernetes

---
apiVersion: apps/v1

kind: Deployment

metadata:

     name: nginx-kubernetes

spec:

  replicas: 3

  selector:

    matchLabels:

      app: hello-kubernetes

  template:

    metadata:

      labels:

        app: hello-kubernetes

    spec:

      containers:

      - name: hello-kubernetes

        image: nginx:latest

        ports:

        - containerPort: 8080

【问题讨论】:

  • 您遇到什么错误?超时还是其他?
  • @Arghya:我收到连接被拒绝错误
  • 您是否尝试过通过服务的 clusterip 或 pod ip 从 kubernetes 集群内(即从另一个 pod)访问它?
  • @Arghya:我正在尝试这样 :8080
  • @Arghya:我没有尝试过这种方式,并且 nslookup 无法在 pod 内部工作。其实我是 AKS 的新手

标签: kubernetes azure-aks azure-load-balancer


【解决方案1】:

Nginx 容器默认使用端口 80,而您尝试连接到端口 8080,没有任何东西在监听,因此连接被拒绝。

看看这里nginx conateiner Dockerfile。你看到了什么端口?

你需要做的就是改变目标端口,如下所示:

apiVersion: v1
kind: Service
metadata:
  name: nginx-kubernetes
spec:
  ports:
  - port: 8080
    targetPort: 80 
  selector:
    app: hello-kubernetes

另外,最好将 containerPort 更改如下:

spec:
  containers:
  - name: hello-kubernetes
    image: nginx:latest
    ports:
    - containerPort: 80

【讨论】:

  • 感谢您的宝贵帮助。你节省了我很多时间。我更改了nginx端口号。它对我有用
猜你喜欢
  • 1970-01-01
  • 2022-10-23
  • 1970-01-01
  • 2013-08-26
  • 1970-01-01
  • 1970-01-01
  • 2019-05-15
  • 2021-03-17
  • 2019-07-12
相关资源
最近更新 更多