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-NAMESPACELink 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.yamlLink 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-NAMESPACELink接続の有効性の検証
通常、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アプリケーションの [ネットワーク] ページに [Connected] のステータスで表示されます ([ワークスペース] > [ネットワーク])。
次のステップ
Link Agentがインストールされて実行されたら、mabl Link経由で実行するようにテストを設定します。