首页 > 其他分享 >K8S之Ingress

K8S之Ingress

时间:2024-08-23 14:20:34浏览次数:11  
标签:Ingress ingress nginx Controller path K8S backend

Ingress

Service一般情况下只作用内部Pod的代理调度,如果只指定一个NodeIP,随着业务量增大,这个Node压力就会很大,
这时可能会在前端加一个代理,代理几个Node。在应用小的情况下,这种架构还能接受。但如果有大量应用的话,我们
就需要管理大量的NodePort,这时就需要Ingress来解决

Ingress代理并不是Pod的service,而是Pod。Ingress提供外部访问集群的入口,将外部的HTTP或者HTTPS轻轻转发到
集群内service上,流量规制在Ingress资源上定义

Ingress controller类型,其中Nginx、Traefik为常用类型

  • HAProxy Ingress Controller
  • Nginx Ingress Controller
  • Tracefik Ingress Controller
  • Kong Ingress Controller

定义一个简单的Ingres

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: ingress-simple-demo
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
    paths:
    - path: /joker
      backend:
        serviceName: nginx
        servicePord: 80    

Ingress更新

如果想更改正在工作的Ingress,比如新增一个HOST,可以使用kubectl edit ingress my-ingress进行更新,在保存退出
后会触发Ingress Controller重新配置LB

实例: kubectl edit ingress ingress-simple-demo

spec:
  rules:
  - http:
      paths:
      - backend:
          serviceName: nginx-service
          servicePort: 8000
        path: /joker
  - host: bar.baz.com
    http:
      paths:
      - backend:
          serviceName: nginx
          servicePort: 80
        path: /foo
status:
  loadBalancer: {}

标签:Ingress,ingress,nginx,Controller,path,K8S,backend
From: https://www.cnblogs.com/codechange/p/17853345.html

相关文章

  • K8S之Ingress常用Nginx、Traefik示例
    NginxIngress创建Pod、Service,定义如下nginx-ingress-demo.yamlapiVersion:extensions/v1beta1kind:Deploymentmetadata:name:nginx-deploynamespace:defaultspec:replicas:3selector:matchLabels:app:nginx-demoreplease:canary......
  • K8S之namespace资源限制
    在默认情况下,K8S不会对Pod进行CPU和内存限制,如果某个Pod发生内存泄露那么将是一个非常糟糕的事情所以在部署Pod的时候都会把Requests和limits加上,配置文件示例如下apiVersion:apps/v1kind:Deploymentmetadata:name:ng-deployspec:selector:matchLables:......
  • K8S基本概念和组件
    特点便携性无论公有云、私有云、混合云还是多云架构都全面支持可扩展模块化、可插拔、可挂载、可组合,支持各种形式的扩展自修复自保持应用状态、自重启、自复制、自缩放,声明式语法组件etcd保存整个集群状态,充当数据库角色,只与APIServer通讯apiserve......
  • K8S之Pod对象
    Pod是一组紧密关联的容器组合,共享PID,NETWORK,UTSnamespace。一个Pod里可以运行多个容器。一个Pod里多个容器共享网络和文件系统原理K8S真正处理的还是宿主机操作系统上的namespace和Cgroups,而不存在一个Pod边界或者隔离环境。Pod里所有的容器共享的是同一个NetworkNameS......
  • K8S之Service
    对于K8S整个集群来说,Pod地址是可变的。一个Pod因某些原因退出了,而其设置了副本数replicas大于1那么该Pod就会在集群的任意节点重新启动。重新启动后的Pod的IP与原IP地址不同,这样就不能根据Pod的IP来进行调度。于是K8S引入了Service概念,它为Pod提供了一个入口,主要通过Labels标签来......
  • K8S之配置信息应用
    在K8S中,为容器提供预先定义好的数据,K8S支持四种volume:Secret、ConfigMap、DownloadAPI、ServiceAccountTokenSecret把Pod想要访问的加密数据存放到etcd中,然后可以在Pod容器通过挂载的方式访问secret里保存的数据一旦secret被创建,我们可以通过三种方式使用在创建Pod时,通过......
  • D3 k8s之pod共享网络和文件的实现原理
    》pod是一个逻辑概念,不是一个隔离的环境。引入pod目的是满足容器之间密切协作关系所需的环境,尤其是网络通信和文件共享的需求1、容器之间网络通信》 假设nginx应用程序启用了http_stub_status_module模块,以提供关于nginx运行状态的统计信息。同时,获取这些统计信息的访问路......
  • D2 k8s之pod存在的意义
    1、pod简介》 kubernetes提供的一系列资源和功能都是以pod为中心展开的,旨在高效的管理和编排这些pod》 pod是kubernetes中最小的调度单元,一个pod可以包含一个或多个容器,这些容器运行在同一节点上,从而可以实现共享网络、存储以及其他资源。这种涉及使得pod能够满足复杂的应用程序......
  • kubeadm升级k8s之1.23.17->1.24.17
    查看当前版本[root@k8s-master31~]#kubectlgetnodes-owideNAMESTATUSROLESAGEVERSIONINTERNAL-IPEXTERNAL-IPOS-IMAGEKERNEL-VERSIONCONTAINER-RUNTIMEk8s-master31Ready......
  • k8s限制外部管理访问
    #允许控制节点iptables-AINPUT-smaster-node-ptcp--dport6443-jACCEPT#允许数据节点iptables-AINPUT-sdata-node-ptcp--dport6443-jACCEPT#允许k8s内部服务网段iptables-AINPUT-s10.40.0.0/16-ptcp--dport6443-jACCEPT#允许k8s内部POD网段iptab......