kubernetes集群traefik ingress实现同一命名空间不同微服务模块的访问

背景:kubernetes集群traefik ingress实现同一命名空间不同微服务模块的访问
1.安装traefik ingress
cat > traefik-ingress.yaml <<EOF

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: traefik-ingress-controller
rules:

  • apiGroups:

    • ""
      resources:
    • pods
    • services
    • endpoints
    • secrets
      verbs:
    • get
    • list
    • watch
  • apiGroups:
    • extensions
      resources:
    • ingresses
      verbs:
    • get
    • list
    • watch

      kind: ClusterRoleBinding
      apiVersion: rbac.authorization.k8s.io/v1
      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: c7n-system

        apiVersion: v1
        kind: ServiceAccount
        metadata:
        name: traefik-ingress-controller
        namespace: c7n-system

        kind: Deployment
        apiVersion: apps/v1beta1
        metadata:
        name: traefik-ingress-controller
        namespace: c7n-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:v1.7.4
      imagePullPolicy: IfNotPresent
      name: traefik-ingress-lb
      args:
      • --api
      • --kubernetes
      • --logLevel=INFO

        kind: Service
        apiVersion: v1
        metadata:
        name: traefik-ingress-service
        namespace: c7n-system
        spec:
        selector:
        k8s-app: traefik-ingress-lb
        ports:

      • protocol: TCP

        该端口为 traefik ingress-controller的服务端口

        port: 80

        集群hosts文件中设置的 NODE_PORT_RANGE 作为 NodePort的可用范围

        从默认20000~40000之间选一个可用端口,让ingress-controller暴露给外部的访问

        nodePort: 23456
        name: web

      • protocol: TCP

        该端口为 traefik 的管理WEB界面

        port: 8080
        name: admin
        type: NodePort
        EOF

2.查看k8s集群配置微服务svc

3.配置raefik ingress后端f服务
cat > traefik-choerodon.yaml <<EOF

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: choerodon-xiongxj
namespace: c7n-system
spec:
rules:

  • host: choerodon.maimailoan.cn
    http:
    paths:

    • path: /api-gateway
      backend:
      serviceName: api-gateway
      servicePort: 8080
    • path: /c7n-slaver
      backend:
      serviceName: c7n-slaver
      servicePort: 80
    • path: /chartmuseum-chartmuseum
      backend:
      serviceName: chartmuseum-chartmuseum
      servicePort: 8080
    • path: /choerodon-front
      backend:
      serviceName: choerodon-front
      servicePort: 80
    • path: /config-server
      backend:
      serviceName: config-server
      servicePort: 8010
    • path: /devops-service
      backend:
      serviceName: devops-service
      servicePort: 8060
    • path: /gitlab
      backend:
      serviceName: gitlab
      servicePort: 80
    • path: /harbor
      backend:
      serviceName: harbor-harbor-ui
      servicePort: 80
    • path: /minio
      backend:
      serviceName: minio-svc
      servicePort: 9000
    • path: /xwiki
      backend:
      serviceName: xwiki
      servicePort: 8080
      EOF
      4.查看ingress详情

5.访问

原文地址:https://blog.51cto.com/whitehat/2382365

时间: 2024-11-06 03:30:35

kubernetes集群traefik ingress实现同一命名空间不同微服务模块的访问的相关文章

Traefik实现Kubernetes集群服务外部https访问

1.部署 Traefik 由于我们需要将外部对于kubernetes的http请求全都转换成https,不想更改服务的配置以及代码,那我们可以选择在traefik上配置域名证书,这样通过域名对服务的访问将会自动转换成https请求. 1.1创建ClusterRole以及ClusterRoleBinding(Kubernetes1.6+) ingress-rbac.yaml文件: apiVersion: v1 kind: ServiceAccount metadata:   name: ingre

部署Bookinfo示例程序详细过程和步骤(基于Kubernetes集群+Istio v1.0)

部署Bookinfo示例程序详细过程和步骤(基于Kubernetes集群+Istio v1.0) 部署Bookinfo示例程序 在下载的Istio安装包的samples目录中包含了示例应用程序. Bookinfo应用 部署一个样例应用,它由四个单独的微服务构成,用来演示多种 Istio 特性.这个应用模仿在线书店的一个分类,显示一本书的信息.页面上会显示一本书的描述,书籍的细节(ISBN.页数等),以及关于这本书的一些评论. Bookinfo 应用分为四个单独的微服务: productpage

kubernetes集群安装Jenkins实现cicd

一.安装Jenkins 1. 安装存储服务器 找一台服务器搭建一台nfs服务器<<详见Ubuntu16.04 安装nfs>> 系统:Ubuntu 16.04 IP:172.18.1.13 apt install nfs-common nfs-kernel-server -y #配置挂载信息 cat /etc/exports /data/k8s *(rw,sync,no_root_squash) #给目录添加权限 chmod -R 777 /data/k8s #启动 /etc/ini

Centos7 下安装入门级别的kubernetes集群

前情说明: 三台Centos7系统的虚拟机(1个master+2个node),三台机器上的防火墙,SELINUX全部关掉.我的实验坏境可以上网,默认的YUM源就可以用. 1.什么是kubernetes Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg).在Docker技术的基础上,为容器化的应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性. Kubernetes优势: - 容器编排         - 轻量级

CentOS7部署Kubernetes集群

CentOS7部署Kubernetes集群 简介 Kubernetes是什么? Kubernetes一个用于容器集群的自动化部署.扩容以及运维的开源平台. 通过Kubernetes,你可以快速有效地响应用户需求: a.快速而有预期地部署你的应用 b.极速地扩展你的应用 c.无缝对接新的应用功能 d.节省资源,优化硬件资源的使用 我们希望培育出一个组件及工具的生态,帮助大家减轻在公有云及私有云上运行应用的负担. Kubernetes特点: a.可移植: 支持公有云,私有云,混合云,多重云(mult

Kubernetes集群部署DNS服务

Kubernetes集群部署DNS服务在kubernetes中每一个service都会被分配一个虚拟IP,每一个Service在正常情况下都会长时间不会改变,这个相对于pod的不定IP,对于集群中APP的使用相对是稳定的. 但是Service的信息注入到pod目前使用的是环境变量的方式,并且十分依赖于pod(rc)和service的创建顺序,这使得这个集群看起来又不那么完美,于是kubernetes以插件的方式引入了DNS系统,利用DNS对Service进行一个映射,这样我们在APP中直接使用域

阿里云ECS搭建Kubernetes集群踩坑记

阿里云ECS搭建Kubernetes集群踩坑记 [TOC] 1. 现有环境.资源 资源 数量 规格 EIP 1 5M带宽 ECS 3 2 vCPU 16 GB内存 100G硬盘 ECS 3 2 vCPU 16 GB内存 150G硬盘 SLB 2 私网slb.s1.small 2. 规划 坑: 上网问题,因为只有一个EIP,所有其它节点只能通过代理上网; 负载均衡问题,因为阿里不支持LVS,负载均衡TCP方式后端又不支持访问负载均衡,HTTP和HTTPS方式,只支持后端协议为HTTP; 为了避免上

在Kubernetes集群上部署和管理JFrog Artifactory

JFrog Artifactory是一个artifacts仓库管理平台,它支持所有的主流打包格式.构建工具和持续集成(CI)服务器.它将所有二进制内容保存在一个单一位置并提供一个接口,这使得用户在整个应用程序开发和交付过程中,能更易于上传.查找和使用二进制文件. 在本文中我们将介绍如何使用Rancher在Kubernetes集群上部署和管理JFrog Artifactory.在看完本文后,你将会系统地了解JFrog Artifactory OSS的安装设置,并且能够按照同样的步骤在任何Kuber

在kubernetes 集群内访问k8s API服务

所有的 kubernetes 集群中账户分为两类,Kubernetes 管理的 serviceaccount(服务账户) 和 useraccount(用户账户).基于角色的访问控制(“RBAC”)使用“rbac.authorization.k8s.io”API 组来实现授权控制,允许管理员通过Kubernetes API动态配置策略. API Server 内部通过用户认证后,然后进入授权流程.对合法用户进行授权并且随后在用户访问时进行鉴权,是权限管理的重要环节.在 kubernetes 集群中