我完全像this_tutorial一样部署nginx入口控制器。用于部署入口控制器和描述输出的yaml文件已复制到repo。
创建入口控制器后,pod正在运行,但是在入口控制器日志中看到以下错误。该错误表明serviceaccount“ nginx”无权在名称空间“ ingress”中创建资源“ configmaps”。
我有问题
可以从this_file访问E1115 15:05:49.678247 7 Leaderelection.go:228]最初出现错误 创建领导者选举记录:禁止configmaps:用户 “ system:serviceaccount:ingress:nginx”无法创建资源 名称空间“ ingress”中API组“”中的“ configmaps”
(被截断)
I1115 15:05:49.742498 7 controller.go:220]入口后端 已成功重新加载... E1115 15:06:03.379102 7 Leaderelection.go:228]最初创建领导者选举时出错 记录:configmaps被禁止:用户 “ system:serviceaccount:ingress:nginx”无法创建资源 名称空间“ ingress”中API组“”中的“ configmaps”
详细的kubectl日志。
[编辑]
root@desktop:~/github/# kubectl get -n ingress all
NAME READY STATUS RESTARTS AGE
pod/default-backend-7fcd7954d6-gdmvt 1/1 Running 0 3d14h
pod/default-backend-7fcd7954d6-hf65b 1/1 Running 0 3d14h
pod/nginx-ingress-controller-65bfcb57ff-9nz88 1/1 Running 0 2d22h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/default-backend ClusterIP 10.100.x.y <none> 80/TCP 3d14h
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
deployment.apps/default-backend 2 2 2 2 3d14h
deployment.apps/nginx-ingress-controller 1 1 1 1 2d22h
NAME DESIRED CURRENT READY AGE
replicaset.apps/default-backend-7fcd7954d6 2 2 2 3d14h
replicaset.apps/nginx-ingress-controller-65bfcb57ff 1 1 1 2d22h
root@desktop:~/github# kubectl get -n ingress configmap
NAME DATA AGE
nginx-ingress-controller-conf 1 3d14h
答案 0 :(得分:1)
似乎没有授予nginx
服务帐户在名称空间中创建configmap资源的权限。
看看这个role definition和role binding文件。进行必要的调整后应用它们,例如服务帐户名(从nginx-ingress-serviceaccount
到nginx
)。
Deployment配置具有以下参数:--configmap=\$(POD_NAMESPACE)/nginx-ingress-controller-conf
。根据nginx入口控制器documentation,这是“ ...包含该控制器的自定义全局配置的ConfigMap的名称。”