Centos7 Kubernetes(k8s) 开发服务器(单服务器)部署 路由 IngressRoute【traefik2.X】

这几天对开发服务器中的 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,那么请全局全部替换成你改的IP
fox.风

如何安装 k8s

请看 最近写的一篇文章,

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

以下是 独立部署 相关模块

k8s 安装 IngressRoute【traefik】

官方文档

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

查看 demo 返回信息

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

UI 界面

浏览器访问

http://192.168.0.254:5580

如图
Centos7 Kubernetes(k8s) 开发服务器(单服务器)部署 路由 IngressRoute【traefik2.X】_第1张图片

案例说明

假设 k8s 有后端服务demo.yaml whoamiPOD 端口为 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

你可能感兴趣的:(kubernetes)