12 Akri #
Akriは、リーフデバイスを検出してKubernetesネイティブリソースとして提供することを目的としたCNCF-Sandboxプロジェクトです。また、検出された各デバイスに対してPodやジョブをスケジュールすることもできます。デバイスはノードローカルでもネットワーク接続されていてもよく、さまざまなプロトコルを使用できます。
Akriのアップストリームドキュメントについては、https://docs.akri.shを参照してください。
12.1 SUSE EdgeでのAkriの用途 #
Akriは現在、SUSE Edgeスタックでの技術プレビュー中です。
Akriは、リーフデバイスに対するワークロードの検出とスケジューリングが必要な場合はいつでも、Edgeスタックの一部として利用できます。
12.1.1 Akriのインストール #
AkriはEdge Helmリポジトリ内でHelmチャートとして利用できます。Akriを設定するための推奨方法は、指定したHelmチャートを使用してさまざまなコンポーネント(エージェント、コントローラ、ディスカバリハンドラ)をデプロイし、好みのデプロイメントメカニズムを使用してAkriの設定CRDをデプロイすることです。
12.1.2 Akriの設定 #
Akriは、akri.sh/Configurationオブジェクトを使用して設定します。このオブジェクトは、デバイスの検出方法、および一致するデバイスが検出されたときの処理に関するすべての情報を取得します。
以下に、設定例の内訳を示し、すべてのフィールドについて説明します。
apiVersion: akri.sh/v0
kind: Configuration
metadata:
  name: sample-configuration
spec:次の部分では、ディスカバリハンドラの設定を記述しています。ディスカバリハンドラの名前を指定する必要があります(Akriのチャートの一部として利用可能なハンドラは、udev、opcua、onvifです)。discoveryDetailsはハンドラ固有です。設定方法については、ハンドラのドキュメントを参照してください。
  discoveryHandler:
    name: debugEcho
    discoveryDetails: |+
      descriptions:
        - "foo"
        - "bar"次のセクションでは、検出された各デバイスに対してデプロイするワークロードを定義します。この例では、brokerPodSpecでPod設定の最小バージョンが示されています。ここでは、Podの仕様の通常のフィールドをすべて使用できます。また、resourcesセクションに、デバイスを要求するためのAkri固有の構文も示されています。
または、Podの代わりにJobを使用することもできます。その場合は、代わりにbrokerJobSpecキーを使用し、そこにJobの仕様部分を指定します。
  brokerSpec:
    brokerPodSpec:
      containers:
      - name: broker-container
        image: rancher/hello-world
        resources:
          requests:
            "{{PLACEHOLDER}}" : "1"
          limits:
            "{{PLACEHOLDER}}" : "1"次の2つのセクションは、ブローカごとにサービスをデプロイするようにAkriを設定するか(instanceService)、またはすべてのブローカを指すようにAkriを設定する(configurationService)方法を示しています。これらには、通常のサービスに関連する要素がすべて含まれています。
  instanceServiceSpec:
    type: ClusterIp
    ports:
    - name: http
      port: 80
      protocol: tcp
      targetPort: 80
  configurationServiceSpec:
    type: ClusterIp
    ports:
    - name: https
      port: 443
      protocol: tcp
      targetPort: 443brokerPropertiesフィールドは、検出されたデバイスを要求するPodに追加の環境変数として公開されるキー/値ストアです。
capacityは、検出されたデバイスの許容される同時ユーザ数です。
  brokerProperties:
    key: value
  capacity: 112.1.3 追加のディスカバリハンドラの記述とデプロイ #
デバイスで使用されているプロトコルが既存のディスカバリハンドラでカバーされていない場合は、こちらのガイドを使用して、独自に記述できます。
12.1.4 Akri Rancher Dashboard拡張機能 #
Akriダッシュボード拡張機能を使用すると、Rancher Dashboardユーザインタフェースを使用して、リーフデバイスを管理および監視し、デバイスが検出されたらワークロードを実行できます。
インストールのガイダンスについては、Rancher Dashboard拡張機能(第5章 「Rancher Dashboard拡張機能」)を参照してください。
拡張機能をインストールしたら、クラスタエクスプローラを使用してAkri対応の管理対象クラスタに移動できます。[Akri]ナビゲーショングループの下に[Configurations (設定)]セクションと[Instances (インスタンス)]セクションがあります。
[Configurations (設定)]リストには、設定ディスカバリハンドラとインスタンス数に関する情報が表示されます。名前をクリックすると、設定の詳細ページが開きます。
設定の編集や新規作成も行うことができます。拡張機能を使用すると、ディスカバリハンドラの選択、ブローカPodやブローカJobの設定、設定サービスやインスタンスサービスの設定、および設定容量の設定を行うことができます。
検出されたデバイスが [Instances (インスタンス)]リストに一覧にされます。
インスタンス名をクリックすると、詳細ページが開き、ワークロードおよびインスタンスサービスを表示できます。




