我正在按照Traefik 网站上的文档部署 Kubernetes Ingress Controller 。一切顺利,我可以看到 Ingress、相应的 pod 和服务都已启动并运行。唯一的问题 - 我无法访问 Traefik UI(仪表板)。
提到的文档非常不清楚,我在互联网上找不到任何具体的内容。服务没有外部 IP:它应该以某种方式“代理”到本地主机还是静态 IP 或域名?部署脚本取自官方源。
我正在按照Traefik 网站上的文档部署 Kubernetes Ingress Controller 。一切顺利,我可以看到 Ingress、相应的 pod 和服务都已启动并运行。唯一的问题 - 我无法访问 Traefik UI(仪表板)。
提到的文档非常不清楚,我在互联网上找不到任何具体的内容。服务没有外部 IP:它应该以某种方式“代理”到本地主机还是静态 IP 或域名?部署脚本取自官方源。
使用的示例使用部署在 kube-system 命名空间中的集群 ip 部署“traefik-ingress-service”。该示例针对 minikube。要使其在 AKS 上运行,请编辑“traefik-ingress-service”并找到类型并更改
"type": "ClusterIP"
至
"type": "LoadBalancer"
并保存它。
之后,您的服务将获得一个公共 IP。然后使用该公共 IP,您将能够使用端口 8080 访问管理端点。
感谢@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