YAMLファイルを比較して生成したルールによるKubernetes Podのエラー原因の提示

Kubernetes 上でアプリケーションを動作させるには,YAML 形式の設定ファイルの記述が必要である.YAML 形式の設定ファイルの記述に誤りがあると,エラーが発生してPod の作成に失敗する.課題はPod の起動時にエラーが発生した場合に,エラーの原因箇所の特定ができないことである.提案方式では,YAML 形式の設定ファイルにあるエラーの原因箇所を,ルールファイル内に書き込まれているルールを使用し特定する.ルールにはkubectl get pod コマンドに含まれるステータス,kubectl describe コマンドに含まれるイベント,起動に成功した場合と起動に失敗した場合のYAML 形式の設定ファイルの差分が含まれる.エラーの原因箇所の特定では,YAML 形式の設定ファイルとルールを比較する.比較した結果に該当するルールがある場合,そのルールをエラーの原因箇所と判定する.比較した結果に該当するルールがない場合,kubectl describe コマンドの結果のEvents に含まれる単語を最も多く含むルールをルールファイルから求め,部分一致した結果として出力する.実験にはプロジェクト実習II[IT・3] で集めたYAML 形式の設定ファイルのうち,kind がPod の27 個のファイルを使用した.27 個のファイルを20 個のルール用YAML ファイル(約75%) と,7 個の評価用YAML ファイル(約25%) に分けた.評価では,ルール用YAML ファイルからルールを作成し,そのルールを使い評価用YAML ファイルのエラーの原因箇所を特定し検知率を算出する.結果として,実験を行った7 個の評価用YAML ファイルのうち,3個のファイルでルールからエラー原因箇所が特定された.残りの4 個のファイルではルールからエラー原因箇所が特定されなかった.4 個のファイルを対象とした原因の部分一致では,合計で16 箇所の原因箇所を検知された.このうち正しく検知された箇所は4 箇所で、誤検知は12 箇所であった. ...