2017-08-28 68 views
2

是否有可能有限制 Kubernetes仪表板?这个想法是有集群中运行kubectl proxy吊舱(与基本的HTTP验证保护)获得的状态的快速浏览:豆荚 受限制的Kubernetes仪表板?

  • 正在运行的服务和豆荚
  • 当前的

    • 日志输出CPU /内存使用率

    不过,我确实不希望用户能够做到“特权”的行为,如创建新的吊舱,吊舱删除或访问机密。

    是否有一些选项可以使用指定用户或限制权限启动仪表板?

  • 回答

    2

    应该可以在启用了RBAC的kubernetes中使用。 您无需运行kubectl proxy的吊舱。 我不确定是否可以为同一个窗格拥有2组不同的权限,但最糟糕的情况是您必须运行2个仪表板。

    基本上,你需要做的是:在集群

    1

    根据lwolf的回答,我使用了the kubernetes-dashboard.yaml并将其更改为在默认名称空间中的从属设备上运行。

    重要的变化是kind: ClusterRole, name: view部分,该部分将视图角色分配给仪表板用户。

    apiVersion: v1 
    kind: ServiceAccount 
    metadata: 
        labels: 
        k8s-app: kubernetes-dashboard 
        name: ro-dashboard 
    --- 
    apiVersion: rbac.authorization.k8s.io/v1beta1 
    kind: ClusterRoleBinding 
    metadata: 
        name: ro-dashboard 
        labels: 
        k8s-app: kubernetes-dashboard 
    roleRef: 
        apiGroup: rbac.authorization.k8s.io 
        kind: ClusterRole 
        name: view 
    subjects: 
    - kind: ServiceAccount 
        name: ro-dashboard 
        apiGroup: '' 
        namespace: default 
    --- 
    kind: Deployment 
    apiVersion: extensions/v1beta1 
    metadata: 
        labels: 
        k8s-app: kubernetes-dashboard 
        name: ro-dashboard 
    spec: 
        replicas: 1 
        revisionHistoryLimit: 0 
        selector: 
        matchLabels: 
         k8s-app: kubernetes-dashboard 
        template: 
        metadata: 
         labels: 
         k8s-app: kubernetes-dashboard 
        spec: 
         containers: 
         - name: kubernetes-dashboard 
         image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.6.3 
         ports: 
         - containerPort: 9090 
          protocol: TCP 
         livenessProbe: 
          httpGet: 
          path:/
          port: 9090 
          initialDelaySeconds: 30 
          timeoutSeconds: 30 
         serviceAccountName: ro-dashboard 
    --- 
    kind: Service 
    apiVersion: v1 
    metadata: 
        labels: 
        k8s-app: kubernetes-dashboard 
        name: ro-dashboard 
    spec: 
        type: LoadBalancer 
        ports: 
        - port: 80 
        targetPort: 9090 
        selector: 
        k8s-app: kubernetes-dashboard 
    
    +0

    我认为这将不再适用,因为仪表板还需要创建一些秘密 – VsMaX