代码之家  ›  专栏  ›  技术社区  ›  Boas Enkler

k8s gce1.8.7-禁止POD-未知用户系统:serviceaccount:默认值:默认值

  •  1
  • Boas Enkler  · 技术社区  · 8 年前

    我在gce有一个mongo数据库。(配置见下文)

    当我将其部署到 1.7.12-gke。1. 一切正常。这意味着侧车解决了吊舱和链接

    现在,当我将相同的配置部署到 1.8.7-gke。1. 导致缺少列出POD的权限,请参见下文。

    我不明白发生了什么变化。我假设我需要为用户帐户分配特定权限,对吗?

    我错过了什么?

    错误日志

    message: 'pods is forbidden: User "system:serviceaccount:default:default" cannot list pods at the cluster scope: Unknown user "system:serviceaccount:default:default"',
    
    mongo-sidecar | Feb 28, 2018, 11:04:19 AM | status: 'Failure',
    mongo-sidecar | Feb 28, 2018, 11:04:19 AM | metadata: {},
    mongo-sidecar | Feb 28, 2018, 11:04:19 AM | apiVersion: 'v1',
    mongo-sidecar | Feb 28, 2018, 11:04:19 AM | { kind: 'Status',
    mongo-sidecar | Feb 28, 2018, 11:04:19 AM | message:
    mongo-sidecar | Feb 28, 2018, 11:04:19 AM | Error in workloop { [Error: [object Object]]
    mongo-sidecar | Feb 28, 2018, 11:04:14 AM | statusCode: 403 }
    mongo-sidecar | Feb 28, 2018, 11:04:14 AM | code: 403 },
    mongo-sidecar | Feb 28, 2018, 11:04:14 AM | details: { kind: 'pods' },
    mongo-sidecar | Feb 28, 2018, 11:04:14 AM | reason: 'Forbidden',
    

    配置 :

    ---
    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: fast
    provisioner: kubernetes.io/gce-pd
    parameters:
      type: pd-ssd
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: mongo
      labels:
        name: mongo
    spec:
      ports:
      - port: 27017
        targetPort: 27017
      clusterIP: None
      selector:
        role: mongo
    ---
    apiVersion: apps/v1beta1
    kind: StatefulSet
    metadata:
      name: mongo
    spec:
      serviceName: "mongo"
      replicas: 3
      template:
        metadata:
          labels:
            role: mongo
            environment: test
        spec:
          terminationGracePeriodSeconds: 10
          containers:
            - name: mongo
              image: mongo:3.4.9
              command:
                - mongod
                - "--replSet"
                - rs0
                - "--smallfiles"
                - "--noprealloc"
              ports:
                - containerPort: 27017
              volumeMounts:
                - name: mongo-persistent-storage
                  mountPath: /data/db
            - name: mongo-sidecar
              image: cvallance/mongo-k8s-sidecar
              env:
                - name: MONGO_SIDECAR_POD_LABELS
                  value: "role=mongo,environment=test"
      volumeClaimTemplates:
      - metadata:
          name: mongo-persistent-storage
          annotations:
            volume.beta.kubernetes.io/storage-class: "fast"
        spec:
          accessModes: [ "ReadWriteOnce" ]
          resources:
            requests:
    
              storage: 5Gi
    
    1 回复  |  直到 8 年前
        1
  •  12
  •   Maksym Voronytskyi    8 年前

    根据原始解决方案: https://github.com/cvallance/mongo-k8s-sidecar/issues/75

    您必须创建将授予默认服务帐户查看权限的角色绑定:

    apiVersion: rbac.authorization.k8s.io/v1beta1
    kind: ClusterRoleBinding
    metadata:
      name: default-view
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: view
    subjects:
      - kind: ServiceAccount
        name: default
        namespace: default
    
    推荐文章