【问题标题】:Access Traefik UI from Kubernetes hosted in Azure从 Azure 中托管的 Kubernetes 访问 Traefik UI
【发布时间】:2019-01-09 03:57:54
【问题描述】:

我正在根据Traefik website 上的文档部署 Kubernetes Ingress Controller。一切顺利,我可以看到 Ingress、相应的 pod 和服务都已启动并运行。唯一的问题 - 我无法访问 Traefik UI(仪表板)。

提到的文档非常不清楚,我在互联网上找不到任何具体的内容。该服务没有外部 IP: 是否应该以某种方式“代理”到本地主机或静态 IP 或域名? 部署脚本取自official source

【问题讨论】:

    标签: azure traefik azure-aks traefik-ingress


    【解决方案1】:

    使用的示例使用部署在 kube-system 命名空间中的集群 ip 部署“traefik-ingress-service”。 该示例针对 minikube。 要让它在 AKS 上运行,请编辑“traefik-ingress-service”并找到类型并更改

    "type": "ClusterIP"
    
    "type": "LoadBalancer"
    
    并保存它。

    之后,您的服务将获得一个公共 IP。然后使用该公共 IP,您将能够使用端口 8080 访问管理端点。

    【讨论】:

    • 我没有看到 "type": "ClusterIP" 是在哪里定义的。 traefik-ingress-service 根本没有“类型”定义。我应该添加它吗?
    【解决方案2】:

    感谢@jakaruna-msft,实际上它是“类型”定义。我已经更改了配置,因此 .yaml 文件如下所示。我看到已经配置了 IP,所以现在我可以访问仪表板并将自定义的 IP 与 DNS 绑定。

    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: traefik-ingress-controller
      namespace: kube-system
    ---
    kind: Deployment
    apiVersion: extensions/v1beta1
    metadata:
      name: traefik-ingress-controller
      namespace: kube-system
      labels:
        k8s-app: traefik-ingress-lb
    spec:
      replicas: 1
      selector:
        matchLabels:
          k8s-app: traefik-ingress-lb
      template:
        metadata:
          labels:
            k8s-app: traefik-ingress-lb
            name: traefik-ingress-lb
        spec:
          serviceAccountName: traefik-ingress-controller
          terminationGracePeriodSeconds: 60
          containers:
          - image: traefik
            name: traefik-ingress-lb
            ports:
            - name: http
              containerPort: 80
            - name: admin
              containerPort: 8080
            args:
            - --api
            - --kubernetes
            - --logLevel=INFO
    ---
    kind: Service
    apiVersion: v1
    metadata:
      name: traefik-ingress-service
      namespace: kube-system
    spec:
      selector:
        k8s-app: traefik-ingress-lb
      ports:
        - protocol: TCP
          port: 80
          name: web
        - protocol: TCP
          port: 8080
          name: admin
      type: LoadBalancer
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-28
      相关资源
      最近更新 更多