Kubernetes的Ingress 资源是什么?

在Kubernetes中,Ingress资源是一种用于管理集群外部对内部服务访问的API对象,主要用于将不同的外部请求路由到集群内的不同服务,以下是关于它的详细介绍:

定义与作用

  • Ingress资源定义了从集群外部到内部服务的HTTP和HTTPS路由规则。通过Ingress,可以将多个不同域名或不同路径的请求,根据定义的规则,导向到集群内不同的Kubernetes服务,从而实现对集群内服务的统一外部访问管理。

核心组成部分

  • 规则(Rules) :是Ingress资源的核心部分,用于定义具体的路由规则。每个规则可以包含一个主机名(Host)和一个或多个路径(Path)及相关的后端服务配置。例如,可以定义一个规则,当请求的主机名为example.com且路径为/app1时,将请求转发到名为service1的Kubernetes服务。
  • 后端(Backends) :指定了在满足规则条件时,请求应该被路由到的目标服务和端口。一个后端通常由服务名称和端口号组成,例如service1:8080,表示将请求发送到名为service1的服务的8080端口。
  • TLS配置:用于配置Ingress资源的传输层安全(TLS)设置,以确保通信的安全性。可以指定SSL/TLS证书和密钥,用于对通过Ingress的HTTPS流量进行加密和解密。

示例

以下是一个简单的Ingress资源的YAML示例:

yaml 复制代码
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - host: example.com
    http:
      paths:
      - path: /app1
        pathType: Prefix
        backend:
          service:
            name: service1
            port:
              number: 8080
      - path: /app2
        pathType: Prefix
        backend:
          service:
            name: service2
            port:
              number: 80

在这个示例中,定义了一个名为example-ingress的Ingress资源。它包含一个规则,当请求的主机名为example.com时,根据不同的路径进行路由。如果路径以/app1开头,请求将被路由到service1的8080端口;如果路径以/app2开头,请求将被路由到service2的80端口。

相关推荐
虚伪的空想家13 小时前
实战:Flannel为网络CNI底座的K8S接入Cilium CNI
网络·容器·kubernetes·k8s·flannel·cni·cilium
KubeSphere 云原生1 天前
云原生周刊:在 Kubernetes 上运行机器学习
云原生·容器·kubernetes
码界奇点1 天前
通往Docker之路从单机到容器编排的架构演进全景
docker·容器·架构
阿Y加油吧1 天前
Docker从入门到实战——含容器部署、docker基础、项目部署
运维·docker·容器
不知道累,只知道类1 天前
记一次诡异的“偶发 404”排查:CDN 回源到 OSS 导致 REST API 失败
java·云原生
victory04311 天前
progen2 docker镜像打包命令文档
运维·docker·容器
AKAMAI1 天前
Akamai推出Akamai Inference Cloud (AI推理云),重新定义人工智能的应用场景与实现方式
人工智能·云原生·云计算
算是难了1 天前
Docker基础总结
运维·docker·容器
ityangs1 天前
GitLab 私服(基于 Docker)搭建方案
git·docker·容器·gitlab
沐雨风栉1 天前
告别设备限制!CodeServer+cpolar让VS Code随时随地在线编程
云原生·eureka·重构·pdf·开源