nginx-ingress-controller pod 失败

来源:6-6 ingress实践

慕侠2486442

2025-01-27

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

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

写回答

1回答

清风

2025-01-31

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
2
清风
回复
慕侠2486442
权限问题 Kubernetes 中 runAsUser 指定了 Pod 内的进程运行用户 ID,默认情况下: 如果 runAsUser: 1000,但容器内没有用户 ID 1000,或者 1000 没有正确的权限,进程可能无法启动或访问所需的资源。 runAsUser: 101 可能对应的是一个已有的用户,并且具有正确的权限,因此可以正常运行。 验证方法: 你可以在容器内执行: id 1000 # 查看 UID 1000 是否存在 id 101 # 查看 UID 101 是否存在 如果 1000 不存在,而 101 存在,并且具备正确权限,那就是权限问题导致的。
2025-02-07
共2条回复

Kubernetes 入门到进阶实战,系统性掌握 K8s 生产实践

阿里云最有价值专家亲授,云原生时代必备技能

1501 学习 · 613 问题

查看课程