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

问题描述 投票:1回答:2

this中,Kubernetes的文档说:

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

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

我在Google k8群集上创建了我的群集,只有kubectl。

我见过this,但它没有帮助。

kubernetes google-kubernetes-engine
2个回答
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已经使用GK​​E(rbac.authorization.k8s.io)启用,因此您可以开始创建对象。


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

© www.soinside.com 2019 - 2024. All rights reserved.