请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

nginx-ingress-controller pod 失败

NGINX Ingress controller 用的是0.29.0 版本,这个版本已经下载的虚拟机上,提示启动容器失败,查看容器日志,提示没有这个证书,default-fake-certificate.pem
图片描述

这个证书怎么生成呢?这个路径下没有这个证书,/etc/ingress-controller/ssl/default-fake-certificate.pem:

正在回答 回答被采纳积分+3

插入代码

1回答

清风 2025-01-31 11:22:09

1. 让 Ingress 使用一个有效的 TLS 证书

默认情况下,NGINX Ingress Controller 需要一个 TLS 证书来处理 HTTPS 请求。如果你没有手动指定证书,它会尝试使用 default-fake-certificate.pem,而这个证书可能不存在或未正确创建。
手动创建一个自签名证书,并设置为默认 TLS 证书

sh复制编辑openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  -keyout tls.key -out tls.crt -subj "/CN=default-fake-certificate"

创建 Kubernetes Secret:

sh复制编辑kubectl create secret tls default-fake-certificate \
  --key tls.key --cert tls.crt -n ingress-nginx

然后更新 NGINX Ingress Controller 的 DeploymentConfigMap,确保它使用这个 Secret:

sh复制编辑kubectl patch deployment nginx-ingress-controller \
  -n ingress-nginx \
  --type='json' -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value":"--default-ssl-certificate=ingress-nginx/default-fake-certificate"}]'


0 回复 有任何疑惑可以回复我~
  • 提问者 慕侠2486442 #1
    按照这个思路没有解决,还是报同样得错误,修改了yaml 文件中的:  runAsUser: 101   就可以了,为什么?之前是1000,修改成101 就可以了
    回复 有任何疑惑可以回复我~ 2025-02-01 11:46:03
  • 清风 回复 提问者 慕侠2486442 #2
    权限问题
    Kubernetes 中 runAsUser 指定了 Pod 内的进程运行用户 ID,默认情况下:
    
    如果 runAsUser: 1000,但容器内没有用户 ID 1000,或者 1000 没有正确的权限,进程可能无法启动或访问所需的资源。
    runAsUser: 101 可能对应的是一个已有的用户,并且具有正确的权限,因此可以正常运行。
    验证方法: 你可以在容器内执行:
    
    
    id 1000  # 查看 UID 1000 是否存在
    id 101   # 查看 UID 101 是否存在
    如果 1000 不存在,而 101 存在,并且具备正确权限,那就是权限问题导致的。
    回复 有任何疑惑可以回复我~ 2025-02-07 10:23:17
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号