Kubernetes Ingress配置精选:Fitten Code快速路由规则与SSL证书

2026-06-27阅读 0热度 0
Fitten_Code写Kubernetes_ingress:快速配置路由规则与SSL证书

要在Kubernetes环境中为外部用户提供HTTPS安全访问内部服务,核心步骤就两步:配置Ingress路由规则,绑定有效的SSL证书。缺少任何一环都会导致问题——没有路由规则,请求无法送达正确的后端服务;没有证书,浏览器会直接拦截。这套流程本身并不复杂,但操作的顺序和细节确实需要谨慎对待。

换句话说,Ingress与证书未配置到位,HTTPS请求要么转发失败,要么因证书不受信任被浏览器判定为不安全。那么具体该怎么逐步完成?先理清关键判断:确认Ingress控制器运行状态,接着创建证书Secret,最后部署Ingress资源并校验HTTPS链路。按这个节奏推进即可。

验证Ingress Controller是否正常运行

首先执行 kubectl get pods -n ingress-nginx(如果控制器部署在默认命名空间),或者 kubectl get pods -A | grep ingress,检查Ingress控制器的Pod状态是否为Running,且READY列显示1/1。如果输出为空或状态异常,后续操作均无法生效。

这一步绝不能跳过——Ingress资源本身不处理任何流量,所有请求调度完全依赖控制器。控制器未启动,你编写的Ingress YAML即便再完美也是空谈。这是一个常被忽略但至关重要的检查步骤。

创建并注入TLS证书Secret

方式一:使用已有证书文件创建Secret

准备好 tls.crt(公钥证书)和 tls.key(私钥),这两个文件必须配对且无损坏。随后执行命令将证书注入集群:

kubectl create secret tls my-ingress-tls --cert=tls.crt --key=tls.key -n default

有一个常见陷阱:Secret必须与Ingress部署在同一个命名空间,否则Ingress无法引用。假如Ingress位于 prod 命名空间,则需要将 -n default 改为 -n prod

方式二:生成自签名测试证书(仅限开发环境)

运行以下两条命令,一分钟内即可生成有效期365天的自签名证书:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -subj "/CN=example.com" -keyout tls.key -out tls.crt

kubectl create secret tls example-tls --cert=tls.crt --key=tls.key -n default

注意:这种方式仅适用于本地或测试环境,生产环境务必使用正规CA签发的证书。

编写并应用Ingress资源

第一步:创建 ingress.yaml 文件

参考以下模板,将 example.com 替换为你的实际域名,my-service80 替换为后端Service的名称和端口:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web-ingress
annotations:
kubernetes.io/ingress.class: nginx
spec:
tls:
- hosts:
- example.com
secretName: my-ingress-tls
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80

第二步:应用配置

kubectl apply -f ingress.yaml

第三步:验证资源是否创建成功

执行 kubectl get ingress web-ingress -o wide,确认ADDRESS字段有值(例如 192.168.49.2 或云厂商分配的公网IP),且READY状态为True。若ADDRESS为空,说明Ingress尚未绑定到控制器,需返回检查控制器状态。

检验HTTPS访问是否生效

将域名解析指向Ingress控制器的EXTERNAL-IP。该IP可通过 kubectl get svc -n ingress-nginx ingress-nginx-controller 获取。临时测试时也可直接修改本地 /etc/hosts,添加一行:EXTERNAL-IP example.com

随后在浏览器中访问 https://example.com。若页面正常加载且地址栏出现锁形图标,说明SSL证书已生效,整套链路运行正常。

若浏览器提示“您的连接不是私密连接”,请检查证书中的CN或Subject Alternative Name是否包含你的域名。若返回502或503错误,通常是因为后端Service未启动或端口配置有误,需返回确认Service的运行状态。

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策