You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes Ingress是否支持微服务间内部请求及SSL通信?

Kubernetes Ingress 内部请求代理与微服务间SSL通信方案

1. Ingress 是否支持内部请求代理?

完全可以。Ingress 本质是基于 HTTP/HTTPS 的路由规则组件,核心由 Ingress Controller 实现流量转发——只要集群内的 Pod 能访问到 Ingress Controller 的服务(比如配置为 ClusterIP 类型),就能通过 Ingress 代理微服务之间的内部请求,并不局限于外部流量。

2. 不用服务网格,如何用 Ingress 实现微服务间 SSL 通信?

这里提供一套轻量方案,以 Nginx Ingress Controller 为例(其他主流 Controller 逻辑类似):

  • 将 Ingress Controller 改为 ClusterIP 类型
    默认很多 Ingress Controller 会部署为 LoadBalancer/NodePort,改成 ClusterIP 后仅集群内部可访问,避免外部暴露。修改对应的 Service 配置:

    apiVersion: v1
    kind: Service
    metadata:
      name: nginx-ingress-controller
    spec:
      type: ClusterIP  # 替换原类型
      ports:
      - name: https
        port: 443
        targetPort: https
      selector:
        app: nginx-ingress
    
  • 配置内部服务的 Ingress 规则
    为每个需要被内部调用的微服务配置 Ingress,使用内部自定义域名(比如 user-service.internal),并关联对应的后端 Service:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: user-service-ingress
      annotations:
        nginx.ingress.kubernetes.io/ssl-redirect: "true"
    spec:
      tls:
      - hosts:
        - user-service.internal
        secretName: internal-tls-secret  # 关联SSL证书Secret
      rules:
      - host: user-service.internal
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: user-service
                port:
                  number: 8080
    
  • 创建内部 SSL 证书 Secret
    用自签证书或内部 CA 签发的证书创建 Secret:

    kubectl create secret tls internal-tls-secret --cert=./internal-cert.pem --key=./internal-key.pem
    
  • 微服务内部调用配置
    微服务之间调用时,直接使用 Ingress 定义的内部域名 + HTTPS 协议,比如 https://user-service.internal/api/users。如果集群内没有自动解析自定义域名的 DNS 服务,可以:

    • 在 CoreDNS 中添加自定义域解析,指向 Ingress Controller 的 ClusterIP;
    • 或者在 Pod 的 hostAliases 里配置域名与 Ingress Controller IP 的映射。

额外说明

如果需要端到端 SSL(Ingress 不终止 SSL,直接将加密流量转发到后端服务),可以给 Ingress 添加注解:

metadata:
  annotations:
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"

这种情况下,后端服务需要自行处理 SSL 证书,Ingress 仅做四层转发。

内容的提问来源于stack exchange,提问作者CraZyCoDer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 14:45:55