栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

helm 部署traefik ingress

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

helm 部署traefik ingress

1、添加traefik helm仓库
$ helm repo add traefik https://helm.traefik.io/traefik
$ helm repo update
2、下载到本地
$ helm  search repo traefik
NAME            CHART VERSION APP VERSION DESCRIPTION                                  
traefik/traefik	10.20.1      	2.7.0      	A Traefik based Kubernetes ingress controller 
$ helm pull traefik/traefik
3、部署Traefik

3.1 修改values

#type: LoadBalancer
type: ClusterIP

ports:
  traefik:
    port: 8080
    hostPort: 8080
    exposedPort: 8080
    expose: true
    protocol: TCP


添加
additionalArguments:
  - "--serversTransport.insecureSkipVerify=true"
  - "--api.insecure=true"
  - "--api.dashboard=true"


或者简单点
完整配置如下
==================================
service:
  type: ClusterIP

ingressRoute:
  dashboard:
    enabled: false

nodeSelector:
  kubernetes.io/hostname: k8snode1

ports:
  web:
    hostPort: 80
  websecure:
    hostPort: 443
  traefik:
    port: 8080
    hostPort: 8080
    exposedPort: 8080
    expose: true

additionalArguments:
  - "--serversTransport.insecureSkipVerify=true"
  - "--api.insecure=true"
  - "--api.dashboard=true"

3.2 部署

$ helm install traefik traefik/traefik -f values.yaml -n kube-system #部署

其他命令
$ helm upgrade traefik traefik/traefik  -n kube-system  #更新
$ helm uninstall traefik -n kube-system # 卸载 traefik

#查看状态
$ helm list -n kube-system 
NAME   	NAMESPACE  	REVISION	UPDATED                                	STATUS  	CHART          	APP VERSION
traefik	kube-system	1       	2022-06-07 15:05:58.300911179 +0800 CST	deployed	traefik-10.20.1	2.7.0     

$ helm status traefik -n kube-system 
NAME: traefik
LAST DEPLOYED: Tue Jun  7 15:05:58 2022
NAMESPACE: kube-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
 
4 创建路由规则

4.1原生Ingress路由规则

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: traefik-dashboard-ingress
  namespace: kube-system
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
  rules:
  - host: traefik.ingress.cn
    http:
      paths:
      - pathType: Prefix
        path: /
        backend:
          service:
            name: traefik
            port:
              number: 8080

4.2 使用CRD方式配置路由规则

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: traefik-dashboard-route
  namespace: kube-system
spec:
  entryPoints:
  - web
  routes:
  - match: Host(`traefikroute.ingress.cn`)
    kind: Rule
    services:
      - name: traefik
        port: 8080

 namespace: kube-system #要和traefik ingress所在的命名空间一致,就可以正常访问,

如:http://traefikroute.ingress.cn/dashboard/#/

否则访问需要添加expose里设置的端口;如http://traefikroute.ingress.cn:8080/

5 访问
http://traefik.ingress.com
http://traefik.ingress.com/dashboard
6 验证 暴露HTTP服务
#创建pod和svc
cat > whoami.yaml << EOF
---
apiVersion: v1
kind: Pod
metadata:
  name: whoami
  labels:
    app: whoami
spec:
  containers:
    - name: whoami
      image: traefik/whoami:latest
      ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: whoami
spec:
  ports:
    - port: 80
      protocol: TCP
      targetPort: 80
  selector:
    app: whoami
  type: ClusterIP
EOF

==========================
创建一个路由规则,使外部可以访问

cat > whoami-ingressroute.yaml << EOF
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: whoami-route
spec:
  entryPoints:
  - web
  routes:
  - match: Host(`whoami.ingress.cn`)
    kind: Rule
    services:
      - name: whoami
        port: 80 
EOF

浏览器访问  whoami.ingress.cn

个人总结:

1、其他通过traefik代理的资源应用pod,service并不需要与traefik在同一个命名空间,也就是命名空间对traefik代理来说并没有限制

以上两个实例都不在traefik ingress的命名空间里

2、但是部署实例的pod service 路由规则 都需要在同一个命名空间里

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/964104.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号