这几天对开发服务器中的 k8s和相关模块 进行升级,做个记录
开发服务器(单服务器)部署 路由 IngressRoute【traefik】
系统:centos 7.6
内核: 5.1.9-1.el7.elrepo.x86_64
Kubernetes(K8s) 1.16.3
服务器IP:192.168.0.254
如果更改了服务器IP 为其他IP,那么请全局全部替换成你改的IP
fox.风
请看 最近写的一篇文章,
https://blog.csdn.net/fenglailea/article/details/88745642
常用 k8s 命令
https://foxwho.blog.csdn.net/article/details/92137467
对CPU,内存都做了限制,请自行针对修改
没有使用持久化存储,这里直接使用宿主机存储,如有需要,请自行增加
请把项目放置到 /www/k8s/foxdev/
目录下,所有都是基于此目录
或者请看 下面一节的 拉取代码
mkdir -p /www/k8s/
cd /www/k8s/
git clone https://github.com/foxiswho/k8s-nacos-sentinel-rocketmq-zipkin-elasticsearch-redis-mysql.git foxdev
cd foxdev
官方文档
https://docs.traefik.io/
https://github.com/containous/traefik/
需要高版本的 Kubernetes(k8s) IngressRoute 的 自定义资源类型 才能使用
这里使用的是 k8s v1.16.3 或 更新版本
80 : 直接使用服务器80 端口 提供http 服务
5580 : traefik UI 界面
443 未开启,未配置,如需开启,请自行配置
./create.i.ingress.route.start.sh
kubectl apply -f traefik-rbac-middleware.yaml
kubectl apply -f traefik-deployment.yaml
#以下是案例
kubectl apply -f demo.yaml
kubectl apply -f demo-ingress-route.yaml
curl -x 192.168.0.254:80 http://your.domain.com/notls
返回
Hostname: whoami-bd6b677dc-gkhmh
IP: 127.0.0.1
IP: 10.244.0.191
RemoteAddr: 10.244.0.190:33406
GET /notls HTTP/1.1
Host: your.domain.com
User-Agent: curl/7.64.1
Accept: */*
Accept-Encoding: gzip
X-Forwarded-For: 10.244.0.1
X-Forwarded-Host: your.domain.com
X-Forwarded-Port: 80
X-Forwarded-Proto: http
X-Forwarded-Server: traefik-74dfb956c5-2zdl2
X-Real-Ip: 10.244.0.1
浏览器访问
http://192.168.0.254:5580
假设 k8s 有后端服务demo.yaml
whoami
且 POD
端口为 80
那么如何对外绑定 网址路由呢。
在 demo-ingress-route.yaml
文件中可以看到详细的配置信息(如下)
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: simpleingressroute
namespace: default
spec:
entryPoints:
- web
routes:
- match: Host(`your.domain.com`) && PathPrefix(`/notls`)
kind: Rule
services:
- name: whoami
port: 80
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: ingressroutetls
namespace: default
spec:
entryPoints:
- websecure
routes:
- match: Host(`your.domain.com`) && PathPrefix(`/tls`)
kind: Rule
services:
- name: whoami
port: 80
tls:
certResolver: default
第一个 kind: IngressRoute
路由信息
当域名是your.domain.com
且 后面的 URL 链接是 /notls
开头的 走 whoami
这个 pod 并且指定端口为 80
端口
当然如果 你不需要 URL 开头链接,那么你把 && PathPrefix(notls)
去掉就可以了
在开发服务器上部署成功,有问题的,可以联系我
https://github.com/foxiswho/k8s-nacos-sentinel-rocketmq-zipkin-elasticsearch-redis-mysql