繁体   English   中英

如何在现有的Kubernetes集群上启用RBAC

[英]How to enable RBAC on existing Kubernetes Cluster

Kubernetes在文档中说:

To enable RBAC, start the apiserver with --authorization-mode=RBAC

如何升级现有群集和/或如何查看是否启用了RBAC?

我已经在Google k8集群上创建了集群,并且只有kubectl。

我已经看到了,但是这并没有帮助。

您能否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的我确实有用

Google公共文档介绍了如何在Google Kubernetes Engine群集上使用RBAC 对于运行1.6或1.7的GKE集群,必须使用--no-enable-legacy-authorization标志创建或更新集群。 对于版本1.8或更高版本,默认情况下禁用旧版授权。

您可以使用gcloud容器集群更新[CLUSTER_NAME] --no-enable-legacy-authorization更新集群

RBAC API已通过GKE(rbac.authorization.k8s.io)启用,因此您可以开始创建对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM