NodePort是否适用于Azure容器服务(Kubernetes)

Jay*_*nki 1 azure kubernetes azure-container-service

我为Kubernetes仪表板提供了以下服务

Name:               kubernetes-dashboard
Namespace:          kube-system
Labels:             k8s-app=kubernetes-dashboard
                    kubernetes.io/cluster-service=true
Annotations:        kubectl.kubernetes.io/last-applied-configuration={"kind":"Service","apiVersion":"v1","metadata":{"name":"kubernetes-dashboard","namespace":"kube-system","creationTimestamp":null,"labels":{"k8s-app":"k...
Selector:           k8s-app=kubernetes-dashboard
Type:               NodePort
IP:                 10.0.106.144
Port:               <unset> 80/TCP
NodePort:           <unset> 30177/TCP
Endpoints:          10.244.0.11:9090
Session Affinity:   None
Events:             <none>
Run Code Online (Sandbox Code Playgroud)

根据文件,我跑了

az acs kubernetes browse
Run Code Online (Sandbox Code Playgroud)

它适用于http:// localhost:8001/ui

但是我也希望在集群外部访问它.describe输出表明它是在端口30177上使用NodePort公开的.

但是我无法访问它 http://<any node IP>:30177

Jas*_* Ye 6

我们知道,将服务暴露给互联网,我们可以使用nodeportLoadBalancer.

据我所知,Azure 现在支持nodeport类型.

但是我也希望在集群外部访问它.

我们可以LoadBalancer用来重新创建kubernetes仪表板,这是我的stpes:

  1. 通过kubernetes UI 删除 kubernetes-dashboard:选择Namespace to kube-system,然后选择服务,然后删除它: 在此输入图像描述 在此输入图像描述
  2. 修改kubernets-dashboard-service.yaml:SSH主VM,然后类型从nodeport 更改LoadBalancer:

    root @ k8s-master-47CAB7F6-0:/ etc/kubernetes/addons #vi kubernetes-dashboard-service.yaml

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        kubernetes.io/cluster-service: "true"
        k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard
      namespace: kube-system
    spec:
      ports:
      - port: 80
        targetPort: 9090
      selector:
        k8s-app: kubernetes-dashboard
      type: LoadBalancer
    
    Run Code Online (Sandbox Code Playgroud)
  3. 从CLI 2.0 开始 kubernetes浏览:

    C:\用户>az acs kubernetes browse -g k8s -n containerservice-k8s

然后SSH到主VM以检查状态: 在此输入图像描述

现在,我们可以通过公共IP地址来浏览UI:

在此输入图像描述 更新:
下图显示了azure容器服务集群(Kubernetes)的体系结构,我们应该使用Load Balancer将服务公开给Internet.

在此输入图像描述