登入專案

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

本頁面適用於平台管理員群組 (例如 IT 管理員) 或應用程式運算子群組 (例如應用程式開發人員) 中的目標對象,他們想要使用 GDC 資源。詳情請參閱 GDC air-gapped 說明文件適用對象

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

驗證帳戶以取得存取權

如要登入 GDC 控制台或叢集,請完成下列步驟:

控制台

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

https://GDC_URL

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

舉例來說,下圖會登入名為「org-1」的機構的控制台使用者介面:

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

CLI

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

登入前,請務必完成下列事項:

  • 下載 gdcloud CLI 二進位檔,並安裝在系統中。 詳情請參閱「下載 gdcloud CLI」。
  • 設定並初始化 gdcloud CLI 預設設定。請務必設定正確的機構網址,這個網址用於擷取登入設定端點。詳情請參閱 gcloud 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. 驗證 gcloud 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. 按照網頁上的操作說明完成登入程序。

    登入完成後,瀏覽器會顯示「驗證成功。請關閉這個視窗

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

  • Kubernetes 叢集
  1. 驗證 gcloud 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 替換為區域名稱。

    gdcloud clusters get-credentials global-api

    系統會使用您的使用者身分產生 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 控制台,請按照下列步驟操作:

控制台

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

CLI

登出 CLI:

gdcloud auth revoke

手動產生 kubeconfig 檔案

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

您也必須瞭解 GDC 宇宙設定,判斷要將區域資源部署至哪些區域,或是全域資源的全域 API 伺服器。詳情請參閱「全球和區域 API 伺服器」。

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

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

可用區管理 API 伺服器資源

請完成下列步驟,為區域管理 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 檔案時,系統會覆寫現有檔案。如果不想覆寫或移除現有檔案,請將檔案備份到其他安全位置。

工作階段閒置時登出

如果工作階段閒置超過 15 分鐘,GDC 控制台和 gdcloud CLI 會將您登出。Distributed Cloud 會將工作階段閒置視為一段時間,您在開啟工作階段期間沒有任何活動,例如沒有游標或鍵盤移動。如果使用者有活動,有效工作階段最多可持續十二小時。

控制台

如果工作階段閒置過久,GDC 控制台會將您登出。如果 GDC 控制台因閒置而即將登出,您會在登出前兩分鐘收到警告對話方塊:

控制台 UI 顯示對話方塊,指出使用者閒置 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 檔案。