<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Service Account Service Account為Pod中的進程提供身份信息。 **注意**:**本文是關于 Service Account 的用戶指南,管理指南另見 Service Account 的集群管理指南 。** > 本文檔描述的關于 Service Account 的行為只有當您按照 Kubernetes 項目建議的方式搭建起集群的情況下才有效。您的集群管理員可能在您的集群中有自定義配置,這種情況下該文檔可能并不適用。 當您(真人用戶)訪問集群(例如使用`kubectl`命令)時,apiserver 會將您認證為一個特定的 User Account(目前通常是`admin`,除非您的系統管理員自定義了集群配置)。Pod 容器中的進程也可以與 apiserver 聯系。 當它們在聯系 apiserver 的時候,它們會被認證為一個特定的 Service Account(例如`default`)。 ## 使用默認的 Service Account 訪問 API server 當您創建 pod 的時候,如果您沒有指定一個 service account,系統會自動得在與該pod 相同的 namespace 下為其指派一個`default` service account。如果您獲取剛創建的 pod 的原始 json 或 yaml 信息(例如使用`kubectl get pods/podename -o yaml`命令),您將看到`spec.serviceAccountName`字段已經被設置為 `default`。 您可以在 pod 中使用自動掛載的 service account 憑證來訪問 API,如 [Accessing the Cluster](https://kubernetes.io/docs/user-guide/accessing-the-cluster/#accessing-the-api-from-a-pod) 中所描述。 Service account 是否能夠取得訪問 API 的許可取決于您使用的 [授權插件和策略](https://kubernetes.io/docs/admin/authorization/#a-quick-note-on-service-accounts)。 在 1.6 以上版本中,您可以選擇取消為 service account 自動掛載 API 憑證,只需在 service account 中設置 `automountServiceAccountToken: false`: ```yaml apiVersion: v1 kind: ServiceAccount metadata: name: build-robot automountServiceAccountToken: false ... ``` 在 1.6 以上版本中,您也可以選擇只取消單個 pod 的 API 憑證自動掛載: ```yaml apiVersion: v1 kind: Pod metadata: name: my-pod spec: serviceAccountName: build-robot automountServiceAccountToken: false ... ``` 如果在 pod 和 service account 中同時設置了 `automountServiceAccountToken` , pod 設置中的優先級更高。 ## 使用多個Service Account 每個 namespace 中都有一個默認的叫做 `default` 的 service account 資源。 您可以使用以下命令列出 namespace 下的所有 serviceAccount 資源。 ```bash $ kubectl get serviceAccounts NAME SECRETS AGE default 1 1d ``` 您可以像這樣創建一個 ServiceAccount 對象: ```bash $ cat > /tmp/serviceaccount.yaml <<EOF apiVersion: v1 kind: ServiceAccount metadata: name: build-robot EOF $ kubectl create -f /tmp/serviceaccount.yaml serviceaccount "build-robot" created ``` 如果您看到如下的 service account 對象的完整輸出信息: ```bash $ kubectl get serviceaccounts/build-robot -o yaml apiVersion: v1 kind: ServiceAccount metadata: creationTimestamp: 2015-06-16T00:12:59Z name: build-robot namespace: default resourceVersion: "272500" selfLink: /api/v1/namespaces/default/serviceaccounts/build-robot uid: 721ab723-13bc-11e5-aec2-42010af0021e secrets: - name: build-robot-token-bvbk5 ``` 然后您將看到有一個 token 已經被自動創建,并被 service account 引用。 您可以使用授權插件來 [設置 service account 的權限](https://kubernetes.io/docs/admin/authorization/#a-quick-note-on-service-accounts) 。 設置非默認的 service account,只需要在 pod 的`spec.serviceAccountName` 字段中將name設置為您想要用的 service account 名字即可。 在 pod 創建之初 service account 就必須已經存在,否則創建將被拒絕。 您不能更新已創建的 pod 的 service account。 您可以清理 service account,如下所示: ```bash $ kubectl delete serviceaccount/build-robot ``` ## 手動創建 service account 的 API token 假設我們已經有了一個如上文提到的名為 ”build-robot“ 的 service account,我們手動創建一個新的 secret。 ```bash $ cat > /tmp/build-robot-secret.yaml <<EOF apiVersion: v1 kind: Secret metadata: name: build-robot-secret annotations: kubernetes.io/service-account.name: build-robot type: kubernetes.io/service-account-token EOF $ kubectl create -f /tmp/build-robot-secret.yaml secret "build-robot-secret" created ``` 現在您可以確認下新創建的 secret 取代了 “build-robot” 這個 service account 原來的 API token。 所有已不存在的 service account 的 token 將被 token controller 清理掉。 ```bash $ kubectl describe secrets/build-robot-secret Name: build-robot-secret Namespace: default Labels: <none> Annotations: kubernetes.io/service-account.name=build-robot,kubernetes.io/service-account.uid=870ef2a5-35cf-11e5-8d06-005056b45392 Type: kubernetes.io/service-account-token Data ==== ca.crt: 1220 bytes token: ... namespace: 7 bytes ``` > **注意**:該內容中的`token`被省略了。 ## 為 service account 添加 ImagePullSecret 首先,創建一個 imagePullSecret,詳見[這里](https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod)。 然后,確認已創建。如: ```bash $ kubectl get secrets myregistrykey NAME TYPE DATA AGE myregistrykey kubernetes.io/.dockerconfigjson 1 1d ``` 然后,修改 namespace 中的默認 service account 使用該 secret 作為 imagePullSecret。 ```bash kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "myregistrykey"}]}' ``` Vi 交互過程中需要手動編輯: ```bash $ kubectl get serviceaccounts default -o yaml > ./sa.yaml $ cat sa.yaml apiVersion: v1 kind: ServiceAccount metadata: creationTimestamp: 2015-08-07T22:02:39Z name: default namespace: default resourceVersion: "243024" selfLink: /api/v1/namespaces/default/serviceaccounts/default uid: 052fb0f4-3d50-11e5-b066-42010af0d7b6 secrets: - name: default-token-uudge $ vi sa.yaml [editor session not shown] [delete line with key "resourceVersion"] [add lines with "imagePullSecret:"] $ cat sa.yaml apiVersion: v1 kind: ServiceAccount metadata: creationTimestamp: 2015-08-07T22:02:39Z name: default namespace: default selfLink: /api/v1/namespaces/default/serviceaccounts/default uid: 052fb0f4-3d50-11e5-b066-42010af0d7b6 secrets: - name: default-token-uudge imagePullSecrets: - name: myregistrykey $ kubectl replace serviceaccount default -f ./sa.yaml serviceaccounts/default ``` 現在,所有當前 namespace 中新創建的 pod 的 spec 中都會增加如下內容: ```yaml spec: imagePullSecrets: - name: myregistrykey ``` ## 參考 - [Configure Service Accounts for Pods](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/)
                  <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>

                              哎呀哎呀视频在线观看