在 Google Kubernetes Engine 上執行 Django

GKE 上執行的 Django 應用程式會根據流量動態調整規模。

本教學課程假設您已熟悉 Django 網路開發流程,如果您是 Django 開發新手,建議先完成編寫第一個 Django 應用程式,再繼續進行後續步驟。

本教學課程以 Django 為例,但您也可以將這個部署程序用於其他以 Django 為基礎的架構,例如 WagtailDjango CMS

本教學課程使用 Django 5,至少需要 Python 3.10

另外您也必須安裝 Docker

目標

在這個教學課程中,您將執行下列操作:

  • 建立並連線至 Cloud SQL 資料庫。
  • 建立及使用 Kubernetes 密鑰值。
  • 將 Django 應用程式部署至 Google Kubernetes Engine。

費用

在本文件中,您會使用下列 Google Cloud的計費元件:

如要根據預測用量估算費用,請使用 Pricing Calculator

初次使用 Google Cloud 的使用者可能符合免費試用期資格。

事前準備

  1. 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud SQL, GKE and Compute Engine APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. 安裝 gcloud CLI

  6. 若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  7. 執行下列指令,初始化 gcloud CLI:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Cloud SQL, GKE and Compute Engine APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. 安裝 gcloud CLI

  12. 若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  13. 執行下列指令,初始化 gcloud CLI:

    gcloud init

準備環境

複製範例應用程式

Django 範例應用程式的程式碼位於 GitHub 的 GoogleCloudPlatform/python-docs-samples 存放區。

  1. 您可以下載範例的 ZIP 檔案並解壓縮,也可以將存放區複製到本機電腦:

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
    
  2. 前往包含程式碼範例的目錄:

    Linux/macOS

    cd python-docs-samples/kubernetes_engine/django_tutorial
    

    Windows

    cd python-docs-samples\kubernetes_engine\django_tutorial
    

確認 Python 設定

本教學課程會使用 Python 在您的電腦上執行範例應用程式。範例程式碼也需要安裝依附元件

詳情請參閱 Python 開發環境指南

  1. 確認 Python 版本至少為 3.10。

     python -V
    

    你應該會看到 Python 3.10.0 以上版本。

  2. 建立 Python 虛擬環境並安裝依附元件:

    Linux/macOS

    python -m venv venv
    source venv/bin/activate
    pip install --upgrade pip
    pip install -r requirements.txt
    

    Windows

    python -m venv venv
    venv\scripts\activate
    pip install --upgrade pip
    pip install -r requirements.txt
    

下載 Cloud SQL 驗證 Proxy,從本機連線至 Cloud SQL

部署作業完成後,應用程式會使用 Google Kubernetes Engine 環境內建的 Cloud SQL Auth Proxy 與您的 Cloud SQL 執行個體進行通訊。不過,如要在本機測試應用程式,您就必須在開發環境安裝並使用 Proxy 本機副本。詳情請參閱 Cloud SQL Auth Proxy 指南

Cloud SQL Auth Proxy 會使用 Cloud SQL API 與 SQL 執行個體互動。為此,應用程式必須透過 gcloud CLI 進行驗證。

  1. 驗證並取得 API 的憑證:

    gcloud auth application-default login
    
  2. 在本機下載並安裝 Cloud SQL 驗證 Proxy。

    Linux 64 位元

    1. 下載 Cloud SQL 驗證 Proxy:
      curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.linux.amd64
    2. 將 Cloud SQL 驗證 Proxy 設為允許執行:
      chmod +x cloud-sql-proxy

    Linux 32 位元

    1. 下載 Cloud SQL 驗證 Proxy:
      curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.linux.386
    2. 如果找不到 curl 指令,請執行 sudo apt install curl,然後重複下載指令。
    3. 將 Cloud SQL 驗證 Proxy 設為允許執行:
      chmod +x cloud-sql-proxy

    macOS 64 位元

    1. 下載 Cloud SQL 驗證 Proxy:
      curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.darwin.amd64
    2. 將 Cloud SQL 驗證 Proxy 設為允許執行:
      chmod +x cloud-sql-proxy

    Mac M1

    1. 下載 Cloud SQL 驗證 Proxy:
        curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.darwin.arm64
        
    2. 將 Cloud SQL 驗證 Proxy 設為允許執行:
        chmod +x cloud-sql-proxy
        

    Windows 64 位元

    https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.x64.exe 上按一下滑鼠右鍵,然後選取「另存連結為」來下載 Cloud SQL Auth Proxy。將檔案重新命名為 cloud-sql-proxy.exe

    Windows 32 位元

    https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.x86.exe 上按一下滑鼠右鍵,然後選取「另存連結為」,下載 Cloud SQL Auth Proxy。將檔案重新命名為 cloud-sql-proxy.exe

    Cloud SQL 驗證 Proxy Docker 映像檔

    Cloud SQL 驗證 Proxy 有不同的容器映像檔,例如 distrolessalpinebuster。預設的 Cloud SQL Auth Proxy 容器映像檔使用 distroless,其中不含任何殼層。如需殼層或相關工具,請根據 alpinebuster 下載映像檔。詳情請參閱「Cloud SQL Auth Proxy 容器映像檔」。

    您可以使用下列指令,透過 Docker 將最新映像檔提取至本機電腦:

    docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.21.1
    

    其他 OS

    如果您的作業系統不在上述說明內,可以從原始碼編譯 Cloud SQL Auth Proxy

    您可以選擇將下載內容移至常見位置,例如 PATH 上的位置或主目錄。如果您選擇這麼做,請務必在稍後啟動 Cloud SQL 驗證 Proxy 時,使用 cloud-sql-proxy 指令參照您選擇的位置。

建立後端服務

本教學課程會使用幾項 Google Cloud 服務,提供支援已部署 Django 專案的資料庫、媒體儲存空間和密鑰儲存空間。這些服務部署在特定區域。為提高服務間的效率,所有服務都應部署在同一個區域。如要進一步瞭解您所在地區附近的區域,請參閱「各區域適用的產品」。

設定 PostgreSQL 適用的 Cloud SQL 執行個體

Django 官方支援多個關聯式資料庫,但對 PostgreSQL 的支援度最高。Cloud SQL 支援 PostgreSQL,因此本教學課程選擇使用這類資料庫。

以下章節說明如何為應用程式建立 PostgreSQL 執行個體、資料庫和資料庫使用者。

  1. 建立 PostgreSQL 執行個體:

    控制台

    1. 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。

      前往 Cloud SQL 執行個體頁面

    2. 點選「建立執行個體」

    3. 按一下「Choose PostgreSQL」(選擇 PostgreSQL)

    4. 在「SQL 版本」部分,選擇「Enterprise」。

    5. 在「版本預設設定」中,選擇「沙箱」。

    6. 在「Instance ID」(執行個體 ID) 欄位中輸入 INSTANCE_NAME

    7. 輸入 postgres 使用者的密碼。

    8. 其他欄位皆使用預設值。

    9. 點選「建立執行個體」

    執行個體會在幾分鐘內準備就緒。

    gcloud

    • 建立 PostgreSQL 執行個體:

      gcloud sql instances create INSTANCE_NAME \
          --project PROJECT_ID \
          --database-version POSTGRES_16 \
          --tier db-n1-standard-2 \
          --region REGION
      

    更改下列內容:

    • INSTANCE_NAME:Cloud SQL 執行個體名稱
    • PROJECT_ID: Google Cloud 專案 ID
    • REGIONGoogle Cloud 區域

    建立執行個體並準備就緒需要幾分鐘的時間。

  2. 在建立的執行個體中建立資料庫:

    控制台

    1. 在執行個體頁面中,前往「資料庫」分頁。
    2. 按一下 [Create database] (建立資料庫)。
    3. 在「Database Name」(資料庫名稱) 對話方塊中輸入 DATABASE_NAME
    4. 點選「建立」

    gcloud

    • 在最近建立的執行個體中建立資料庫:

      gcloud sql databases create DATABASE_NAME \
          --instance INSTANCE_NAME
      

      DATABASE_NAME 替換為執行個體內的資料庫名稱。

  3. 建立資料庫使用者:

    控制台

    1. 在執行個體頁面中,前往「Users」(使用者) 分頁。
    2. 點選「新增使用者帳戶」
    3. 在「內建驗證」下方的「選擇驗證方式」對話方塊中:
    4. 輸入使用者名稱 DATABASE_USERNAME
    5. 輸入「DATABASE_PASSWORD」的密碼
    6. 按一下「新增」。

    gcloud

    • 在最近建立的執行個體中建立使用者:

      gcloud sql users create DATABASE_USERNAME \
          --instance INSTANCE_NAME \
          --password DATABASE_PASSWORD
      

      PASSWORD 替換為安全密碼。

建立服務帳戶

Proxy 需要具有您 Cloud SQL 執行個體編輯者權限的服務帳戶。如要進一步瞭解服務帳戶,請參閱Google Cloud 驗證總覽

  1. 前往 Google Cloud 控制台的「Service accounts」(服務帳戶) 頁面。

    前往「Service accounts」(服務帳戶)

  2. 選取含有 Cloud SQL 執行個體的專案。
  3. 按一下「建立服務帳戶」
  4. 在「Service account name」(服務帳戶名稱) 欄位中,輸入服務帳戶的描述性名稱。
  5. 將「服務帳戶 ID」變更為可辨識的專屬值,然後按一下「建立並繼續」
  6. 按一下「選取角色」欄位,然後選取下列其中一個角色:
    • Cloud SQL > Cloud SQL 用戶端
    • Cloud SQL > Cloud SQL 編輯者
    • Cloud SQL > Cloud SQL 管理員
  7. 按一下「Done」(完成),即完成建立服務帳戶。
  8. 按一下新服務帳戶的動作選單,然後選取「管理金鑰」
  9. 點選「Add key」(新增金鑰) 下拉式選單,然後點選「Create new key」(建立新的金鑰)
  10. 確認金鑰類型為 JSON,然後按一下「建立」

    私密金鑰檔案會下載到您的機器中,您可以將它移到其他位置。請妥善保護這個金鑰檔案。

進行資料庫設定

使用下列指令設定資料庫存取權的環境變數。 這些環境變數用於本機測試。

Linux/MacOS

export DATABASE_NAME=DATABASE_NAME
export DATABASE_USER=DATABASE_USERNAME
export DATABASE_PASSWORD=DATABASE_PASSWORD

Windows

set DATABASE_USER=DATABASE_USERNAME
set DATABASE_PASSWORD=DATABASE_PASSWORD

設定 GKE 設定

  1. 這個應用程式會以單一 Kubernetes 設定顯示,名稱為 polls。在 polls.yaml 中,將 <your-project-id> 替換為您的專案 ID (PROJECT_ID)。Google Cloud

  2. 執行下列指令,並記下 connectionName 的值:

    gcloud sql instances describe INSTANCE_NAME --format "value(connectionName)"
    
  3. polls.yaml 檔案中,將 <your-cloudsql-connection-string> 替換為 connectionName 值。

在本機電腦上執行應用程式

設定支援服務後,您現在可以在電腦上執行應用程式。這個設定可進行本機開發、建立超級使用者,以及套用資料庫遷移作業。

  1. 在另一個終端機中啟動 Cloud SQL 驗證 Proxy:

    Linux/macOS

    ./cloud-sql-proxy PROJECT_ID:REGION:INSTANCE_NAME
    

    Windows

    cloud-sql-proxy.exe PROJECT_ID:REGION:INSTANCE_NAME
    

    這個步驟會將本機電腦連線至 Cloud SQL 執行個體,以利進行本機測試。在本機測試應用程式期間,請讓 Cloud SQL 驗證 Proxy 全程保持運作。在另一個終端機中執行這項程序,即可在程序執行期間繼續工作。

  2. 在原始終端機中,於本機設定專案 ID:

    Linux/macOS

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID
    

    Windows

    set GOOGLE_CLOUD_PROJECT=PROJECT_ID
    
  3. 執行 Django 遷移作業,設定模型和資產:

    python manage.py makemigrations
    python manage.py makemigrations polls
    python manage.py migrate
    python manage.py collectstatic
    
  4. 啟動 Django 網路伺服器:

    python manage.py runserver 8080
    
  5. 在瀏覽器中前往 http://localhost:8080

    如果您使用 Cloud Shell,請按一下「網頁預覽」按鈕,然後選取「透過以下通訊埠預覽:8080」

    該頁面會顯示以下文字:「Hello, world. 你位於意見調查索引頁面。在您電腦上執行的 Django 網路伺服器會提供範例應用程式頁面。

  6. 按下 Ctrl/Cmd+C 停止本機網路伺服器。

使用 Django 管理控制台

如要登入 Django 的管理控制台,您必須建立超級使用者。由於您在本機可存取資料庫連線,因此可以執行管理指令:

  1. 建立超級使用者。系統會提示您輸入使用者名稱、電子郵件地址和密碼。

    python manage.py createsuperuser
    
  2. 啟動本機網路伺服器:

    python manage.py runserver
    
  3. 透過瀏覽器前往 http://localhost:8000/admin

  4. 使用您在執行 createsuperuser 時建立的使用者名稱及密碼登入管理員網站。

將應用程式部署至 GKE

將應用程式部署至 Google Cloud時,應用程式會使用 Gunicorn 伺服器。Gunicorn 不提供靜態內容,所以應用程式會使用 Cloud Storage 提供靜態內容。

收集及上傳靜態資源

  1. 建立 Cloud Storage bucket,並設為可公開讀取。

    gcloud storage buckets create gs://PROJECT_ID_MEDIA_BUCKET
    gcloud storage buckets add-iam-policy-binding gs://PROJECT_ID_MEDIA_BUCKET --member=allUsers role=roles/storage.legacyObjectReader
    
  2. 將所有本機靜態內容收集至單一資料夾:

    python manage.py collectstatic
    
  3. 將靜態內容上傳至 Cloud Storage:

    gcloud storage rsync ./static gs://PROJECT_ID_MEDIA_BUCKET/static --recursive
    
  4. mysite/settings.py 中將 STATIC_URL 的值設為下列網址,並將 [YOUR_GCS_BUCKET] 替換為您的值區名稱:

    http://storage.googleapis.com/PROJECT_ID_MEDIA_BUCKET/static/
    

設定 GKE

  1. 如要初始化 GKE,請前往「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

    在專案中首次使用 GKE 時,您需要等待「Kubernetes Engine is getting ready. This may take a minute or more」訊息消失。

  2. 建立 GKE 叢集:

    gcloud container clusters create polls \
      --scopes "https://www.googleapis.com/auth/userinfo.email","cloud-platform" \
      --num-nodes 4 --zone "us-central1-a"
    

    如果出現類似 Project is not fully initialized with the default service accounts 的錯誤訊息,您可能需要初始化 Google Kubernetes Engine

    初始化 GKE

    如果系統顯示錯誤訊息,請前往 Google Cloud 主控台,將您專案中的 GKE 初始化。

    前往「Clusters」(叢集) 頁面

    等待「Kubernetes Engine is getting ready. This can take a minute or more」訊息消失。

  3. 建立叢集之後,請使用與 gcloud CLI 整合的 kubectl 指令列工具,與 GKE 叢集互動。因為 gcloudkubectl 是各自獨立的工具,請務必妥善設定 kubectl,以便和正確的叢集互動。

    gcloud container clusters get-credentials polls --zone "us-central1-a"
    

設定 Cloud SQL

  1. 您需要使用多組密鑰才能讓 GKE 應用程式連線至您的 Cloud SQL 執行個體;一組是用於執行個體層級存取權 (連線),另外兩組則是用於資料庫存取權。如要進一步瞭解這兩個層級的存取權控管相關資訊,請參閱執行個體存取權控管

    1. 如要為執行個體層級存取權建立密鑰,請提供建立服務帳戶時下載的 JSON 服務帳戶金鑰位置 PATH_TO_CREDENTIAL_FILE (請參閱「建立服務帳戶」一節):

      kubectl create secret generic cloudsql-oauth-credentials \
        --from-file=credentials.json=PATH_TO_CREDENTIAL_FILE
      
    2. 如要建立資料庫存取密鑰,請使用您在建立後端服務時定義的 SQL 資料庫、使用者名稱和密碼。請參閱「設定 PostgreSQL 適用的 Cloud SQL 執行個體」:

      kubectl create secret generic cloudsql \
        --from-literal=database=DATABASE_NAME \
        --from-literal=username=DATABASE_USERNAME \
        --from-literal=password=DATABASE_PASSWORD
      
  2. 擷取 Cloud SQL Proxy 的公開 Docker 映像檔。

    docker pull b.gcr.io/cloudsql-docker/gce-proxy
    
  3. 建立 Docker 映像檔,並將 <your-project-id> 替換為您的專案 ID。

    docker build -t gcr.io/PROJECT_ID/polls .
    
  4. 將 Docker 設為使用 gcloud 當做憑證輔助程式,以便將映像檔推送至 Container Registry

    gcloud auth configure-docker
    
  5. 推送 Docker 映像檔,將 <your-project-id> 替換為專案 ID。

    docker push gcr.io/PROJECT_ID/polls
    
  6. 建立 GKE 資源:

    kubectl create -f polls.yaml
    

將應用程式部署至 GKE

建立資源後,叢集中會有三個 polls pod。請檢查這些 pod 的狀態:

kubectl get pods

稍候幾分鐘,等待 pod 狀態顯示為 Running。如果 pod 無法就緒,或者系統顯示重新啟動,您可以檢視特定 pod 的記錄,瞭解發生了什麼問題。[YOUR-POD-ID] 是先前 kubectl get pods 指令傳回的輸出內容。

kubectl logs [YOUR_POD_ID]

查看在 Google Cloud中執行的應用程式

pod 就緒後,您會取得負載平衡器的外部 IP 位址:

kubectl get services polls

記下 EXTERNAL-IP 位址,然後在瀏覽器中前往 http://[EXTERNAL-IP],查看 Django 投票到達網頁並存取管理員控制台。

瞭解程式碼

應用程式範例

Django 範例應用程式是以標準 Django 工具建立。以下指令將建立專案及意見調查應用程式:

django-admin startproject mysite
python manage.py startapp polls

基本檢視區塊、模型和路徑設定是從「編寫第一個 Django 應用程式」(第 1 部分第 2 部分) 複製而來。

資料庫配置

settings.py 包含 SQL 資料庫設定:

DATABASES = {
    "default": {
        # If you are using Cloud SQL for MySQL rather than PostgreSQL, set
        # 'ENGINE': 'django.db.backends.mysql' instead of the following.
        "ENGINE": "django.db.backends.postgresql",
        "NAME": os.getenv("DATABASE_NAME"),
        "USER": os.getenv("DATABASE_USER"),
        "PASSWORD": os.getenv("DATABASE_PASSWORD"),
        "HOST": "127.0.0.1",
        "PORT": "5432",
    }
}

Kubernetes Pod 設定

polls.yaml 檔案會指定兩項 Kubernetes 資源,第一項是為 Django 網路應用程式定義一致名稱和內部 IP 位址的服務,第二項則是具有公開外部 IP 位址的 HTTP 負載平衡器

# The polls service provides a load-balancing proxy over the polls app
# pods. By specifying the type as a 'LoadBalancer', Kubernetes Engine will
# create an external HTTP load balancer.
# For more information about Services see:
#   https://kubernetes.io/docs/concepts/services-networking/service/
# For more information about external HTTP load balancing see:
#   https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/
apiVersion: v1
kind: Service
metadata:
  name: polls
  labels:
    app: polls
spec:
  type: LoadBalancer
  ports:
  - port: 80
    targetPort: 8080
  selector:
    app: polls

這項服務會提供網路名稱和 IP 位址,GKE pod 則會在服務背景執行應用程式的程式碼。另外,polls.yaml 檔案會指定為 GKE pod 提供宣告式更新的部署作業。這項服務會將其選取器和部署作業的標籤進行配對,以便將流量導向部署作業。就這個範例而言,系統會將 polls 選擇工具和 polls 標籤配對。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: polls
  labels:
    app: polls
spec:
  replicas: 3
  selector:
    matchLabels:
      app: polls
  template:
    metadata:
      labels:
        app: polls
    spec:
      containers:
      - name: polls-app
        # Replace  with your project ID or use `make template`
        image: gcr.io/<your-project-id>/polls
        # This setting makes nodes pull the docker image every time before
        # starting the pod. This is useful when debugging, but should be turned
        # off in production.
        imagePullPolicy: Always
        env:
            - name: DATABASE_NAME
              valueFrom:
                secretKeyRef:
                  name: cloudsql
                  key: database
            - name: DATABASE_USER
              valueFrom:
                secretKeyRef:
                  name: cloudsql
                  key: username
            - name: DATABASE_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: cloudsql
                  key: password
        ports:
        - containerPort: 8080

      - image: gcr.io/cloudsql-docker/gce-proxy:1.16
        name: cloudsql-proxy
        command: ["/cloud_sql_proxy", "--dir=/cloudsql",
                  "-instances=<your-cloudsql-connection-string>=tcp:5432",
                  "-credential_file=/secrets/cloudsql/credentials.json"]
        volumeMounts:
          - name: cloudsql-oauth-credentials
            mountPath: /secrets/cloudsql
            readOnly: true
          - name: ssl-certs
            mountPath: /etc/ssl/certs
          - name: cloudsql
            mountPath: /cloudsql
      volumes:
        - name: cloudsql-oauth-credentials
          secret:
            secretName: cloudsql-oauth-credentials
        - name: ssl-certs
          hostPath:
            path: /etc/ssl/certs
        - name: cloudsql
          emptyDir: {}

清除所用資源

為避免因為本教學課程所用資源,導致系統向 Google Cloud 收取費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。

刪除專案

  1. 前往 Google Cloud 控制台的「Manage resources」(管理資源) 頁面。

    前往「Manage resources」(管理資源)

  2. 在專案清單中選取要刪除的專案,然後點選「Delete」(刪除)
  3. 在對話方塊中輸入專案 ID,然後按一下 [Shut down] (關閉) 以刪除專案。

刪除個別資源

如果不想刪除專案,請刪除個別資源。

  1. 刪除 Google Kubernetes Engine 叢集:

    gcloud container clusters delete polls
    
  2. 刪除您推送至 Container Registry 的 Docker 映像檔:

    gcloud container images delete gcr.io/PROJECT_ID/polls
    
  3. 刪除 Cloud SQL 執行個體:

    gcloud sql instances delete INSTANCE_NAME
    

後續步驟