簡體   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