k3s 快速入门 - traefix 使用 - 1

k3s 快速入门 - traefix 使用 - 1K3s 快速搭建入门 k3s Traekfix v2 版本开启 dashboard 并进行项目的部署及使用 1 什么是 traefix 官网介绍 Tr f k 是一个为了让部署微服务更加便捷而诞生的现代 HTTP 反向代理 负载均衡工具 它支持多种后台 Docker Swarm Kubernetes Marathon Mesos

大家好,我是讯享网,很高兴认识大家。

K3s快速搭建入门

k3s Traekfix v2版本开启dashboard并进行项目的部署及使用

1、什么是traefix?

2、在k3s中开启traefix dashboard

k3s安装启动的时候,默认使用traefix为Ingress Controller,Traefik ingress controller 将使用主机上的 80 和 443 端口(即这些端口不能用于 HostPort 或 NodePort)。traekfix有一个可视化界面,可以通过dashboard查看路由信息等。开启可视化界面有两种方式,一种是通过port-forward;一种是添加ingress,通过域名访问。

2.1、通过port-forward方式访问dashboard

kubectl -n kube-system port-forward $(kubectl -n kube-system get pods --selector "app.kubernetes.io/name=traefik" --output=name) 9000:9000 
讯享网

端口转发开启后,可以通过http://127.0.0.1:9000/dashboard来访问可视化界面:

2.2、通过自定义IngressRoute CRD

讯享网# dashboard.yaml apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: dashboard spec: entryPoints: - web routes: - match: Host(`traefik.example`) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`)) kind: Rule services: - name: api@internal kind: TraefikService 

执行命令kubectl apply -f dashboard.yaml
部署成功后,可通过http://traefik.example/dashboard/ 访问 Dashboard:
在这里插入图片描述

3、部署docker-demo应用

minikube 实战篇 - 镜像打包部署 - 2中有关于部署docker-demo的脚本,执行:

kubectl create deployment docker-demo --image=halo26812/docker-demo:0.0.1 kubectl expose deployment docker-demo --type=ClusterIP --port=8080 

--type=NodePort修改成--type=ClusterIP,部署的服务是通过ingress提供给外部访问。

type 描述
ClusterIP 只对集群内部可见,外部无法访问
NodePort 对外部可见

执行如下:

讯享网[root@localhost halo]# kubectl create deployment docker-demo --image=halo26812/docker-demo:0.0.1 deployment.apps/docker-demo created [root@localhost halo]# kubectl expose deployment docker-demo --type=ClusterIP --port=8080 service/docker-demo exposed 

执行成功。现在需要通过自定义IngressRoute,开放docker-demo服务,定义IngressRoute文件docker-demo-ingressRoute.yaml,如下:

#docker-demo-ingressRoute.yaml apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: docker-demo-ingress namespace: default spec: entryPoints: - web routes: - match: Host(`docker.halo.io`) && PathPrefix(`/hello`) kind: Rule services: - name: docker-demo port: 8080 

以下是相关配置参数的一些说明:

参数 描述
match 是匹配host地址“docker.halo.io”及访问路径前缀匹配“hello”
services.name 是应用名:docker-demo
services.port 是服务端口:8080

执行docker-demo-ingressRoute.yaml文件

halo at MacBook-Pro-3 in ~/minikube/k3s ○ kubectl apply -f docker-demo-ingressRoute.yaml ingressroute.traefik.containo.us/docker-demo-ingress created 

执行成功之后在host文件中配置。

192.168.2.42 docker.halo.io 

配置完成之后,在浏览器端访问http://docker.halo.io/hello。如图:
在这里插入图片描述
浏览器界面显示“hello world!”。访问成功!

小讯
上一篇 2025-01-11 08:58
下一篇 2025-03-27 14:53

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/57138.html