记录一下_treafik使用Gateway-APi使用的细节参数

news/2025/2/25 22:42:21

一、这里说一下treafik最大的容易走入圈套的地方。

        1、treafik默认不是hostnetwork模式。为了暴露自己出来它有一个LB类型的SVC。

这里的External_ip为我的节点IP,因为使用了k3s自带的LB,这个SVC就很容易绕进去。

        1、第一个这个LB的作用是为了暴露treafik给集群外的Client访问使用。

        2、这里的80和443是占用了External_ip为我的节点IP的80和443.

        3、以及对应的30285和32299都是占用了节点IP的端口。

        4、相当于浪费了两个端口。

        5、正常如果是hostnetwork模式就没有这个问题。

二、gateway的配置。

*这里的端口8443对应是配置treafik中POD的监听端口:
    websecure:  # 用于 Gateway
      port: 8443
      protocol: TCP 

*这里的工作流是这样的:

        1、通过gatewayclass找到 traefik.

        2、通过label找到treafik

                                        3、然后把gateway配置文件丢给treafik进行处理。

ip-172-27-183-66:~/harbor/istio # cat harbor-gateway.yaml
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: harbor-gateway
  namespace: harbor
spec:
  gatewayClassName: traefik
  listeners:
  - name: https
    port: 8443
    protocol: HTTPS
    hostname: "k8s.kox xne"
    tls:
      mode: Terminate
      certificateRefs:
      - kind: Secret
        name: k8s.koxxxxxline
    allowedRoutes:
      namespaces:
        from: Same

三、helm参数

deployment:
  podAnnotations:
    prometheus.io/port: "8082"
    prometheus.io/scrape: "true"
global:
  systemDefaultRegistry: ""
image:
  repository: rancher/mirrored-library-traefik
  tag: 3.3.2
priorityClassName: system-cluster-critical
providers:
  kubernetesIngress:
    enable: false
    publishedService:
      enabled: true
    nativeLBByDefault: true
  kubernetesGateway: 
    enabled: true
    nativeLBByDefault: true #打开则通过svc再L B一次,默认false 直接到pod
gateway:
  enabled: true
  listeners:
    web:  # 用于 Gateway
      port: 8000
      protocol: TCP
    websecure:  # 用于 Gateway
      port: 8443
      protocol: TCP 

service:
  ipFamilyPolicy: PreferDualStack
tolerations:
- key: CriticalAddonsOnly
  operator: Exists
- effect: NoSchedule
  key: node-role.kubernetes.io/control-plane
  operator: Exists
- effect: NoSchedule
  key: node-role.kubernetes.io/master
  operator: Exists

四、重点istio

istio的gateway提供会自动生成一个lb的svc。这么做就相当于直接把服务暴露到外面,特别适合和公有云集成特别好的场景。一个业务自动一个LB。


http://www.niftyadmin.cn/n/5865995.html

相关文章

基于C#+SQL Server设计与实现的教学管理信息系统

教学管理信息系统 1、实验内容: 大学同时开设多门课程。每门课程有一个主讲教师,有多名学生选修;一个学生可选修多门课程并获得相应的学分和成绩;上课的基本单位是“次”(一次 2 学时),每一次…

若依前后端分离框架修改3.8.9版本(重点在安全框架讲解与微信小程序登录集成)

若依模板改造(3.8.9) 1、基础改造 下载代码 从[RuoYi-Vue: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本](https://gitee.co…

Flutter 实现抖音风格底部导航栏

在移动应用开发中,良好的导航设计对用户体验至关重要。抖音作为一款现象级应用,其底部导航设计简洁直观,极具吸引力。本文将详细介绍如何使用 Flutter 开发一个类似抖音风格的底部导航栏,帮助开发者打造兼具美观与实用的导航界面。…

找不到依赖项 <…> (Maven)

IDEA 的 build 操作和 maven 的 build 操作是分开的 重新加载 Maven 项目

RabbitMQ教程超详细(零基础入门有空更新)

1:入门第一步就是闲着没事看看RabbitMQ官网,更新什么。 这是官网地址 RabbtiMQ官网 2:这是基于erlang开发的,所以需要erlang环境。 优先下载环境 Releases rabbitmq/erlang-rpm GitHub 3:下载RabbitMQ安装包 RabbtiMQ安装包 4:上传自己的服务器上面 懂得人已经…

Linux红帽:RHCSA认证知识讲解(二)配置网络与登录本地远程Linux主机

Linux红帽:RHCSA认证知识讲解(二)配置网络与登录本地远程Linux主机 前言一、使用命令行(nmcli 命令)配置网络,配置主机名第一步第二步修改主机名称 二、使用图形化界面(nmtui 命令)配…

2025年AI科技热点全景:人形机器人量产、垂类应用崛起与推理模型革新引领未来

一、人形机器人量产:从实验室到工业场景的跨越 1. 技术突破与产业链重构 2025年被广泛视为人形机器人量产元年,其核心驱动力源于“大脑、小脑、肢体”三位一体的技术突破。 大脑层:基于Transformer的多模态大模型(如NVIDIA Cosmos平台)实现了环境感知与决策优化,例如优…

Java集合并发安全面试题

Java集合并发安全面试题 同步包装器 Q1: Collections的同步包装器是如何实现线程安全的&#xff1f; public class SynchronizedWrapperExample {// 1. 基本使用public void demonstrateSynchronizedCollections() {// 创建同步ListList<String> syncList Collection…