Kubernetes: Volume persisten RBAC tidak berfungsi dengan ruang nama

Dibuat pada 19 Des 2016  ·  3Komentar  ·  Sumber: kubernetes/kubernetes

LAPORAN BUG

Versi Kubernetes (gunakan kubectl version ): Versi Klien: version.Info{Mayor:"1", Minor:"5", GitVersion:"v1.5.1", GitCommit:"82450d03cb057bab0950214ef122b67c83fb11df", GitTreeState:"clean" , BuildDate:"2016-12-14T00:57:05Z", GoVersion:"go1.7.4", Kompilator:"gc", Platform:"darwin/amd64"}
Versi Server: version.Info{Mayor:"1", Minor:"5+", GitVersion:"v1.5.1-3+10e41f22e4421c", GitCommit:"10e41f22e4421c9a14e9e6782c6375c199a07a86", GitTreeState:"clean", BuildDate:"2016-12 -15T10:06:44Z", GoVersion:"go1.7.4", Kompilator:"gc", Platform:"linux/amd64"}

Lingkungan :

  • Penyedia cloud atau konfigurasi perangkat keras : openstack
  • OS (misalnya dari /etc/os-release): centos7
  • Kernel (misalnya uname -a ): 3.10.0-327.36.3.el7.x86_64

Apa yang terjadi : Kami telah mengaktifkan otentikasi RBAC. Kami memiliki dua ikatan peran yang berbeda:

apiVersion: rbac.authorization.k8s.io/v1alpha1
kind: ClusterRoleBinding
metadata:
  name: cluster-admin-custom
subjects:
- kind: ServiceAccount
  name: default
  namespace: kube-system
- kind: User
  name: kubelet
  namespace: kube-system
- kind: User
  name: clusteradmin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin

dan

apiVersion: rbac.authorization.k8s.io/v1alpha1
kind: RoleBinding
metadata:
  name: default-admin
  namespace: default
subjects:
- kind: ServiceAccount
  name: default
- kind: User
  name: defaultadmin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin

Jadi kami memiliki dua pengguna yang berbeda: clusteradmin, yang memiliki akses ke semua yang ada di kube cluster dan defaultadmin, yang seharusnya memiliki akses ke semua sumber daya di namespace default. Menjalankan perintah PV dengan clusteradmin berfungsi dengan baik, saat menggunakan defaultadmin di namespace default memberikan kesalahan:

kubectl dapatkan pv
Kesalahan dari server (Terlarang): server tidak mengizinkan akses ke sumber daya yang diminta (dapatkan volume persisten)

Kesalahan dari server (Terlarang): kesalahan saat membuat "db-pv.yaml": server tidak mengizinkan akses ke sumber daya yang diminta (post persistentvolumes)

Apa yang Anda harapkan terjadi : defaultadmin harus memiliki akses ke sumber daya PV di namespace yang ditentukan (dalam kasus saya default), karena clusterrole cluster-admin mengatakan berikut:

- apiGroups:
  - '*'
  attributeRestrictions: null
  resources:
  - '*'
  verbs:
  - '*'
- attributeRestrictions: null
  nonResourceURLs:
  - '*'
  verbs:
  - '*'

Yang penting disini adalah resources *, tapi rasanya PV bukan bagian dari wildcard.

Cara memperbanyaknya (seminimal dan setepat mungkin):

  • aktifkan RBAC
  • buat dua pengguna, clusteradmin dan defaultadmin
  • tambahkan clusterrolebinding dan rolebinding yang disebutkan sebelumnya di tiket bug ini
  • jalankan perintah PV di namespace default dengan kedua pengguna

Komentar yang paling membantu

PV adalah objek lingkup cluster. Mereka tidak ada di namespace. Untuk mendapatkan izin menggunakan PV API dengan RBAC, Anda memerlukan ClusterRole yang terikat pada cakupan cluster dengan ClusterRoleBinding .

Semua 3 komentar

Saya mengalami masalah serupa, di mana saya memiliki beberapa ruang nama termasuk dev dan default . Sebagai "pengguna dev" saya dapat membuat banyak sumber daya di ruang nama dev , termasuk PVC, tetapi membuat PV sebagai "pengguna dev" di ruang nama dev menghasilkan hal yang sama kesalahan seperti di atas:

Error from server (Forbidden): error when creating "db-pv.yaml": the server does not allow access to the requested resource (post persistentvolumes)

Saya dapat membuat PV sebagai pengguna admin di ruang nama default , dan kemudian semuanya baik-baik saja.

PV tidak terhubung ke namespace

PV adalah objek lingkup cluster. Mereka tidak ada di namespace. Untuk mendapatkan izin menggunakan PV API dengan RBAC, Anda memerlukan ClusterRole yang terikat pada cakupan cluster dengan ClusterRoleBinding .

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

tyranron picture tyranron  ·  3Komentar

montanaflynn picture montanaflynn  ·  3Komentar

rhohubbuild picture rhohubbuild  ·  3Komentar

sjenning picture sjenning  ·  3Komentar

cooligc picture cooligc  ·  3Komentar