登入

本頁面說明如何在 Google Distributed Cloud (GDC) 實體隔離方案中,存取及管理工作負載和資源。說明如何驗證、為可用區和全域資源產生 kubeconfig 檔案,以及管理工作階段閒置狀態。瞭解這些程序,可確保安全可靠地存取專案和工作負載。

本頁面適用於平台管理員群組 (例如 IT 管理員) 或應用程式操作員群組 (例如應用程式開發人員) 中,想要使用 GDC 資源的對象。詳情請參閱「GDC 實體隔離方案說明文件的目標對象」。

您可以使用 GDC 控制台、gdcloud CLI 或 kubectl CLI 存取工作負載。

驗證帳戶以取得存取權

如要登入 GDC 控制台或叢集,請按照下列步驟操作:

控制台

在新的瀏覽器分頁開啟下列網址,存取 Distributed Cloud 使用者介面 (UI):

https://GDC_URL

將 GDC_URL 替換為您用來存取 Distributed Cloud 的網域名稱,該網域由基礎架構運作人員 (IO) 提供。首次開啟任何網址時,如果基礎架構運作人員 (IO) 已設定頁面,Distributed Cloud 會將您重新導向至識別資訊提供者登入頁面。

舉例來說,下圖顯示登入名為 org-1 的組織控制台 UI:

控制台 UI 顯示 org-1 專案的歡迎畫面。

gdcloud

登入 gdcloud CLI 時,請使用 gdcloud auth login 指令,向 gdcloud CLI 驗證主體。gdcloud CLI 會使用該主體進行驗證和授權,以管理 Google Cloud 資源和服務。

登入前,請務必先執行下列工作:

  • 下載 gdcloud CLI 二進位檔,並安裝到系統中。詳情請參閱「下載 gdcloud CLI」。
  • 設定並初始化 gdcloud CLI 預設設定。請務必設定正確的組織網址,用於擷取登入設定端點。詳情請參閱「安裝 gdcloud CLI」。
  • 安裝 kubectl CLI。
  • 安裝驗證外掛程式 gdcloud-k8s-auth-plugin。詳情請參閱「gdcloud CLI 驗證」。

如要登入 Management API 伺服器或 Kubernetes 叢集,請完成下列步驟:

  • Management API 伺服器:
  1. 匯出要儲存 Management API 伺服器 kubeconfig 檔案的路徑:

    export KUBECONFIG=MANAGEMENT_API_SERVER
    

    將 MANAGEMENT_API_SERVER 替換為 kubeconfig 檔案儲存位置的目錄路徑。

  2. 驗證 gdcloud CLI 執行個體,以便登入。驗證方式有兩種:

    • 標準瀏覽器登入:從瀏覽器登入時,請使用這個驗證流程。

      gdcloud auth login
      
    • 次要裝置登入:如果主要裝置沒有可用的瀏覽器,請使用這個驗證流程。這個流程會先在沒有瀏覽器存取權的主要裝置上啟動登入程序,然後在具有瀏覽器存取權的次要裝置上繼續登入。

      在沒有瀏覽器的主要裝置上登入:

      gdcloud auth login --no-browser
      

      KUBECONFIG 環境變數會更新,納入組織中所有 API 伺服器和叢集的 kubeconfig 檔案。如果未設定 KUBECONFIG 變數,kubectl CLI 會使用儲存在 $HOME/.kube/config 的預設 kubeconfig 檔案。

      如要略過編輯 kubeconfig 檔案,請在指令中加入 --skip-kubeconfig-update 旗標。例如:

      gdcloud auth login --no-browser --skip-kubeconfig-update
      

      複製輸出的 gdcloud CLI 指令,並在可存取瀏覽器的機器上執行。

  3. 按照網頁上的指示完成登入程序。

    成功登入後,瀏覽器會顯示「Authentication successful. 請關閉這個視窗。

  4. 按照終端機上的指示操作。成功登入後,終端機會顯示「You are now logged in」(您已登入) 訊息。

  • Kubernetes 叢集:
  1. 驗證 gdcloud CLI 執行個體,以便登入。驗證方式有兩種:

    • 標準瀏覽器登入:從瀏覽器登入時,請使用這個驗證流程。

      gdcloud auth login
      
    • 次要裝置登入:如果主要裝置沒有可用的瀏覽器,請使用這個驗證流程。這個流程會先在沒有瀏覽器存取權的主要裝置上啟動登入程序,然後在具有瀏覽器存取權的次要裝置上繼續登入。

      1. 在沒有瀏覽器的主要裝置上登入:

        gdcloud auth login --no-browser
        

        主要裝置中的指令會輸出另一個 gdcloud 指令,您必須在步驟 c 中,於次要裝置上執行該指令。

      2. 重複步驟 1,在次要裝置下載憑證。

      3. 輸入步驟 a 中主要裝置顯示的指令,在次要裝置上完成登入。

    這項操作會開啟瀏覽器,登入已設定的識別資訊提供者 (IdP)。提供您在初始 gdcloud CLI 設定期間設定的使用者和密碼,即可登入。

  2. 將使用者身分 kubeconfig 檔案匯出為變數:

    export KUBECONFIG=/tmp/CLUSTER_NAME-ZONE-kubeconfig-with-user-identity.yaml
    
  3. 使用使用者身分,為可用區叢集產生 kubeconfig 檔案:

    gdcloud clusters get-credentials CLUSTER_NAME --zone ZONE
    

    將 ZONE 替換為區域名稱。

    系統會使用您的使用者身分產生 kubeconfig 檔案。以下 YAML 檔案為範例:

    apiVersion: v1
    clusters:
    - cluster:
      certificate-authority-data: <REDACTED>
      server: https://10.200.0.32:443
    name: cluster-name
    contexts:
    - context:
      cluster: cluster-name
      user: cluster-name-anthos-default-user
    name: cluster-name-cluster-name-anthos-default-user
    current-context: cluster-name-cluster-name-anthos-default-user
    kind: Config
    preferences: {}
    users:
    - name: cluster-name-anthos-default-user
    user:
      exec:
        apiVersion: client.authentication.k8s.io/v1
        args:
        - --audience=root-admin
        command: gdcloud-k8s-auth-plugin
        env: null
        installHint: Run 'gdcloud components install gdcloud-k8s-auth-plugin' to use plugin
        interactiveMode: Never
        provideClusterInfo: false
    
  4. 如要確認您是否能存取叢集,請使用產生的 kubeconfig 檔案,以使用者身分登入:

    kubectl --kubeconfig /tmp/admin-kubeconfig-with-user-identity.yaml version
    

登出

如要登出 GDC 控制台,請按照下列步驟操作:

控制台

按一下選單列中的「 登出」。

gdcloud

從 CLI 登出:

gdcloud auth revoke

手動產生 kubeconfig 檔案

如果您是透過直接呼叫 KRM API 的方式,使用 kubectl CLI 管理資源,則必須為託管資源的叢集或 API 伺服器產生 kubeconfig 檔案,具體取決於您管理的資源類型。

您也必須瞭解 GDC universe 設定,才能決定要將可用區資源部署至哪些可用區,或全域資源的全域 API 伺服器。詳情請參閱「全域和可用區 API 伺服器」。

判斷您要操作的資源是全域資源還是可用區資源。如果不確定,請參閱資源的專屬說明文件。

根據資源類型完成適用的設定。

可用區 Management API 伺服器資源

請完成下列步驟,為可用區 Management API 伺服器產生 kubeconfig 檔案:

  1. 查看所有可用區:

    gdcloud zones list
    

    記下託管自訂資源的區域名稱。

  2. 將 ZONE 環境變數設為託管可用區資源的可用區:

    export ZONE="ZONE"
    

    將 ZONE 替換為區域名稱。

  3. 設定 MANAGEMENT_API_SERVER 環境變數:

    export MANAGEMENT_API_SERVER="ORG_NAME-admin"
    

    將 ORG_NAME 替換為貴組織的名稱,例如 org-1。

  4. 為目標可用區產生 Management API 伺服器 kubeconfig 檔案,並驗證憑證:

    export KUBECONFIG=${HOME}/${MANAGEMENT_API_SERVER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${MANAGEMENT_API_SERVER:?} --zone ${ZONE:?}
    [[ $(kubectl config current-context) == *${MANAGEMENT_API_SERVER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    rm ${KUBECONFIG:?} 指令會移除主目錄中現有的 kubeconfig 檔案。產生新的 kubeconfig 檔案時,會覆寫現有檔案。如果不想覆寫或移除現有檔案,請將檔案備份到其他安全位置。

可用區 Kubernetes 叢集資源

請完成下列步驟,為可用區 Kubernetes 叢集產生 kubeconfig 檔案:

  1. 查看所有可用區:

    gdcloud zones list
    

    記下託管自訂資源的區域名稱。

  2. 將 ZONE 環境變數設為託管 Kubernetes 叢集的可用區:

    export ZONE="ZONE"
    

    將 ZONE 替換為區域名稱。

  3. 設定 KUBERNETES_CLUSTER 環境變數:

    export KUBERNETES_CLUSTER="KUBERNETES_CLUSTER_NAME"
    

    將 KUBERNETES_CLUSTER_NAME 替換為 Kubernetes 叢集名稱。

  4. 為目標可用區變數生成 Kubernetes 叢集 kubeconfig 檔案,並驗證憑證:

    export KUBECONFIG=${HOME}/${KUBERNETES_CLUSTER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${KUBERNETES_CLUSTER:?} --zone ${ZONE:?}
    [[ $(kubectl config current-context) == *${KUBERNETES_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    rm ${KUBECONFIG:?} 指令會移除主目錄中現有的 kubeconfig 檔案。產生新的 kubeconfig 檔案時,會覆寫現有檔案。如果不想覆寫或移除現有檔案,請將檔案備份到其他安全位置。

全域 API 伺服器資源

請完成下列步驟,為全域 API 伺服器產生 kubeconfig 檔案:

  1. 設定 GLOBAL_API_SERVER 環境變數:

    export GLOBAL_API_SERVER="global-api"
    
  2. 產生全域 API 伺服器 kubeconfig 檔案,並驗證憑證:

    export KUBECONFIG=${HOME}/${GLOBAL_API_SERVER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${GLOBAL_API_SERVER:?}
    [[ $(kubectl config current-context) == *${GLOBAL_API_SERVER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    rm ${KUBECONFIG:?} 指令會移除主目錄中現有的 kubeconfig 檔案。產生新的 kubeconfig 檔案時,會覆寫現有檔案。如果不想覆寫或移除現有檔案,請將檔案備份到其他安全位置。

工作階段閒置登出

如果工作階段閒置超過十五分鐘,GDC 控制台和 gdcloud CLI 會將您登出。Distributed Cloud 會將工作階段閒置狀態,視為開啟工作階段期間,您沒有主動參與,例如沒有游標或鍵盤移動。如果使用者持續活動,工作階段最長可達 12 小時。

控制台

如果工作階段閒置,GDC 控制台會將您登出。在 GDC 控制台因閒置而將您登出前兩分鐘,系統會顯示對話方塊,提醒您即將登出:

控制台使用者介面顯示對話方塊,其中有 99 秒的計時器,倒數完畢後,系統會將閒置的使用者登出。

因閒置而登出後,您會看到以下畫面:

控制台使用者介面顯示登入畫面,橫幅包含工作階段登出文字:「系統已將您登出,因為工作階段閒置過久。請重新登入,或向管理員尋求協助。

如要重新登入 GDC 控制台,請選取識別資訊提供者,並新增登入憑證。如果您使用監控資訊主頁等服務,而 GDC 控制台因閒置而將您登出,請重新登入以取得存取權。

gdcloud

如果工作階段閒置,gdcloud CLI 會將您登出。gdcloud CLI 將您登出後,如果您嘗試執行指令,會收到授權錯誤:

Error: error when creating kube client: unable to create k8sclient: Unauthorized

如要重新登入 GDC,請按照「登入」中的 CLI 步驟操作。

如果您透過 Management API 伺服器重新登入 GDC,kubeconfig 檔案會自動更新。如要避免 kubeconfig 檔案更新,請在 gdcloud auth login 指令中使用 --skip-kubeconfig-update 旗標。

kubectl

如果工作階段閒置,gdcloud CLI 會將 kubeconfig 檔案設為過期。如果在閒置後嘗試執行 kubectl 指令,會收到授權錯誤訊息:

error: You must be logged in to the server (Unauthorized)

如要重新登入並使用 kubeconfig 檔案,請按照「登入」中的 CLI 步驟操作。每次工作階段逾時,都必須重新產生 kubeconfig 檔案。

監控登入和新使用者活動

登入等活動會匯出為稽核記錄。如要進一步瞭解如何查看稽核記錄,請參閱「稽核記錄」。