采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
NGINX Ingress controller 用的是0.29.0 版本,这个版本已经下载的虚拟机上,提示启动容器失败,查看容器日志,提示没有这个证书,default-fake-certificate.pem
这个证书怎么生成呢?这个路径下没有这个证书,/etc/ingress-controller/ssl/default-fake-certificate.pem:
默认情况下,NGINX Ingress Controller 需要一个 TLS 证书来处理 HTTPS 请求。如果你没有手动指定证书,它会尝试使用 default-fake-certificate.pem,而这个证书可能不存在或未正确创建。✅ 手动创建一个自签名证书,并设置为默认 TLS 证书:
default-fake-certificate.pem
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 的 Deployment 或 ConfigMap,确保它使用这个 Secret:
Deployment
ConfigMap
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"}]'
按照这个思路没有解决,还是报同样得错误,修改了yaml 文件中的: runAsUser: 101 就可以了,为什么?之前是1000,修改成101 就可以了
权限问题 Kubernetes 中 runAsUser 指定了 Pod 内的进程运行用户 ID,默认情况下: 如果 runAsUser: 1000,但容器内没有用户 ID 1000,或者 1000 没有正确的权限,进程可能无法启动或访问所需的资源。 runAsUser: 101 可能对应的是一个已有的用户,并且具有正确的权限,因此可以正常运行。 验证方法: 你可以在容器内执行: id 1000 # 查看 UID 1000 是否存在 id 101 # 查看 UID 101 是否存在 如果 1000 不存在,而 101 存在,并且具备正确权限,那就是权限问题导致的。
登录后可查看更多问答,登录/注册
阿里云最有价值专家亲授,云原生时代必备技能
1.3k 5
1.2k 5
1.1k 2
1.2k 30
1.4k 24
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号