OpenShift Lightspeedを使ってみた

はじめに

こんにちはサイオステクノロジーの小野です。前回はOpenShift LightspeedというAIチャットアシスタント機能の構築方法について説明しました。今回はそのOpenShift Lightspeedを使って数々の問題を解決する様子をお届けします。なお2025年1月23日の現時点ではテクノロジープレビューのため、不具合や正式版と異なる場合があることにご了承ください。

OpenShift Lightspeed使ってみた

OpenShift Lightspeed前提条件

  • Lightspeed環境構築済み:前回投稿した記事を参考にしてください
  • 使用LLMプロバイダ:Azure OpenAI
  • 使用LLM:GPT-4o

Lightspeed機能確認

LightspeedにはOpenShiftを利用する上で便利な機能が備わっています。それを紹介します。

質問に対する応答

最初にLightspeed自身のことについて質問します。

OpenShift Lightspeedについての質問

このようにOpenShiftLightspeedの概要について回答します。また、関連ドキュメントには回答に関連する公式ドキュメントのリンクが添付されています。

連続した質問に対する応答

Lightspeedは会話履歴を記憶しており、連続した質問に対しても回答できます。

例としてIDP設定について質問します。

OpenShiftのIDP設定についての質問

IDPの種類の説明やOAuthの設定方法、LDAPの場合の設定方法などについて回答します。次にGitHubの場合の設定方法について質問します。

Githubの場合の質問

GitHubをIDPとして設定する方法について回答します。このように連続した質問に対しては会話履歴に関連づいた回答をします。

リソースの情報を添付した質問

LightspeedはOpenShiftのリソースのyamlやイベント、ログを添付して質問することができます。cluster-version-operatorというOpenShiftのバージョン管理を行っているpodを例に質問をします。

最初にpodのyamlを添付して、OpenShiftクラスターの自動更新設定について質問します。cluster-version-operatorの詳細画面に移動してチャット欄の+ボタンからYAMLを選択します。

リソースの詳細画面を開いている状態で、+ボタンからyamlやlogを添付できる

OpenShiftの自動更新設定をyamlから調べてもらう

yaml内から情報を読み取り、自動更新設定がオフになっていることを回答します。

次にlogを添付してエラーの有無を確認します。logやeventは添付する量を調整できるので、無駄にLLMリソースを消費せずに質問ができます。

logを添付する際にlogの量を設定する

logからエラーがないか質問する

重大なエラーはなかったが、警告があることを回答します。このようにリソースを添付して送信することでOpenShiftの問題を解決できます。

Alertのトラブルシューティング

リソースのyamlのみならず、Alertの情報を添付して質問することも可能です。AlertmanagerReceiversNotConfiguredというAlertの通知設定をしていないAlertを例にして質問をします。

Alertの例:Alertの通知設定がされていないという警告

Alertについての質問

Alertがなぜ発生しているのか、その対処法について回答します。このようにAlertのトラブルシューティングにも役立ちます。

日本語の質問

Lightspeedは英語で質問することを想定していますが、日本語で質問することも可能です。

先ほどのAlertの質問を日本語でします。

日本語によるAlertについての質問

Alertの説明と対処法を日本語で回答します。

簡単な質問への回答

Lightspeedに簡単な質問をした場合の回答を紹介します。

基本的な用語の質問

コンテナ関連の用語は専門用語が多く、把握するのが大変です。そこでOpenShiftの基本的な用語についての質問をします。

Deployment

最初にDeploymentとは何か質問します。

Deploymentについての質問

Deploymentの概要について回答します。またDeploymentConfigがOpenShift 4.14以降で非推奨になっている補足情報も回答します。

Pod

次にPodとは何か質問します。

Podについての質問

Podについての概要を回答します。

Operator

最後にOperatorとは何か質問します。

Operatorについての質問

Operatorについての概要を回答します。このようにOpenShiftで用いられる用語を聞くと、参考になるドキュメントへのリンクを含めて解説してくれます。

リソースのyaml作成

OpenShiftのリソースを作成するには複雑なyamlファイルを書かなければなりません。そこでリソースのyamlの例を出力します。

Secret

最初にSecretのyamlの例について質問します。

Secretのyamlの例についての質問

apiVersion: v1
kind: Secret
metadata:
  name: example-secret
  namespace: my-namespace
type: Opaque
data:
  username: <base64 encoded username>
  password: <base64 encoded password>
stringData:
  hostname: myapp.mydomain.com

Secretリソースの例を出力します。dataフィールドに入れる値はbase64でエンコードする必要があることやstringDataを用いれば自動的にbase64にエンコードされてdataフィールドに格納されることを説明します。

Service

次にServiceのyamlの書き方について質問します。

Serviceのyamlの例についての質問

apiVersion: v1
kind: Service
metadata:
  name: my-service
  namespace: my-namespace
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: ClusterIP

Serviceリソースの例を出力し、各フィールドに何が書かれているのか解説します。このようにリソースのyamlの例を聞くことで、yaml内の各フィールドの意味を理解して書くことができるようになります。

よくある質問への回答

OpenShiftを利用する際によくある疑問の解消を行った例を紹介します。

Podのオートスケーリング設定

OpenShiftのpodをオートスケーリングする設定方法について質問します。

Podのオートスケーリングについての質問

Webコンソール上での方法を回答しているので、それに従います。適当なDeploymentのページを開きます。

Deploymentの例:networking-console-plugin

アクションのドロップダウンリストからHorizontalPodAutscalerの追加を選択します。

アクションからHorizontalPodAutscalerの追加を選択

HorizontalPodAutoscalerの設定をすることでオートスケーリングが可能になります。

HorizontalPodAutoscalerの設定

しかし、CPU およびメモリー使用率を使用する場合、CPU およびメモリーリソースの制限を設定する必要があるそうなので、それについても追加で質問します。

CPUとメモリーのリソース制限についての質問

Deploymentにリソース制限を付ける必要があることが分かったのでリソース制限の設定をします。

アクションからリソース制限の編集を選択

リソース制限の設定

リソース制限をしてHorizontalPodAutscalerの設定をするとCPUおよびメモリー使用率によるオートスケーリングができるようになります。

リソース制限設定後のHorizontalPodAutoscalerの設定

最後にHorizontalPodAutscalerを作成するとオートスケーリングが設定されました。

作成したHorizontalPodAutscaler

オートスケーリング設定後のDeployment

このようにLightspeedに質問することでpodの自動スケーリング設定を行うことができます。

PodのデプロイをNamespace単位でノード指定

OpenShiftで特定のNamespace内のpodを特定のノードにデプロイする設定を質問します。

PodのデプロイをNamespace単位でノード指定する方法についての質問

Namespace全体のPodのノード指定はプロジェクトノードセレクターを設定すれば可能と回答しました。Namespaceのyamlのannotaionsに指定したいノードのラベルを設定します。

Namespaceにノードセレクターを設定

これで、このNamespace内ではannotaionsに設定したラベルを持つノードにpodがデプロイされるようになります。試しに設定したNamespace内にPodを作成します。

設定したNamespaceにPodを作成する

作成されたPodを確認するとノードセレクターに指定したラベルが設定されています。また、ノードのラベルを確認すると指定したラベルがあることが確認できます。

作成したPod。ノードセレクターに指定したラベルが、ノードにそのラベルが付与されているノードが設定されている。

ノードのラベル確認

おわりに

このようにOpenShift LightspeedはOpenShift Webコンソール上で気軽に質問することで、OpenShiftの不明な点や問題点に対して、迅速な解決の手助けをしてくれます。まだテクノロジープレビューで粗い部分もありますが、正式版がリリースされた際はぜひ使ってみてください。

参考

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です