高可用性のための Docker Swarm モードでサービスとしてコネクター・エージェントを実行する
前の例で示したようにコンテナをスタンドアロンで実行することに加えて、 Docker Swarm モードを使用して複数のマシン上で最大 3 つのコンテナのクラスタを実行し、 Satellite Connector エージェントの高可用性を提供することができます。
Satellite コネクターを構成するには、IAM アクセス・ポリシー内の Satellite サービスに対する管理者権限が必要です。
- Swarm マネージャー・システムで Satellite コネクター・エージェントを作成し、
satellite-connector-agent.yaml
という名前のファイルを作成して、以下の内容をそこにコピーします。version: '3.9' services: agent: image: icr.io/ibm/satellite-connector/satellite-connector-agent:latest environment: - SATELLITE_CONNECTOR_ID=/satellite-connector-id - SATELLITE_CONNECTOR_IAM_APIKEY=/run/secrets/satellite-connector-iam-apikey - SATELLITE_CONNECTOR_TAGS={{.Node.Hostname}} deploy: replicas: 3 restart_policy: condition: any update_config: parallelism: 2 delay: 20s failure_action: rollback order: start-first resources: limits: cpus: '0.40' memory: 500M reservations: cpus: '0.04' memory: 200M configs: - source: satellite-connector-id uid: '1000' gid: '1000' mode: 0400 - source: satellite-connector-region uid: '1000' gid: '1000' mode: 0400 secrets: - source: satellite-connector-iam-apikey uid: '1000' gid: '1000' mode: 0400 logging: driver: "json-file" options: max-size: ${JSON_FILE_MAX_SIZE:-1m} max-file: ${JSON_FILE_MAX_FILE:-10} configs: satellite-connector-id: external: true satellite-connector-region: external: true secrets: satellite-connector-iam-apikey: external: true networks: default: external: true name: bridge
- Satellite コネクター ID を使用して Docker 構成を作成します。
printf <satellite connector id value> | docker config create satellite-connector-id -
- Satellite コネクター地域を使用して Docker 構成を作成します。
printf <satellite connector region value> | docker config create satellite-connector-region -
- IAM API キーを使用して Docker 秘密を作成します。
printf <Your IAM API key> | docker secret create satellite-connector-iam-apikey -
デフォルトでは、Swarm 構成ファイルにより、 SATELLITE_CONNECTOR_TAGS
環境変数が Swarm ノードのホスト名に設定されます。 この値は、compose ファイル内のニーズに合わせて調整できます。 さらに、レプリカの数はデフォルトで 3 に設定されています。 この数値を低く調整することはできますが、サポートされるレプリカは最大 3 つのみです。
- Satellite コネクター・エージェント・サービスをデプロイします。
ibmcloud cr login
CLI または API キーdocker login -u iamapikey -p <your apikey> icr.io
を使用して IBM Cloud® Container Registry にログインしていることを確認します。- スタックをデプロイします。
docker stack deploy --compose-file satellite-connector-agent.yaml --with-registry-auth satellite_connector
- Satellite コネクター・エージェント・サービスが実行中であることを確認します。
docker service ps satellite_connector_agent