【问题标题】:Kubernetes - RBAC issue with ingress controllerKubernetes - 入口控制器的 RBAC 问题
【发布时间】:2019-09-01 09:15:00
【问题描述】:

我正在关注Diego Martínez 的教程,其中概述了如何在 K8s 上使用带有 SSL 的入口控制器。一切正常,除了 RBAC 错误:

It seems the cluster it is running with Authorization enabled (like RBAC) and there is no permissions for the ingress controller. Please check the configuration

有谁知道我如何授予此资源的 RBAC 权限?

我在 Google Cloud 上运行,作为参考,下面是入口部署规范

【问题讨论】:

    标签: kubernetes google-cloud-platform kubernetes-ingress rbac nginx-ingress


    【解决方案1】:

    如果您正在部署 nginx-ingress,也许nginx-ingress Helm chart 是一种更简单的方法。

    您可以在启用 RBAC 的集群上的 nginx-ingress 文档安装中关注 the guide

    具体解决您关于添加 RBAC 权限的问题,您需要添加如下内容:

    ---
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: nginx-ingress-serviceaccount
        namespace: ingress-nginx
        labels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
      
      ---
      apiVersion: rbac.authorization.k8s.io/v1beta1
      kind: ClusterRole
      metadata:
        name: nginx-ingress-clusterrole
        labels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
      rules:
        - apiGroups:
            - ""
          resources:
            - configmaps
            - endpoints
            - nodes
            - pods
            - secrets
          verbs:
            - list
            - watch
        - apiGroups:
            - ""
          resources:
            - nodes
          verbs:
            - get
        - apiGroups:
            - ""
          resources:
            - services
          verbs:
            - get
            - list
            - watch
        - apiGroups:
            - "extensions"
          resources:
            - ingresses
          verbs:
            - get
            - list
            - watch
        - apiGroups:
            - ""
          resources:
            - events
          verbs:
            - create
            - patch
        - apiGroups:
            - "extensions"
          resources:
            - ingresses/status
          verbs:
            - update
      
      ---
      apiVersion: rbac.authorization.k8s.io/v1beta1
      kind: Role
      metadata:
        name: nginx-ingress-role
        namespace: ingress-nginx
        labels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
      rules:
        - apiGroups:
            - ""
          resources:
            - configmaps
            - pods
            - secrets
            - namespaces
          verbs:
            - get
        - apiGroups:
            - ""
          resources:
            - configmaps
          resourceNames:
            # Defaults to "<election-id>-<ingress-class>"
            # Here: "<ingress-controller-leader>-<nginx>"
            # This has to be adapted if you change either parameter
            # when launching the nginx-ingress-controller.
            - "ingress-controller-leader-nginx"
          verbs:
            - get
            - update
        - apiGroups:
            - ""
          resources:
            - configmaps
          verbs:
            - create
        - apiGroups:
            - ""
          resources:
            - endpoints
          verbs:
            - get
      
      ---
      apiVersion: rbac.authorization.k8s.io/v1beta1
      kind: RoleBinding
      metadata:
        name: nginx-ingress-role-nisa-binding
        namespace: ingress-nginx
        labels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: Role
        name: nginx-ingress-role
      subjects:
        - kind: ServiceAccount
          name: nginx-ingress-serviceaccount
          namespace: ingress-nginx
      
      ---
      apiVersion: rbac.authorization.k8s.io/v1beta1
      kind: ClusterRoleBinding
      metadata:
        name: nginx-ingress-clusterrole-nisa-binding
        labels:
          app.kubernetes.io/name: ingress-nginx
          app.kubernetes.io/part-of: ingress-nginx
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: ClusterRole
        name: nginx-ingress-clusterrole
      subjects:
        - kind: ServiceAccount
          name: nginx-ingress-serviceaccount
          namespace: ingress-nginx
    

    【讨论】:

      猜你喜欢
      • 2021-01-28
      • 2021-04-17
      • 1970-01-01
      • 2020-02-10
      • 2018-07-22
      • 2018-10-29
      • 2016-10-28
      • 1970-01-01
      • 2020-06-09
      相关资源
      最近更新 更多