Traefik和Nginx-Ingress-Controller的部署

Traefik 和 Nginx 的差异 虽然 Nginx 可以在很多场景下取代 Traefik,但在现代微服务架构中,Traefik 提供的动态配置和自动发现功能使其成为一种更灵活和易于管理的选择。Nginx 在高性能和灵活性方面表现出色,尤其是在处理静态内容和复杂的流量管理需求时。因此,选择使用 Traefik 还是 Nginx 取决于具体的应用需求、架构和团队的技能。 阅读详情
前言
Traefik

Traefik是一个用Golang开发的轻量级的Http反向代理和负载均衡器。由于可以自动配置和刷新backend节点,目前可以被绝大部分容器平台支持,例如Kubernetes,Swarm,Rancher等。由于traefik会实时与Kubernetes API交互,所以对于Service的节点变化,traefik的反应会更加迅速。总体来说traefik可以在Kubernetes中完美的运行.

Nginx-Ingress-Controller

Nginx-Ingress-Controller对于绝大多数刚刚接触k8s的人来说都比较熟悉,一个对外暴露service的7层反向代理。目前最新代号0.9.0-beta.15,可见目前nginx-ingress-control仍然处于beta版本。不过接触过的人还是明白nginx-ingress-control强大的Annotate配置,可以为service提供丰富的个性化配置,这点对于traefik来说是目前还无法打到的地步。

部署
Traefik

1. 创建RBAD权限规则

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
---
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

2. 定义deployment部署

在这里官方主要定义了两种部署模式,分别是Daemonset和Deployment,它们之间的区别主要是:

  1. 相比一个节点只部署一个daemonset的traefik,采用deployment会更易于伸缩和扩展;
  2. Daemonset可以利用taints和tolerations字段在自定义的节点上部署traefik服务;
  3. 采用Daemonset方式,可以在任何节点上访问80和443端口,而使用deployment者必须依赖service里面定义的对象去访问。

由于我们要在kubernetes机群里部署多个ingress服务,这里就统一采用deployment的方式来部署了。

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
        args:
        - --web
        - --kubernetes
        - --web.metrics
        - --web.metrics.prometheus
        - --accesslog
        - --accesslog.filepath=/var/log/traefik_access.log
        - --traefiklog
        - --traefiklog.filepath=/var/log/traefik.log
        - --traefiklogsfile=traefik.log
        - --api
        - --loglevel=INFO
        - --metrics.prometheus
---
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

3. 配置Traefik的UI界面

Traefik的UI用的是AngularJS写的一个简洁的界面,启动默认的端口是8080。

apiVersion: v1
kind: Service
metadata:
  name: traefik-web-ui
  namespace: kube-system
spec:
  selector:
    k8s-app: traefik-ingress-lb
  ports:
  - port: 80
    targetPort: 8080
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: traefik-web-ui
  namespace: kube-system
  annotations:
    kubernetes.io/ingress.class: traefik
spec:
  rules:
  - host: traefik-ui.minikube
    http:
      paths:
      - backend:
          serviceName: traefik-web-ui
          servicePort: 80

4. 使用

对于使用,相信编辑过ingress的人都用过,我这里都不在累述了,主要讲下Traefik在Kubernetes中Annotate的配置吧。

通用配置

  • kubernetes.io/ingress.class: traefik

    Ingress声明,这里声明了ingress后端采用traefik实现,而不是nginx的controller

  • ingress.kubernetes.io/whitelist-source-range: "1.2.3.0/24, fe80::/16"

    配置访问白名单,支持ipv4和ipv6

  • ingress.kubernetes.io/auth-type: basic

    http认证模式,此处为basic模式

  • ingress.kubernetes.io/auth-secret: mysecret

    basic认证的对应的username和password,这里对应的traefik所在kubernetes命名空间里的secrets

前端配置

  • traefik.frontend.rule.type: PathPrefixStrip

    对于在前端配置多个路径转发时,必须配置改选项。例如:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: cheeses
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.frontend.rule.type: PathPrefixStrip
spec:
  rules:
  - host: cheeses.minikube
    http:
      paths:
      - path: /stilton
        backend:
          serviceName: stilton
          servicePort: http
      - path: /cheddar
        backend:
          serviceName: cheddar
          servicePort: http
      - path: /wensleydale
        backend:
          serviceName: wensleydale
          servicePort: http
  • traefik.frontend.priority: "3"

    配置前端的权重,值越高则优先匹配

  • traefik.frontend.passHostHeader: "false"

    关闭传入Hearder

  • traefik.protocol=https

    使用https协议

  • traefik.frontend.entryPoints=http,https

    同时支持http和https

后端配置

  • traefik.backend.loadbalancer.method=drr

    后端Service的负载均衡策略,目前traefik支持的策略包括:wrr(加权轮训调度算法)和drr(动态加权循环调度算法)

  • traefik.backend.loadbalancer.stickiness=true

    是否开启负载均衡器的session亲和性

  • traefik.backend.loadbalancer.stickiness.cookieName=NAME

    手动配置后端session亲和性的cookie名称

  • traefik.backend.loadbalancer.sticky=true

    弃用

健康检查

  • traefik.backend.healthcheck.path=/health

    traefik的监控检查路径

  • traefik.backend.healthcheck.interval=5s

    健康检查的时间间隔

  • traefik.backend.circuitbreaker: "NetworkErrorRatio() > 0.5"

    监测某台节点上的服务错误率达到50%时,自动下线该节点。

  • traefik.backend.circuitbreaker: "LatencyAtQuantileMS(50.0) > 50"

    监测某台节点上服务的延时大于50ms时,自动下线该节点。

  • traefik.backend.circuitbreaker: "ResponseCodeRatio(500, 600, 0, 600) > 0.5"

    监测某台节点上服务返回状态码为[500-600]在[0-600]区间占比超过50%时,自动下线该节点。

Nginx-Ingress-Controller

1. 创建RBAC权限规则和ServiceAccount账号

apiVersion: v1
kind: ServiceAccount
metadata:
  name: nginx-ingress-serviceaccount
  namespace: kube-system

---

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
  name: nginx-ingress-clusterrole
rules:
  - apiGroups:
      - ""
    resources:
      - configmaps
      - endpoints
      - nodes
      - pods
      - secrets
    verbs:
      - list
      - watch
  - apiGroups:
      - ""
    resources:
      - nodes
    verbs:
      - get
  - apiGroups:
      - ""
    resources:
      - services
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - "extensions"
    resources:
      - ingresses
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - ""
    resources:
        - events
    verbs:
        - create
        - patch
  - apiGroups:
      - "extensions"
    resources:
      - ingresses/status
    verbs:
      - update

---

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
  name: nginx-ingress-role
  namespace: kube-system
rules:
  - apiGroups:
      - ""
    resources:
      - configmaps
      - pods
      - secrets
      - namespaces
    verbs:
      - get
  - apiGroups:
      - ""
    resources:
      - configmaps
    resourceNames:
      # Defaults to "<election-id>-<ingress-class>"
      # Here: "<ingress-controller-leader>-<nginx>"
      # This has to be adapted if you change either parameter
      # when launching the nginx-ingress-controller.
      - "ingress-controller-leader-nginx"
    verbs:
      - get
      - update
  - apiGroups:
      - ""
    resources:
      - configmaps
    verbs:
      - create
  - apiGroups:
      - ""
    resources:
      - endpoints
    verbs:
      - get

---

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
  name: nginx-ingress-role-nisa-binding
  namespace: kube-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: nginx-ingress-role
subjects:
  - kind: ServiceAccount
    name: nginx-ingress-serviceaccount
    namespace: kube-system

---

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: nginx-ingress-clusterrole-nisa-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: nginx-ingress-clusterrole
subjects:
  - kind: ServiceAccount
    name: nginx-ingress-serviceaccount
    namespace: kube-system

2. 创建nginx-ingress-controller的configmap文件

我在这里添加了一个tcp-configmap,用来做tcp端口的代理。

apiVersion: v1
data:
  enable-vts-status: "true"
kind: ConfigMap
metadata:
  name: ingress-configmap
  namespace: kube-system
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: ingress-controller-leader-nginx
  namespace: kube-system
---
apiVersion: v1
data:
kind: ConfigMap
metadata:
  name: tcp-configmap
  namespace: kube-system

3. 创建nginx-ingress-controller的default-http-backend

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    k8s-app: default-http-backend
  name: default-http-backend
  namespace: kube-system
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: default-http-backend
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      labels:
        k8s-app: default-http-backend
    spec:
      containers:
      - image: index.tenxcloud.com/google_containers/defaultbackend:1.1
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 3
          httpGet:
            path: /healthz
            port: 8080
            scheme: HTTP
          initialDelaySeconds: 30
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 5
        name: default-http-backend
        ports:
        - containerPort: 8080
          protocol: TCP
        resources:
          limits:
            cpu: 10m
            memory: 20Mi
          requests:
            cpu: 10m
            memory: 20Mi
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 60

---
apiVersion: v1
kind: Service
metadata:
  name: default-http-backend
  namespace: kube-system
  labels:
    k8s-app: default-http-backend
spec:
  ports:
  - port: 80
    targetPort: 8080
  selector:
    k8s-app: default-http-backend

4. 创建nginx-ingress-controller

这里可以关注下nginx-ingress-controller的启动参数--tcp-services-configmap,该参数会watch我们之前定义的tcp-configmap文件,对定义的tcp端口做4层的负载均衡。值得注意的是,tcp-configmap里面定义的端口是不能重复的。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
  labels:
    k8s-app: nginx-ingress-controller
  name: nginx-ingress-controller
  namespace: kube-system
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: nginx-ingress-controller
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      labels:
        k8s-app: nginx-ingress-controller
    spec:
      containers:
      - args:
        - /nginx-ingress-controller
        - --default-backend-service=$(POD_NAMESPACE)/default-http-backend
        - --configmap=kube-system/ingress-configmap
        - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-configmap
        env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        image: index.int.jumei.com/gcr.io/google-containers/nginx-ingress-controller-amd64:0.9.0-beta.15
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 3
          httpGet:
            path: /healthz
            port: 10254
            scheme: HTTP
          initialDelaySeconds: 10
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        name: nginx-ingress-controller
        ports:
        - containerPort: 80
          hostPort: 80
          protocol: TCP
        - containerPort: 443
          hostPort: 443
          protocol: TCP
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /healthz
            port: 10254
            scheme: HTTP
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        securityContext:
          privileged: true
      dnsPolicy: ClusterFirst
      serviceAccount: nginx-ingress-serviceaccount
      serviceAccountName: nginx-ingress-serviceaccount
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-ingress-controller
  namespace: kube-system
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
    name: http
  - port: 443
    protocol: TCP
    targetPort: 443
    name: https
  selector:
    k8s-app: nginx-ingress-controller
  sessionAffinity: None
  type: ClusterIP

5. 使用

对于ingress的使用我这里留到下次更文总结。

总结

这两天通过对Traefik和Nginx-ingress-controller的使用, 发现绝大多数场景Traefik都能满足我的需求,不的不说这个后起之秀是要把前辈们拍到沙滩上的节奏啊,Traefik对于Kubernetes友好和迅捷的支持还是值得大家去体验一下。目前Traefik在Github上的star已经超过了1.2W,发布了200多个releases,可见热度不低。另外Traefik对于那种每天处于多次添加、删除、被killed,升级、降级折腾的微服务来说,简直都是神器啊,完全不用关心去配置traefik的后端,因为它已经自动帮你监听了service的变化,并轻松的更改其配置和热重新加载,这也从官网给出http代理图可见一二。














Install with RBAC roles

Please check the RBAC document.

curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/rbac.yaml \
    | kubectl apply -f -

curl https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/with-rbac.yaml \
    | kubectl apply -f -

https://github.com/kubernetes/ingress-nginx/blob/master/deploy/README.md#install-with-rbac-roles


Using Helm

NGINX Ingress controller can be installed via Helm using the chart stable/nginx from the official charts repository. To install the chart with the release name my-nginx:

helm install stable/nginx-ingress --name my-nginx

If the kubernetes cluster has RBAC enabled, then run:

helm install stable/nginx-ingress --name my-nginx --set rbac.create=true

【实战】在已部署Nginx Ingress的K8s集群中集成Traefik:实现双Ingress Controller的平滑共存 本文详细介绍了在已部署Nginx Ingress的Kubernetes集群中集成Traefik Controller的实现方案,通过双Ingress Controller共存架构解决端口和规则冲突问题。文章提供了从架构设计到具体部署的完整指南,包括流量转发配置、HTTPS支持和性能优化等实战内容,帮助团队实现平滑过渡和功能隔离。 阅读详情

相关推荐

Python爬虫实战:5分钟搞定东方财富A股数据抓取(附完整代码)

本文提供了一套基于Python的A股数据自动化采集与分析系统构建方案。文章详细解析了如何通过稳健的爬虫框架从东方财富等公开数据源高效抓取A股数据,并设计数据库进行自动化存储与管理,特别适合量化研究和数据分析场景。

weixin_29062963的博客 4443

Traefik和Nginx全方位对比

在现代网络架构中🌐,选择合适的反向代理🔄和负载均衡器⚖️是至关重要的。Traefik 🚦 和 Nginx 🌊 是两款广泛使用的开源软件🔓,它们都能有效地处理大量网络请求📈,但在功能🛠️、性能💪和用例📚上有所不同。本文📄将从多个维度全面对比 Traefik 🚦 和 Nginx 🌊,帮助您了解它们的优势和局限性🆚,并决定哪一个更适合您的项目需求🎯🔍🤔

展望、进击 4798

GraphRAG + Ollama 本地化部署实战:从零搭建知识图谱问答系统

本文详细介绍了如何在本地部署GraphRAG与Ollama,搭建一个完全自主可控的知识图谱问答系统。通过逐步指导环境配置、项目初始化、核心设置修改以及源码适配,成功将GraphRAG从依赖云端OpenAI API转向本地Ollama服务,并选用qwen2.5:7b和nomic-embed-text模型。该方案有效解决了数据隐私与持续API成本问题,特别适合中小企业构建内部知识库或智能客服系统。

x2y3z4a5b的博客 919

Traefik--云原生下的Nginx替代品

不可否认,Nginx作为老牌的负载软件经久不衰,依然是绝大多数情况下的不二选择,但是在云原生时代,Nginx却显得力有不逮。 由于微服务架构以及Docker技术和K8s编排工具最近几年才开始逐渐流行,所以一开始的反向代理服务器比如Nginx、Apache等并未提供其支持。所以才会出现Ingress Controller这种东西来做k8s和Nginx之间的衔接。而Traefik天生就提供了Docker、k8s的支持,也就是说traefik本身就能跟k8s api交互感知后端变化,因此在使用traefik时,I

github_35902923的博客 3767

内网Linux服务器离线安装python包

3、将下载的依赖包和requirements.txt 拷贝到内网主机,依赖包和requirements.txt放同一级目录,进入该目录,运行指令。其实还有个更加方便的办法,联网主机装个与内网主机一样环境的虚拟机,在虚拟机中下载py包,拷贝到内网主机后就能直接安装了,省去手动下载py包的步骤。简单记录下最近遇到的一个小问题,内网主机没有内网源,处于无互联网状态,安装python包只能通过联网主机下载好后拷贝到内网主机。由于内网主机安装了多个版本的python,为了防止搞错,使用这种方式来调用pip安装。

cyc头发还挺多的博客 652

Aircrack-ng实战指南:从基础扫描到高级密码破解

本文提供了一份详尽的Aircrack-ng实战指南,涵盖从环境搭建到密码破解的全过程。内容包括如何准备兼容的无线网卡与Kali Linux系统,使用airodump-ng进行网络扫描与信息收集,捕获WPA2握手包的关键步骤,以及利用字典文件进行密码破解的核心原理与技巧。文章强调该技术应仅用于授权的安全测试与学习,旨在帮助读者理解无线网络安全以加强自身防护。

m3n5b7v8c9x的博客 552

Traefik简介

Traefik是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。 它可以支持多种后端 (Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Rest API, file…) 来自动化、动态的应用它的配置文件设置。 本文为个人在学习Traefik的过程中,对Traefik相关...

Bluejoy Jing 的博客 5252

python中frida的安装+frida-server(雷电模拟器)保姆级安装教程

frida的安装,安卓逆向,adb

2301_80224944的博客 4589

实操教程丨如何在K8S集群中部署Traefik Ingress Controller

注:本文使用的Traefik为1.x的版本 在生产环境中,我们常常需要控制来自互联网的外部进入集群中,而这恰巧是Ingress的职责。 Ingress的主要目的是将HTTP和HTTPS从集群外部暴露给该集群中运行的服务。这与Ingress控制如何将外部流量路由到集群有异曲同工之妙。接下来,我们举一个实际的例子来更清楚的说明Ingress的概念。 首先,想象一下在你的Kubernetes集群中有...

Rancher 1643

Perplexity AI 高效使用培训手册

Perplexity AI 是一款革命性的 AI 搜索引擎,提供免费版和专业版两种选择。免费版支持基础搜索、每日3次Pro搜索、3个文件上传和初步深度研究功能;Pro版则解锁无限次Pro搜索、无限制文件上传、AI图像生成等高级功能,适合专业用户深度研究。该工具能整合网络信息、分析本地文档、生成创意内容,并提供知识库管理功能,显著提升信息检索和内容创作效率。用户可根据需求选择合适版本,免费版已能满足日常使用,而Pro版则更适合专业场景。

conquer_qgw的博客 1208

insightface scrfd人脸检测测试

pip install mmdet 自动安装mmcv win10上可以,服务器上没成功

jacke121的专栏 4023

【Kubernetes】————————Traefik Ingress Controller

Traefik 是一个为了让部署微服务更加便捷而诞生的现代 HTTP 反向代理、负载均衡工具。traefik 本身设计的就能够实时跟 kubernetes api 交互,感知后端 service,pod 等的变化,自动更新配置并重载。traefik 是一个前端负载均衡器,对于微服务架构尤其是 kubernetes 等编排工具具有良好的支持;同 nginx 等相比,traefik 能够自动感知后端容器变化,从而实现自动服务发现。

zzzxxx520369的博客 874

uniapp [安卓苹果App端] - 在“安卓app/苹果app“平台端打包编译后,微信授权登录报错 login:fail [:-1]未能完成操作。(PGWXAPI错误-1。)错误码code:-10

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果安卓app,微信授权登录,uniAppAPP端微信登录报错,出现微信确认登录界面后点击登录报错,BundleID,应用ID,微信登录,app微信一键登录,微信登录绑定点确定就出错,AppSecrect,login:fail[:-1]未能完成操作。(PGWXAPI错误-1。),"errCode":-100,"code":-100,在uniappmanifest.json配置了AppSecrect还是报错无

🏆 前端领域优质创作者 3767

Traefik Ingress Controller

traefik 本身设计的就能够实时跟 kubernetes api 交互,感知后端 service,pod 等的变化,自动更 新配置并重载。traefik 是一个前端负载均衡器,对于微服务架构尤其是 kubernetes 等编排工具具有良好的支持;Traefik 是一个为了让部署微服务更加便捷而诞生的现代 HTTP 反向代理、负载均衡工具。同 nginx 等相比,traefik 能够自动感知后端容器变化,从而实现自动服务发现。从国内的gitee下载yaml,启用RBAC。

MCB134的博客 465

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

kubernetes集群基于traefik对外提供服务

一、前置知识点理解Ingress简单的说,ingress就是从kubernetes集群外访问集群的入口,将用户的URL请求转发到不同的service上。Ingress相当于nginx、ap...

apl359的博客 694

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Kubernetes——Traefik Ingress Controller

Traefik、部署Nginx-Ingress-Controller、Ingress + HTTP

一坨小橙子的博客 666

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

[单master节点k8s部署]34.ingress 反向代理(一)

ingress是k8s中的标准API资源,作用是定义外部流量如何进入集群,并根据核心路由规则将流量转发到集群内的服务。ingress和Istio工作栈中的virtual service都是基于service之上,更细致准确的一种流量规则。每一个pod对应的service是四层代理,也就是说处于通信网络结构的第四层(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)。

weixin_45396500的博客 1719

k8s的对外服务---ingress

ingress是一个API对象,通过yaml文件进行配置。ingress的作用:是定义请求如何转发到service的规则。相当于一个配置模板ingress通过http和https暴露集群内部的service。ingress给service提供外部的URL域名,负载均衡以及ssl/tls(加密的https)的能力。实现一个基于域名的负载均衡。1、 定义外部流量的路由规则2、 定义了服务的暴露方式、主机名、访问路径和其他的选项。3、 实现负载均衡。这是由ingress-controller实现的。

m0_75209491的博客 2112

K8S:Traefik Ingress Controller

本文介绍了Traefik是现代 HTTP 反向代理、负载均衡工具,并且可以感知后端 service,pod 等的变化,自动更新配置并重载。并对Traefik 部署方式及优缺点介绍、对Traefik 的部署,对Traefik 弹性伸缩做实例

Katie_ff的博客 587

Ingress

一、ingress控制器 ingress controller可以为外网用户访问K8S集群内部pod提供代理服务。 提供全局访问代理 访问流程 用户–>ingress controller–>service–>pod ingress控制器有很多种: Kubernetes Ingress Controller http://github.com/kubernetes/ingress-nginx 实现:Go/Lua(nginx 是用 C 写的) 许可证:Apache 2.0 Kub

Kubernetes enthusiasts 2141

K8S对外服务ingress

开源的有:nginx ingress controller,traefik,这两种都是属于ingress-controller,用户可以选择不同的ingress-controller实现,目前,由k8s维护的ingress-controller只有google云的GCE与ingress-nginx两个,其他还有很多第三方维护的ingress-controller,具体可以参考官方文档。具体的实现反向代理和负载均衡的程序,对ingress定义的规则进行解析,根据ingress的配置规则进行转发。

2301_79410672的博客 1347

k8s独立组件ingress,七层转发

1.ingress:核心是对外提供访问2.ingress---根据service的名称选择service----service把请求根据匹配的标签转发到pod3.ingress支持http及httpsnginx-ingress-controller------主流traefik-ingress-controller------目前再推广5.最常用的是deployment+NodePort6.对外访问用:Daemonset+hostnetwork。

Alone8046的博客 2072

K8s服务入口管理Traefik的安装使用和自动熔断

微信公众号搜索 DevOps和k8s全栈技术 ,即可关注公众号,也可扫描文章最后的二维码关注公众号,每天会分享技术文章供大家阅读参考哈~正文前面部署了kubernetes/ingress...

weixin_38320674的博客 3606

九、k8s:ingress

NodePort:会在每个节点开放一个端口,端口号30000-32767。也是只能用于内网访问,四层转发。实现负载均衡。不能基于域名进行访问。clusterip:service的默认类型,只能在集群内部访问loadBalancer:基于云平台的实现的,需要有loadBalancer的地址,仅限于云平台externallPS:service允许分配外部ip,把外部ip路由集中到集群的一个或者多个node节点。

2401_87896172的博客 1157

ingress

ingress通过http和https暴露集群内部的service,给service提供一个外部的url,负载均衡,ssl/tls (https)的能力,实现一个基于域名的负载均衡。ingress-controller:具体的实现反向代理和负载均衡的程序,以及对ingress定义的规则进行解析,根据ingress配置规则进行请求的转发。pod中的容器可以直接访问主机上的网络资源。1、集群内部: 不断跟踪pod的变化,更新endpoint中的pod对象,基于pod的IP地址不断变化的一种服务发现机制。

a91888888的博客 1025

33. 如何在 K3s 上部署 Nginx 而不是 Traefik 作为你的入口控制器

然而,在某些特殊情况下,NGINX 可能是必需或偏好的。大约一分钟后,你应该会看到新的 Pods 正在运行,包括 NGINX Ingress 控制器和默认后端: 你还会在环境中看到一个。请注意,Traefik 是 K3s 支持的入口控制器,而 NGINX 并未获得 SUSE Rancher 官方支持。Traefik 是 K3s 默认支持的 Ingress 控制器,建议使用它,而不是维护自定义的 Ingress NGINX 安装。安装脚本,可以运行以下程序: 这样可以安装 K3s 服务器,形成单节点集群。

642
上一篇: 可外部访问的Kubernetes容器
下一篇: 在Kubernetes Pod中使用Service Account访问API Server
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值