kubernetes traefik ingress 安装部署以及使用注意点

1、简介

在这里插入图片描述

Traefik 是一款 open-source 边缘路由器,可让您轻松地发布服务. 它接收来自您的系统请求,并找出负责处理它们的后端服务组件。

traefik 与众不同在于它能够自动发现适合您服务的配置。 当 Traefik 检查您的基础设施时,它会发现相关信息,并发现哪个服务服务于哪个请求。

Traefik 支持多种集群技术,如 Kubernetes,Kubernetes, Docker, Docker Swarm, AWS, Mesos, Marathon, 并且可以同时处理多个 providers。(它甚至适用于在裸机上运行的传统软件。)
使用 Traefik,无需维护和同步配置文件:所有操作都会自动实时完成(无重启,不用中断服务)。 使用 Traefik,您只需花时间于系统开发和部署新功能,而不是配置和维护其工作状态。

2、kubernetes安装traefik ingress

2.1.安装helm
yum install -y wget
mkdir -p /usr/local/helm
cd /usr/local/helm
wget https://get.helm.sh/helm-v3.10.0-linux-amd64.tar.gz
tar zxvf helm-v3.10.0-linux-amd64.tar.gz
mv -f linux-amd64/helm /usr/bin
2.2. 更新
helm repo update
2.3. helm repo add traefik
helm repo add traefik https://helm.traefik.io/traefik
2.3. traefik values.yaml 修改简单配置,亲测可用
globalArguments:
  - "--global.sendanonymoususage=false"
  - "--global.checknewversion=false"

additionalArguments:
  - "--serversTransport.insecureSkipVerify=true"
  - "--log.level=INFO,ERROR"
metrics:
  prometheus:
    entryPoint: metrics
deployment:
  enabled: true
  replicas: 3  # 自定义3个pod
  annotations: {}
  podAnnotations: {}
  additionalContainers: []
  initContainers: []

ports:
  web:
    redirectTo: websecure  # http 请求跳转到https
  websecure:
    tls:
      enabled: true

ingressRoute:
  dashboard:
    enabled: false
providers:
  kubernetesCRD:
    enabled: true
    ingressClass: traefik-external
  kubernetesIngress:
    enabled: true
    publishedService:
      enabled: false

rbac:
  enabled: true

service:
  enabled: true
  type: ClusterIP
  annotations: {}
  labels: {}
  spec: {}
  externalIPs:
    - 192.168.100.199 #构建svc时候用externalIPs指定运行svc的主机内网IP TODO根据自己的需求而定
2.4. 启动
	helm install traefik traefik/traefik -f values.yaml -n kube-system
2.4. 卸载
	helm uninstall traefik -n kube-system 

3、SSL证书安装

3.1. 证书转换(以pem为例)
openssl x509 -in xxx.com.pem -out xxx.com.crt
3.2. 证书添加k8s
cat xxx.com.crt | base64 | tr -d '\n'
cat xxx.com.crt | base64 | tr -d '\n' 
apiVersion: v1
kind: Secret
metadata:
 name: ca-key-pair
 namespace: cert
data:
 tls.crt: <crt>  cat xxx.com.crt | base64 | tr -d '\n'(拷贝过来)
 tls.key: <pvt>  cat xxx.com.crt | base64 | tr -d '\n' (拷贝过来)

4、注意事项

traefik ingress 证书需要配置任何一个namespace应用域名中访问,并且要访问一次,
其他的namespace 无需配置(2.9版本的测试,不清楚是为啥),并且一个域名而且只能保留一个证书(任意和域名绑定的namespace)否则证书会乱掉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您好!要在Kubernetes部署Ingress使用它,您可以按照以下步骤进行操作: 1. 确保已经安装Kubernetes集群,并且具有管理员权限。 2. 首先,需要安装一个Ingress控制器。Ingress控制器是负责处理Ingress资源并将请求路由到相应的服务的组件。常见的Ingress控制器有Nginx Ingress Controller、Traefik、HAProxy Ingress等。您可以选择其中一个并按照其文档进行安装。 3. 安装Ingress Controller后,您需要定义一个Ingress资源来配置路由规则。Ingress资源是Kubernetes中定义路由规则的一种方式。下面是一个示例的Ingress资源定义: ``` apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-ingress spec: rules: - host: example.com http: paths: - path: / pathType: Prefix backend: service: name: my-service port: number: 80 ``` 上述示例中,定义了一个名为`my-ingress`的Ingress资源,将`example.com/`请求路由到名为`my-service`的后端服务的80端口。 4. 创建或更新Ingress资源,并将其应用到集群中: ``` $ kubectl apply -f ingress.yaml ``` 5. 确保Ingress Controller已经正确地将流量路由到您的服务。您可以使用以下命令检查Ingress资源和Ingress Controller的状态: ``` $ kubectl get ingress $ kubectl get pods -n <ingress-namespace> ``` 其中,`<ingress-namespace>`是Ingress控制器所在的命名空间。 这样,您就可以通过Ingress来访问您的服务了。请注意,您还需要确保域名解析正确,并将域名指向集群中Ingress Controller的IP地址。 希望这些信息能对您有所帮助!如果您有任何其他问题,请随时提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值