Nginx Ingress Controller – 创建inClusterConfig时出错

57次阅读
没有评论

问题描述

在尝试在Kubernetes集群上使用Nginx控制器时遇到了问题。他想要使用NLB版本的配置文件。问题是ingress-nginx-admission-createingress-nginx-admission-patch作业立即失败,并且没有创建ingress-nginx-admission密钥,而部署需要该密钥来挂载证书和密钥。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据用户的回答,问题可能是由于缺少automountServiceAccountToken配置导致的。在两个作业和部署的Pod规范中添加automountServiceAccountToken: true即可解决问题。
以下是解决方案的步骤:
1. 打开ingress-nginx-admission-createingress-nginx-admission-patch作业的配置文件。
2. 在Pod规范中找到spec部分。
3. 在spec部分中添加automountServiceAccountToken: true配置。
4. 保存并应用配置文件。
下面是一个示例配置文件的片段:

apiVersion: batch/v1
kind: Job
metadata:
  name: ingress-nginx-admission-create
spec:
  template:
    spec:
      automountServiceAccountToken: true
      # 其他配置
---
apiVersion: batch/v1
kind: Job
metadata:
  name: ingress-nginx-admission-patch
spec:
  template:
    spec:
      automountServiceAccountToken: true
      # 其他配置
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ingress-nginx-controller
spec:
  template:
    spec:
      automountServiceAccountToken: true
      # 其他配置

在上面的示例中,我们在ingress-nginx-admission-createingress-nginx-admission-patch作业以及ingress-nginx-controller部署的Pod规范中添加了automountServiceAccountToken: true配置。这将确保Pod能够自动挂载ServiceAccount的令牌,解决了密钥创建失败的问题。
请注意,根据用户的回答,将automountServiceAccountToken: true配置添加到部署的Pod规范中可能是不必要的,但为了确保问题解决,建议也添加到部署的Pod规范中。

方案2

如果方案1无法解决问题,请参考提供的链接查看其他可能的解决方案。
如果方案1无法解决问题,你可以参考提供的链接,查看其他可能的解决方案。链接中的讨论可能包含与你遇到的问题类似的情况,并提供了其他解决方案。
请注意,方案2仅作为备选方案,建议首先尝试方案1。

正文完