无法使用Azure Kubernetes Service中的负载平衡器服务访问应用程序

问题描述

我已经创建了小的Nginx部署,并在Azure Kubernetes服务中键入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

解决方法

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