基础环境
拥有一个完美运行的kubernetes1.13.4集群并已经部署过dashboard,可参考我的部署文章创建自己的集群。
部署步骤
-
编写部署需要的yaml文件
-
traefik-rbac.yaml
--- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: traefik-ingress-controller rules: - apiGroups: - "" resources: - services - endpoints - secrets verbs: - get - list - watch - apiGroups: - extensions resources: - ingresses verbs: - get - list - watch - apiGroups: - extensions resources: - ingresses/status verbs: - update --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: traefik-ingress-controller roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: traefik-ingress-controller subjects: - kind: ServiceAccount name: traefik-ingress-controller namespace: kube-system
-
traefik-deployment.yaml
--- 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: NodePort
-
ui.yaml
--- apiVersion: v1 kind: Service metadata: name: traefik-web-ui namespace: kube-system spec: selector: k8s-app: traefik-ingress-lb ports: - name: web port: 80 targetPort: 8080 --- apiVersion: extensions/v1beta1 kind: Ingress metadata: name: traefik-web-ui namespace: kube-system spec: rules: - host: traefik-ui.minikube http: paths: - path: / backend: serviceName: traefik-web-ui servicePort: web
-
-
执行命令完成相关部署
$ kubectl create -f traefik-rbac.yaml $ kubectl create -f traefik-deployment.yaml $ kubectl create -f ui.yaml
-
验证部署结果
$ kubectl get pod,svc --all-namespaces | grep traefik kube-system pod/traefik-ingress-controller-8c8b85bbc-6bpb4 1/1 Running 0 66m kube-system service/traefik-ingress-service NodePort 10.110.48.244 <none> 80:32575/TCP,8080:31639/TCP 66m kube-system service/traefik-web-ui ClusterIP 10.103.88.103 <none> 80/TCP 57m
-
访问traefik的UI界面
访问
http://<node_ip>:<node_port>/dashboard/#/
UI界面的端口是8080