Learn EPOCH Install

  • Version
    1.2.0
  • Author
    Exastro Developer
  • Release date
    2021/11/10
  • Last modified
    2023/05/24

はじめに

本資料の概要

本書は Exastro EPOCH(以後EPOCHと表記) をインストールする手順を扱ったガイドです。

  • Kubernetesの構築についての情報は本資料に含まれません。

コンポーネントについて

EPOCHはKubernetes上に各種リソースを展開してインストールします。EPOCHをインストールした直後の構成(概要)は、下図の通りです。

EPOCHシステム構成図

インストール要件

kubernetesにEPOCHをインストールする前に、下記の事項を満たしていることを確認してください。

  • v1.21 ~ v1.24のKubernetes環境が構築されていること。
  • Kubernetesで使用するServiceAccountにcluster-adminロールが付与されていること。
  • Kubernetesから外部インターネットに接続できること。
  • WorkerノードのLinuxの設定について、次の条件(SonarQubeのホスト要件)を満たしていること。

    kernelパラメータ 条件
    vm.max_map_count 524288 以上
    fs.file-max 131072 以上
    ユーザーリソース 条件
    同時にオープンできるファイル数 131072 以上
    実行可能なユーザープロセスの最大数 8192 以上

    SonarQubeのホスト要件については以下のサイトで確認できます。
    https://hub.docker.com/_/sonarqube

  • kubernetesが下記のポート番号を利用できること。
    • 30443
    • 31182
    • 31183

ポート番号は後述するepoch-install.yamlに定義されています。ポート番号を変更する場合は、ファイルを変更した後にインストールを実行してください。

参考)最小要件

EPOCHをインストールするKubernetesクラスタの、サーバスペックの参考値です。
Masterノード1台、Workerノード1台の場合の値を記載しています。

  • Masterノード
CPU数 4 Core (3.0 GHz)
メモリ 8GB
ディスク容量 10GB
  • Workerノード
CPU数 16 Core (3.0 GHz)
メモリ 32GB
ディスク容量 40GB

これらは参考値です。最終的なスペック値はEPOCHを利用して構築するシステムの要件や、展開先のKubernetesがEPOCHと別のものになるか否か、等の要素を検討して決定してください。

インストール手順

インストール手順の概要

EPOCHのインストールは、Kubernetes上に各種リソースを展開して進めます。

マニフェストファイル一覧

リソース展開に利用するマニフェストファイルの一覧です。

利用するマニフェストファイルのURL 概要
https://github.com/exastro-suite/epoch/releases/latest/download/epoch-install.yaml EPOCHのAPI群やTektonを展開します。
EPOCHのリポジトリから取得します。
https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml Argo Rolloutsを展開します。
Argo Project公式リポジトリから取得します。

EPOCHのインストール手順

EPOCHのインストール

① kubectlが実行できる環境にSSHログインし、下記のコマンドを実行してEPOCHをインストールします。
kubectl apply -f https://github.com/exastro-suite/epoch/releases/latest/download/epoch-install.yaml
② 下記のコマンドで(tekton-installer以外の)PodがRunning状態になっていることを確認します(EPOCH)

ctrl + c で監視を終了できます。

kubectl get pod -n epoch-system --watch
出力例
NAME                                                READY   STATUS              RESTARTS        AGE
authentication-infra-setting-**********-*****       1/1     Running             0               **s
epoch-control-argocd-api-*********-*****            1/1     Running             0               **s
epoch-control-github-api-*********-*****            1/1     Running             0               **s
epoch-control-inside-gitlab-api-*********-*****     1/1     Running             0               **s
epoch-control-ita-api-*********-*****               1/1     Running             0               **s
epoch-control-tekton-api-*********-*****            1/1     Running             0               **s
epoch-control-workspace-api-*********-*****         1/1     Running             0               **s
epoch-rs-ci-result-api-*********-*****              1/1     Running             0               **s
epoch-rs-logs-api-*********-*****                   1/1     Running             0               **s
epoch-rs-workspace-api-*********-*****              1/1     Running             0               **s
epoch-service-api2-*********-*****                  1/1     Running             0               **s
epoch-ui-*********-*****                            1/1     Running             0               **s
rs-logs-db-*********-*****                          1/1     Running             0               **s
tekton-installer-*********-*****                    0/1     Completed           0               **s
tekton-pipeline-db-*********-*****                  1/1     Running             0               **s
tekton-pipelinerun-db-*********-*****               1/1     Running             0               **s
workspace-db-*********-*****                        1/1     Running             0               **s  
③ 下記のコマンドですべてのPodがRunning状態になっていることを確認します(Tekton)

ctrl + c で監視を終了できます。

kubectl get pod -n tekton-pipelines --watch
出力例
NAME                                                READY   STATUS              RESTARTS        AGE
tekton-pipelines-controller-*********-*****         1/1     Running             0               **s
tekton-pipelines-webhook-*********-*****            1/1     Running             0               **s
tekton-triggers-controller-*********-*****          1/1     Running             0               **s
tekton-triggers-core-interceptors-*********-*****   1/1     Running             0               **s
tekton-triggers-webhook-*********-*****             1/1     Running             0               **s

【正常にリソースを作成できなかった場合】
ポート番号の重複などで正しくリソースを作成できなかった場合、
下記コマンドでリソースを削除し、原因を取り除いたうえで再度 ① を実行してください。

正常にリソースを作成できなかった場合
kubectl delete -f https://github.com/exastro-suite/epoch/releases/latest/download/epoch-install.yaml

EPOCHの初期設定

下記のコマンドを実行し、EPOCHの初期設定を行います。
kubectl run -i --rm set-host -n epoch-system --restart=Never --image=exastro/epoch-setting:0.3_5 --pod-running-timeout=30m -- set-host [your-host]

[your-host]には、ご自身のホストに接続するためのサーバー名またはIPアドレスを指定してください。

出力例(初期設定が正常に完了した場合)
[INFO] Call set-host command
[INFO] START : set-host.sh
[INFO] **** set-host.sh completed successfully ****
  ...
[INFO] Call set-host-gitlab command
job.batch/set-host-gitlab created
****  completed successfully ****

EPOCHがインストール中の場合、以下のエラーとなることがあります。その際は再度コマンドを実行してください。

error: timed out waiting for the condition

ArgoRolloutのインストール

① 下記のコマンドを実行し、ArgoRolloutをインストールします。
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml
② 下記のコマンドでマニフェストファイルが反映されていることを確認します。
kubectl get pod -n argo-rollouts --watch
出力例
NAME                             READY   STATUS    RESTARTS   AGE
argo-rollouts-xxxxxxxxxx-xxxxx   1/1     Running   0          **m

【正常にリソースを作成できなかった場合】
正しくリソースを作成できなかった場合、 下記コマンドでリソースを削除し、原因を取り除いた上で再度 ① の 「kubectl apply ~」コマンド を実行してください。

正常にリソースを作成できなかった場合
kubectl delete -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml

接続確認

インストール作業終了後、次のURLをブラウザに入力してアクセスしてください。

https://[your-host]:30443/

[your-host]には、ご自身のホストに接続するためのサーバー名またはIPアドレスを指定してください。

以下のサインイン画面が表示されます。

sign_in_screen

ユーザ名にepoch-admin、パスワードにpasswordを指定して「ログイン」ボタンを押下してください。

パスワードの変更画面が表示されます。

update_password

新しいパスワードを指定して「送信」ボタンを押下してください。

アカウント情報の更新画面が表示されます。 update_profile

以下の情報を入力し「送信」ボタンを押下してください。

  • Eメール

以下の画面が表示されることを確認します。 workspace_image

以上でEPOCHのインストール手順は終了です。

Page Top