Skip to main content
エールを使用するには、Node.js 20以上が必要です。

クラスターのセットアップ

Docker Desktop のウェブサイトにアクセスし、OSとアーキテクチャに合ったインストールファイルをダウンロードしてください。インストール完了後、ターミナルで以下のコマンドを入力してDockerが正常にインストールされたことを確認します。
docker version
Kubernetes クラスターのセットアップ1. Docker Desktopの設定画面に移動し、左のメニューからKubernetesを選択します。次に、Enable Kubernetesを有効化し、下部のApply & restartをクリックしてください。
2. kubectlコマンドがDocker Desktopを通じて生成されたKubernetesクラスターに適用されるよう、以下のコマンドを実行してください。
kubectl config use-context docker-desktop
Switched to context "docker-desktop".
3. ターミナルで以下のコマンドを実行し、クラスターが正常に動作しているか確認できます。STATUSReadyでない場合や、以下の内容が表示されない場合、Kubernetesクラスターが正常に利用できない状態ですので、コンテキストやDocker Desktopの状態を確認する必要があります。
kubectl get node
NAME             STATUS   ROLES           AGE   VERSION
docker-desktop   Ready    control-plane   37m   v1.30.2
HomeBrewがインストールされているmacOSで、以下のコマンドを実行してください。
brew install orbstack
Kubernetes クラスターのセットアップ1. OrbStackの設定画面に移動し、Kubernetesタブを選択します。 次に、Enable Kubernetes clusterおよびExpose services to local network devicesにチェックを入れ、下部のApplyをクリックしてください。
2. kubectlコマンドがOrbStackを通じて生成されたKubernetesクラスターに適用されるよう、以下のコマンドを実行してください。
kubectl config use-context orbstack
Switched to context "orbstack".
3. ターミナルで以下のコマンドを実行し、クラスターが正常に動作しているか確認できます。STATUSReadyでない場合や、以下の内容が表示されない場合、Kubernetesクラスターが正常に利用できない状態ですので、コンテキストやOrbStackの状態を確認する必要があります。
kubectl get node
NAME       STATUS   ROLES                  AGE     VERSION
orbstack   Ready    control-plane,master   7m14s   v1.29.3+orb1
kindを利用するには、v1.16以上のgoがインストールされている必要があります。 このページからOSごとのインストーラをダウンロードし、インストール後、以下のコマンドを入力してシェルにgoのパスを登録してください。
echo 'export PATH=$PATH:$HOME/go/bin' >> ~/.zshrc && source ~/.zshrc
ターミナルで以下のコマンドを実行してください。
go install sigs.k8s.io/kind@v0.25.0
Kubernetes クラスターのセットアップ1. ターミナルで以下のコマンドを入力します。
cat <<EOF | kind create cluster --name kind --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
  - role: control-plane
  - role: worker
  - role: worker
EOF
2. kubectlコマンドがkindで作成されたK8sクラスターに適用されるように、以下のコマンドを実行してください。
kubectl config use-context kind
Switched to context "kind".
3. ターミナルで以下のコマンドを実行し、クラスターが正常に動作しているか確認できます。STATUSReadyでない場合や、以下の内容が表示されない場合、Kubernetesクラスターが正常に利用できない状態ですので、コンテキストや稼働中のコンテナの状態を確認する必要があります。
kubectl get node
NAME                 STATUS   ROLES           AGE   VERSION
kind-control-plane   Ready    control-plane   19m   v1.31.2
kind-worker          Ready    <none>          19m   v1.31.2
kind-worker2         Ready    <none>          19m   v1.31.2

エールのインストールと実行

1

以下のコマンドを入力してale-runパッケージをインストールします。

mkdir ale-run
cd ale-run
npm i @ale-run/runtime@latest
2

以下のコマンドを入力してNginx Ingress Controllerをインストールしてください。

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.11.2/deploy/static/provider/cloud/deploy.yaml
kubectl delete -A ValidatingWebhookConfiguration ingress-nginx-admission
kubectl patch ingressclass nginx --type='merge' -p '{"metadata": {"annotations": {"ingressclass.kubernetes.io/is-default-class": "true"}}}'
3

以下のコマンドを入力してMetrics Serverをインストールしてください。

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
4

以下のコマンドを入力してエールを開発モードで実行します。

npx aled dev
5

エールを使用してアプリケーションをデプロイするクラスターを選択します。クラスターの一覧は`~/.kube/config`に登録されたコンテキストを通じて表示されます。

? Select the k8s cluster to use. › Select the k8s cluster to use.
    No Cluster
    orbstack
   docker-desktop
以下のようにログが表示されたら、実行が完了したことになります。
...
[INFO] [plugin:cloudtype-apps] plugin @cloudtype/apps is installed {}
[INFO] [plugin:cloudtype-apps] plugin @cloudtype/apps is activate {}
[INFO] [pde:init] plugin "@cloudtype/apps" loaded! 
[INFO] [k8s] KubernetesClusterType initialized with agent {"connection":{"context":"docker-desktop","namespace":"ale-pde"},"stat":{"db":{"url":"mongodb://127.0.0.1:64000/","dbName":"ale-pde"}}}
[INFO] [k8s] ConfigContext initialized with {"connection":{"context":"docker-desktop","namespace":"ale-pde"},"stat":{"db":{"url":"mongodb://127.0.0.1:64000/","dbName":"ale-pde"}}}
[INFO] [k8s] connect k8s to "docker-desktop" 
[INFO] [k8s] [agent] cluster agent initialized 
[WARN] [k8s] ConfigMap.get ale-pde agent-config 
[INFO] [pde:agent] Ale Agent is initialized with config  
[INFO] [pde:init] Ale Agent httpsd is listening at 127.0.0.1:9801 
[INFO] [k8s] config loaded from cluster from "ale-pde/agent-config" 
[INFO] [stat] stat controller init {"collector":{"prefix":"ale"},"db":{"url":"mongodb://127.0.0.1:64000/","dbName":"ale-pde"},"connection":{"context":"docker-desktop","namespace":"ale-pde"}}
[INFO] [stat] connect k8s to "docker-desktop" 
[INFO] [stat] stat watcher started 
実行中にデータベース競合が発生した場合、以下のコマンドで既存のエールデータを削除し、再実行してください。
rm -r ~/.ale-dev  
ローカル環境とGitHubを連携し、GitHubリポジトリのソースコードをデプロイできます。
1. GitHub Appsの作成
GitHubにログイン後、Settings > Developer Settings > GitHub Appsページで New GitHub App をクリックして、GitHub App作成を開始します。
1-1. 基本情報の入力
GitHub Appを作成するための情報を以下のように入力してください。
  • GitHub App name : GitHub Appの名前
  • Homepage URL
    • GitHub OAuthを適用するURL
    • ローカルアクセスアドレス http://localhost:9001
  • Callback URL(Add Callback URLで追加)
    • http://localhost:9009/oauth/github/callback
    • http://localhost:9009/oauth/github/connect/callback
この画面で入力したGitHub App nameはエールのGitHub OAuth登録時に使用されます。
ローカル環境のため、httpsではなくhttpで入力する必要があります。また、localhost:9009はエールのAPIエンドポイントアドレスです。
1-2. Webhookの無効化
WebhookセクションのActiveチェックを解除して無効化してください。
1-3. 権限の付与とAPP作成
Permissionセクションで以下の権限を付与し、Create GitHub AppをクリックしてAPPを作成してください。
  • Read and Write
    • Actions
    • Administration
    • Commit statuses
    • Contents
    • Deployments
    • Issues
    • Pull requests
    • Workflows
  • Read-only
    • Metadata
  • Read and Write
    • Administration
  • Read-only
    • Members
  • Read-only
    • Email addresses
2. GitHub App情報の取得
エールのGitHub OAuthを追加するために、GitHub App Name以外に以下の4つのIDとKeyの値が必要です。
  • App ID
  • Client ID
  • Client Secret
  • Private Key
2-1. App IDとClient IDの取得
権限付与後にAppが作成されると、App IDとClient IDを確認できます。
2-2. Client Secretの取得
同じ画面でGenerate a new client secretをクリックして、Client Secretを生成し、確認してください。
2-3. Private Keyの取得
画面下部のGenerate a private keyをクリックするとpemファイルがダウンロードされます。
3. エール運用システムへの登録
ブラウザのアドレスバーにhttp://localhost:9001を入力して運用システムにアクセスし、設定 > 認証手段 > GitHubドロップダウンをクリックして、前の手順で取得した値を各フィールドに入力し、適用するをクリックしてください。
  • APP_NAME : GitHub Appの名前
  • APP_ID : App ID
  • CLIENT_ID : Client ID
  • CLIENT_SECRET : Client secret
  • APP_PRIVATE_KEY: Private key pemファイルの値

ダッシュボードにアクセス

ブラウザのアドレスバーにhttp://localhost:9001を入力すると、エールダッシュボードにアクセスできます。初回アクセス時は、デフォルトで作成される@devスペースに接続されます。
左上のスペース名をクリックして運用システムを選択すると、アクセスできます。

デプロイ

ダッシュボードのまたは⌘ + Kで生成されるデプロイモーダルからHTTPBinを選択します。
設定を変更せずに、画面下部のデプロイをクリックします。
サービスの起動が完了すると、画面に表示される状態が稼働中に変更されます。アクセスをクリックすると、起動したサービスに接続できます。
ローカル環境とGitHubを連携してGitHubリポジトリをデプロイしたり、SSH認証を使用してプライベートリポジトリをデプロイすることができます。一般的なデプロイについてのガイドはエールでデプロイページをご参照ください。