执行 ingress-nginx.yaml 没有加namespace导致证书问题

今天由于要修改 ingress 配置,修改完yaml文件,使用 kubectl apply -f ingress-nginx.yaml  然后运行,没有加上namespace,然后使用 kubectl apply -f ingress-nginx.yaml -n dev-houchu-0-5...

今天由于要修改 ingress 配置,修改完yaml文件,使用 kubectl apply -f ingress-nginx.yaml  然后运行,没有加上namespace,然后使用 kubectl apply -f ingress-nginx.yaml -n dev-houchu-0-5 重新执行了一遍,然而,访问链接的时候,会报

attachments-2021-04-Bxl8XtFu60802576d6a88,jpg

这是很奇怪的事情,我使用kubectl get ingress/ingress-nginx -n dev-houchu-0-5 -o yaml 然后查看ingress配置文件,没有任何问题,工作也是正常的,翻来覆去折腾,还是报证书问题,查看晚上文章,提示这个报错是因为,ingress fake certificate 是默认证书,如果路径不匹配会报这个

这是预期的行为。默认情况下,入口控制器创建self-signed证书,其中CN表示它是假的证书。当请求与入口中定义的规则不匹配时,使用此选项。因此,当我们从浏览器访问这个URL时,它返回正确的证书,但是openssls_client没有servername字段,它与入口中定义的规则不匹配,转到默认后端并返回self-signed证书。”

既然这样,我直接到看ingress-nginx 看下控制pod生成的nginx配置文件是什么,使用:

kubectl exec nginx-ingress-controller-5nbxr -it -n ingress-nginx /bin/bash


进入后,看到 nginx生成的配置文件 匹配的 namespace 为default,正确为 dev-houchu-0-5 , ingress-nginx如果在默认namespace中生成 ingress-nginx ,既然之后再正确的namespace中重新执行下ingress-nginx 动态生成的配置文件中的namespace也是default,既然知道问题,把default namespace中的ingress-nginx 配置文件删除就可以了

 kubectl delete  ingress ingress-nginx (不加 -n namespace 是指默认namespace),然后重新试下,一切都正常了


  • 发表于 2021-04-21 21:20
  • 阅读 ( 34 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
shitian
shitian

662 篇文章

作家榜 »

  1. shitian 662 文章
  2. 石天 437 文章
  3. 每天惠23 33 文章
  4. 小A 29 文章