在Kubernetes的this文档中说:
To enable RBAC, start the apiserver with --authorization-mode=RBAC
如何升级现有群集和/或如何查看RBAC是否已启用?
我在Google k8群集上创建了我的群集,只有kubectl。
我见过this,但有点没用。
答案 0 :(得分:3)
您是否可以通过SSH连接到主节点/节点并编辑/etc/kubernetes/manifests/kube-apiserver.yaml
您应该在文件>
中看到类似下面的内容command:
- "/hyperkube"
- "apiserver"
- "--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota"
- "--address=0.0.0.0"
- "--allow-privileged"
- "--insecure-port=8080"
- "--secure-port=443"
- "--cloud-provider=azure"
- "--cloud-config=/etc/kubernetes/azure.json"
- "--service-cluster-ip-range=10.0.0.0/16"
- "--etcd-servers=http://127.0.0.1:2379"
- "--etcd-quorum-read=true"
- "--advertise-address=10.240.255.15"
- "--tls-cert-file=/etc/kubernetes/certs/apiserver.crt"
- "--tls-private-key-file=/etc/kubernetes/certs/apiserver.key"
- "--client-ca-file=/etc/kubernetes/certs/ca.crt"
- "--service-account-key-file=/etc/kubernetes/certs/apiserver.key"
- "--storage-backend=etcd2"
- "--v=4"
只需添加--authorization-mode=RBAC
并重启节点即可。
像
这样的东西command:
- "/hyperkube"
- "apiserver"
- "--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota"
- "--address=0.0.0.0"
- "--allow-privileged"
- "--insecure-port=8080"
- "--secure-port=443"
- "--cloud-provider=azure"
- "--cloud-config=/etc/kubernetes/azure.json"
- "--service-cluster-ip-range=10.0.0.0/16"
- "--etcd-servers=http://127.0.0.1:2379"
- "--etcd-quorum-read=true"
- "--advertise-address=10.240.255.15"
- "--tls-cert-file=/etc/kubernetes/certs/apiserver.crt"
- "--tls-private-key-file=/etc/kubernetes/certs/apiserver.key"
- "--client-ca-file=/etc/kubernetes/certs/ca.crt"
- "--service-account-key-file=/etc/kubernetes/certs/apiserver.key"
- "--storage-backend=etcd2"
- "--v=4"
- "--authorization-mode=RBAC"
请注意,这肯定不是官方的方式,但它确实适用于我运行Kubernetes 1.8
答案 1 :(得分:1)
Google公开文档介绍了Google Kubernetes Engine Clusters上的how to use RBAC。对于运行1.6或1.7的GKE群集,必须使用--no-enable-legacy-authorization标志创建或更新群集。对于1.8或更高版本,默认情况下禁用旧版授权。
您可以使用gcloud container clusters update [CLUSTER_NAME] --no-enable-legacy-authorization更新群集。
RBAC API已经使用GKE(rbac.authorization.k8s.io)启用,因此您可以开始创建对象。