測試您的 Ruby on Rails 部署

先決條件

概觀

在本節中,您將學習如何使用 Docker Desktop 將您的應用程式部署到開發機器上功能齊全的 Kubernetes 環境。這讓您可以在部署前在 Kubernetes 上本地測試和除錯您的工作負載。

建立 Kubernetes YAML 檔案

在您的 `docker-ruby-on-rails` 目錄中,建立一個名為 `docker-ruby-on-rails-kubernetes.yaml` 的檔案。在 IDE 或文字編輯器中開啟檔案並新增以下內容。將 `DOCKER_USERNAME/REPO_NAME` 替換為您的 Docker 使用者名稱和您在設定 Ruby on Rails 應用程式的 CI/CD中建立的儲存庫名稱。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: docker-ruby-on-rails-demo
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      service: ruby-on-rails
  template:
    metadata:
      labels:
        service: ruby-on-rails
    spec:
      containers:
        - name: ruby-on-rails-container
          image: DOCKER_USERNAME/REPO_NAME
          imagePullPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
  name: docker-ruby-on-rails-demo
  namespace: default
spec:
  type: NodePort
  selector:
    service: ruby-on-rails
  ports:
    - port: 3000
      targetPort: 3000
      nodePort: 30001

在此 Kubernetes YAML 檔案中,有兩個物件,由 `---` 分隔

  • 一個部署,描述一組可擴充的相同 Pod。在本例中,您將只獲得一個 Pod 副本。該 Pod 在 `template` 下描述,其中只有一個容器。該容器是從設定 Ruby on Rails 應用程式的 CI/CD中 GitHub Actions 建立的映像檔建立的。
  • 一個 NodePort 服務,它將主機上埠 30001 的流量路由到它路由到的 Pod 內部的埠 8001,允許您從網路訪問您的應用程式。

要瞭解更多關於 Kubernetes 物件的資訊,請參閱Kubernetes 文件部署並檢查您的應用程式

  1. 在終端機中,瀏覽至 `docker-ruby-on-rails` 並將您的應用程式部署到 Kubernetes。

    您應該會看到如下所示的輸出,指示您的 Kubernetes 物件已成功建立。

  2. 列出您的部署,確保一切正常。

    您的部署應如下所示列出

    這表示您在 YAML 中要求的所有 Pod 都已啟動並正在執行。對您的服務執行相同的檢查。

    您應該會獲得如下所示的輸出。

    除了預設的 `kubernetes` 服務之外,您還可以看見您的 `docker-ruby-on-rails-demo` 服務,它在埠 30001/TCP 上接受流量。

  3. 要在 Kubernetes 上執行的 Ruby on Rails 應用程式中建立和遷移資料庫,您需要按照以下步驟操作。

    **取得目前的 Pod**:首先,您需要識別在 Kubernetes 叢集中執行的 Pod。執行以下指令以列出 `default` 命名空間中的目前 Pod

    此指令將顯示 `default` 命名空間中所有 Pod 的清單。尋找前綴為 `docker-ruby-on-rails-demo-` 的 Pod。以下是一個範例輸出

    **執行遷移指令**:識別正確的 Pod 後,使用 `kubectl exec` 指令在 Pod 內執行資料庫遷移。

    此指令會在指定的 Pod 中開啟一個互動式終端機工作階段 (`-it`),並在環境設定為開發 (`RAILS_ENV=development`) 的情況下執行 `rails db:migrate` 指令。

    按照這些步驟,您可以確保在 Kubernetes 叢集中執行的 Ruby on Rails 應用程式中正確遷移資料庫。此程序有助於在部署和更新期間維護應用程式資料結構的完整性和一致性。

  4. 開啟瀏覽器並前往https://#:30001

摘要

在本節中,您學習了如何使用 Docker Desktop 將您的應用程式部署到開發機器上功能齊全的 Kubernetes 環境。

相關資訊