<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 使用 kubeconfig 或 token 進行用戶身份認證 在開啟了 TLS 的集群中,每當與集群交互的時候少不了的是身份認證,使用 kubeconfig(即證書) 和 token 兩種認證方式是最簡單也最通用的認證方式,在 dashboard 的登錄功能就可以使用這兩種登錄功能。 下文分兩塊以示例的方式來講解兩種登陸認證方式: - 為 brand 命名空間下的 brand 用戶創建 kubeconfig 文件 - 為集群的管理員(擁有所有命名空間的 amdin 權限)創建 token ### 使用 kubeconfig 如何生成`kubeconfig`文件請參考[創建用戶認證授權的kubeconfig文件](../guide/kubectl-user-authentication-authorization.md)。 > 注意我們生成的 kubeconfig 文件中沒有 token 字段,需要手動添加該字段。 比如我們為 brand namespace 下的 brand 用戶生成了名為 `brand.kubeconfig` 的 kubeconfig 文件,還要再該文件中追加一行 `token` 的配置(如何生成 token 將在下文介紹),如下所示: ![kubeconfig文件](https://box.kancloud.cn/4e5c15c66246aa9e4264b74cf43cf1f9_1798x1168.jpg) 對于訪問 dashboard 時候的使用 kubeconfig 文件如`brand.kubeconfig` 必須追到 `token` 字段,否則認證不會通過。而使用 kubectl 命令時的用的 kubeconfig 文件則不需要包含 `token` 字段。 ### 生成 token 需要創建一個admin用戶并授予admin角色綁定,使用下面的yaml文件創建admin用戶并賦予他管理員權限,然后可以通過token訪問kubernetes,該文件見[admin-role.yaml](https://github.com/rootsongjc/kubernetes-handbook/tree/master/manifests/dashboard-1.7.1/admin-role.yaml)。 #### 生成kubernetes集群最高權限admin用戶的token ```yaml kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: admin annotations: rbac.authorization.kubernetes.io/autoupdate: "true" roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io subjects: - kind: ServiceAccount name: admin namespace: kube-system --- apiVersion: v1 kind: ServiceAccount metadata: name: admin namespace: kube-system labels: kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile ``` 然后執行下面的命令創建 serviceaccount 和角色綁定, ```bash kubectl create -f admin-role.yaml ``` 創建完成后獲取secret中token的值。 ```bash # 獲取admin-token的secret名字 $ kubectl -n kube-system get secret|grep admin-token admin-token-nwphb kubernetes.io/service-account-token 3 6m # 獲取token的值 $ kubectl -n kube-system describe secret admin-token-nwphb Name: admin-token-nwphb Namespace: kube-system Labels: <none> Annotations: kubernetes.io/service-account.name=admin kubernetes.io/service-account.uid=f37bd044-bfb3-11e7-87c0-f4e9d49f8ed0 Type: kubernetes.io/service-account-token Data ==== namespace: 11 bytes token: 非常長的字符串 ca.crt: 1310 bytes ``` 也可以使用 jsonpath 的方式直接獲取 token 的值,如: ```bash kubectl -n kube-system get secret admin-token-nwphb -o jsonpath={.data.token}|base64 -d ``` **注意**:yaml 輸出里的那個 token 值是進行 base64 編碼后的結果,一定要將 kubectl 的輸出中的 token 值進行 `base64` 解碼,在線解碼工具 [base64decode](https://www.base64decode.org/),Linux 和 Mac 有自帶的 `base64` 命令也可以直接使用,輸入 `base64` 是進行編碼,Linux 中`base64 -d` 表示解碼,Mac 中使用 `base64 -D`。 我們使用了 base64 對其重新解碼,因為 secret 都是經過 base64 編碼的,如果直接使用 kubectl 中查看到的 `token` 值會認證失敗,詳見 [secret 配置](../guide/secret-configuration.md)。關于 JSONPath 的使用請參考 [JSONPath 手冊](https://kubernetes.io/docs/user-guide/jsonpath/)。 更簡單的方式是直接使用`kubectl describe`命令獲取token的內容(經過base64解碼之后): ```bash kubectl describe secret admin-token-nwphb ``` #### 為普通用戶生成token 為指定namespace分配該namespace的最高權限,這通常是在為某個用戶(組織或者個人)劃分了namespace之后,需要給該用戶創建token登陸kubernetes dashboard或者調用kubernetes API的時候使用。 每次創建了新的namespace下都會生成一個默認的token,名為`default-token-xxxx`。`default`就相當于該namespace下的一個用戶,可以使用下面的命令給該用戶分配該namespace的管理員權限。 ```bash kubectl create rolebinding $ROLEBINDING_NAME --clusterrole=admin --serviceaccount=$NAMESPACE:default --namespace=$NAMESPACE ``` - `$ROLEBINDING_NAME`必須是該namespace下的唯一的 - `admin`表示用戶該namespace的管理員權限,關于使用`clusterrole`進行更細粒度的權限控制請參考[RBAC——基于角色的訪問控制](../concepts/rbac.md)。 - 我們給默認的serviceaccount `default`分配admin權限,這樣就不要再創建新的serviceaccount,當然你也可以自己創建新的serviceaccount,然后給它admin權限 ## 參考 - [JSONPath 手冊](https://kubernetes.io/docs/user-guide/jsonpath/) - [Kubernetes 中的認證](https://kubernetes.io/docs/admin/authentication/)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看