Kubernetes Ingress 配置指定端口80和443

在 Kubernetes 中,Ingress 是一种用于管理集群中入口流量的 API 对象。它允许开发人员定义和管理入站 HTTP 和 HTTPS 流量的路由规则。Ingress 控制器是负责根据 Ingress 规则将流量路由到正确的服务的组件。

本文将介绍如何在 Kubernetes Ingress 中配置指定端口 80 和 443,并提供相应的代码示例。

基本概念

在开始之前,我们先了解一些与 Ingress 相关的基本概念:

  • Ingress Controller:Ingress Controller 是一个运行在 Kubernetes 集群中的 HTTP(S)反向代理。它负责监听 Ingress API 对象的变化,并根据规则配置路由流量。
  • Ingress Resource:Ingress Resource 是一个定义了应该如何路由传入的 HTTP(S)请求的规则集合。它包含了主机名、路径和后端服务等信息。
  • Ingress Rule:Ingress Rule 定义了应该如何路由传入的请求。它包含了与主机名相关的规则和路径相关的规则。
  • Ingress Service:Ingress Service 是后端服务的抽象。它可以是一个 Kubernetes Service 或者外部的服务。

配置指定端口

默认情况下,Kubernetes Ingress Controller 使用的端口是 80 和 443。如果你想指定这两个端口,可以通过在 Ingress Controller 的配置中进行设置。

首先,我们需要创建一个 Ingress Controller 的 Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ingress-controller
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ingress-controller
  template:
    metadata:
      labels:
        app: ingress-controller
    spec:
      containers:
      - name: ingress-controller
        image: <ingress-controller-image>
        ports:
        - containerPort: 80
        - containerPort: 443

在上面的示例中,我们为 Ingress Controller 创建了一个 Deployment,并指定了容器的端口为 80 和 443。你需要将 <ingress-controller-image> 替换为你所使用的 Ingress Controller 的镜像。

接下来,我们需要创建一个 Service 来公开 Ingress Controller 的端口:

apiVersion: v1
kind: Service
metadata:
  name: ingress-controller
spec:
  selector:
    app: ingress-controller
  ports:
  - name: http
    port: 80
    targetPort: 80
  - name: https
    port: 443
    targetPort: 443

在上面的示例中,我们为 Ingress Controller 创建了一个 Service,并将端口 80 和 443 与容器的对应端口进行映射。

最后,我们就可以创建和配置 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: 8080

在上面的示例中,我们创建了一个 Ingress 资源,并将域名 example.com 的请求路由到了名为 my-service 的后端服务的端口 8080。

结束语

通过以上步骤,我们成功地配置了 Kubernetes Ingress 来指定端口 80 和 443。你可以根据实际需求进行相应的调整和配置。

希望本文能帮助你理解和使用 Kubernetes Ingress,并在实际项目中发挥作用。

[![journey](