Kubernetesクラスターでmabl Linkを実行することで、テストインフラストラクチャーが簡素化されます。Kubernetesに展開されたジョブでmabl Link Dockerイメージを自動的に取得することで、ランタイムの互換性、設定、プロビジョニングを気にする必要がなくなります。
KubernetesクラスターでのLink Agentのセットアップの詳しい手順については、以下を参照してください。
開始する前に
開始する前に、次の必要な情報を収集します。
- "Link Agent" APIキー。APIキーにアクセスできるユーザーは、ワークスペースの所有者に限定されています。
- Kubernetesの名前空間の名前
Link Agentの実行
Kubernetesクラスター内でLink Agentを実行するには、次の引数が必要です。
<YOUR-NAMESPACE>
- Kubernetesの名前空間。<MABL-LINK-API-KEY>
- ステップ1で作成した "Link Agent" APIキー。<LINK-AGENT-NAME>
- Link Agentの名前を英小文字、数字、ダッシュから成る1~24文字で作成します。
kubectlを使用してKubernetesクラスターでLink Agentを実行します。例:
$ kubectl run mabl-link-agent\ --namespace=<YOUR-NAMESPACE>\ --image=mablhq/link-agent\ -- --api-key <MABL-LINK-API-KEY> --name <LINK-AGENT-NAME>
単体の--
は誤表記ではありません。kubectl
に必要な表記です。
Kubernetesの設定は、通常、YAML形式で保存されます。kubectl run mabl-link-agent
を実行する代わりに、Podを作成して単一のLink Agentを実行するか、Deploymentを作成して高可用性設定で複数のLink Agentを実行することができます。
Link Agent Podの作成
次の例は、Link Agent Podを作成するための基本的なYAML specです。<YOUR-NAMESPACE>
、<MABL-LINK-API-KEY>
、<LINK-AGENT-NAME>
の値を適切な値に置き換えます。
apiVersion: v1 kind: Pod metadata: name: mabl-link-agent namespace: <YOUR-NAMESPACE> spec: containers: - name: mabl-link-agent image: mablhq/link-agent args: - --api-key - <MABL-LINK-API-KEY> - --name - <LINK-AGENT-NAME>
YAML specファイルからLink Agent Podを起動するには、次のコマンドを実行します。
$ kubectl create -f mabl-link-agent.yaml # Optionally follow the logs $ kubectl logs -f mabl-link-agent -n <YOUR-NAMESPACE>
Link Agentの使用が済んだら、次のコマンドを使用してLink Agentを終了します。
$ kubectl delete pod mabl-link-agent -n <YOUR-NAMESPACE>
高可用性セットアップでのLink Agentの実行
Kubernetes Deploymentを使用してmabl Link Agentを実行することもできます。Deploymentでは、replicas
を1より大きな値に設定して、高可用性 (HA) のセットアップを使用できます。mablテストからの個々の接続は、利用可能ないずれかのLink Agentインスタンスにランダムにルーティングされます。
次の例は、Link Agent Deploymentを作成するための基本的なYAML specです。<YOUR-NAMESPACE>
、<MABL-LINK-API-KEY>
、<LINK-AGENT-NAME>
を置き換えます。
apiVersion: apps/v1 kind: Deployment metadata: name: mabl-link-agent-deployment namespace: <YOUR-NAMESPACE> labels: app: mabl-link-agent spec: # Use values > 1 for HA (e.g. 2-3) replicas: 1 selector: matchLabels: app: mabl-link-agent template: metadata: labels: app: mabl-link-agent spec: containers: - name: mabl-link-container image: mablhq/link-agent args: - "--api-key" - "<MABL-LINK-API-KEY>" - "--name" - "<LINK-AGENT-NAME>"
YAML specファイルからLink Agent Deploymentを起動するには、次のコマンドを実行します。
$ kubectl create -f mabl-link-agent-deployment.yaml
Link Agent Deploymentの作成時に問題が発生する場合は、単一のLink Agent Podを作成し、設定値が正しいことを確認してください。
高可用性 (HA) のLink Agent設定では、終了、停止、またはクラッシュしたLink Agentは除外されます。いずれかのLink Agentが終了した場合、失われるのはそのLink Agentを経由したmablテストとの開いている接続のみです。その後の接続は残りのアクティブなLink Agentインスタンスにルーティングされます。
Link Agentが実行中でmablに接続できる限り、このLink Agentは正常とみなされます。目的の宛先にトラフィックをルーティングできないマシンにLink Agentをインストールした場合も、このLink Agentは正常と表示されます。
Link Agentの使用が済んだら、次のコマンドを使用してLink Agent Deploymentを終了します。
$ kubectl delete deployment mabl-link-agent-deployment -n <YOUR-NAMESPACE>
Link接続の有効性の検証
通常、Link Agentはすばやく起動されますが、新しいLinkトンネル用のインフラストラクチャーを新規に起動する場合は時間がかかることがあります。Readiness Probeを使用すると、Link Agent Podによってトンネルが正常に確立されたときにKubernetesに通知されます。
Link AgentのYAML specファイルのcontainersセクションを更新して、次のように、readinessProbeセクションを追加します。
containers: - name: mabl-link-container image: mablhq/link-agent args: - "--api-key" - "<MABL-LINK-API-KEY>" - "--name" - "<LINK-AGENT-NAME>" # Mark pod Ready when successful Link Agent connection established readinessProbe: exec: command: - grep - "-ci" - "connections are active" - /opt/mabl/link-agent/logs/agent.log initialDelaySeconds: 10 periodSeconds: 10
トンネルがアクティブな場合、Link Agentはmablアプリケーションの [NETWORKING] ページに [Connected] のステータスで表示されます ([Settings] > [NETWORKING])。
次のステップ
Link Agentがインストールされて実行されたら、mabl Link経由で実行するようにテストを設定します。