Doris Kubernetes Operator
Kubernetes Operator(Doris Operatorと呼ぶ)は、KubernetesプラットフォームでDorisを効率的にデプロイおよび運用したいというユーザーの需要に応えるために誕生しました。 ネイティブなKubernetesリソースの複雑な管理機能を統合し、Dorisコンポーネント間の分散連携やユーザークラスター形態のオンデマンドカスタマイゼーションなどの体験を統合して、より簡潔で効率的かつ使いやすいコンテナ化デプロイソリューションをユーザーに提供します。 Kubernetes上でDorisの効率的な管理と制御を実現することを目指しており、強力な機能と柔軟な設定機能を提供しながら、ユーザーの運用保守管理と学習コストの削減を支援します。
Doris OperatorはKubernetes CustomResourceDefinitions (CRD)に基づいて、KubernetesプラットフォームでのDorisの設定、管理、スケジューリングを実装します。Doris Operatorは、ユーザーが定義した望ましい状態に従って自動的にPodおよびその他のリソースを作成してサービスを開始できます。自動登録メカニズムにより、開始されたすべてのサービスを完全なDorisクラスターに統合できます。この実装により、本番環境で必要不可欠な操作である設定情報の処理、ノード検出と登録、アクセス通信、ヘルスチェックなどのDorisクラスターでの複雑さと学習コストが大幅に削減されます。
Doris Operatorアーキテクチャ
Doris Operatorの設計は二層スケジューラーの原則に基づいています。各コンポーネントの第一層スケジューリングはネイティブなStatefulSetとServiceリソースを使用して対応するPodサービスを直接管理し、パブリッククラウド、プライベートクラウド、自構築Kubernetesプラットフォームを含むオープンソースKubernetesクラスターと完全に互換性があります。
Doris Operatorが提供するデプロイメント定義に基づいて、ユーザーはDorisデプロイメント状態をカスタマイズし、KubernetesのkubectlコマンドによってKubernetesクラスターに送信できます。Doris Operatorは、カスタマイズされた状態に従って各サービスのデプロイメントをStatefulSetおよびその関連リソース(Serviceなど)に変換し、StatefulSetを通じて望ましいPodをスケジューリングします。Dorisクラスターの最終状態を抽象化することで、StatefulSet仕様の不要な設定を簡素化し、ユーザーの学習コストを削減します。
主要機能
-
最終状態デプロイメント:
Kubernetesは最終状態運用保守モードを使用してサービスを管理し、Doris OperatorはDorisクラスターを記述できるリソースタイプ - DorisClusterを定義します。ユーザーは関連ドキュメントと使用例を参考にして、必要なクラスターを簡単に設定できます。 ユーザーはKubernetesコマンドラインツールkubectlを通じて設定をKubernetesクラスターに送信できます。Doris Operatorは必要なクラスターを自動的に構築し、対応するリソースにクラスター状態をリアルタイムで更新します。このプロセスにより、クラスターの効率的な管理と監視が確保され、運用保守操作が大幅に簡素化されます。
-
拡張が簡単:
Doris Operatorはクラウドディスクベース環境での並行リアルタイム水平拡張をサポートします。DorisのすべてのコンポーネントサービスはKubernetesのStatefulSetを通じてデプロイおよび管理されます。デプロイメントまたは拡張時には、StatefulSetのParallelモードを使用してPodが作成されるため、理論上すべてのレプリカをノード開始時間内で開始できます。各レプリカの開始は互いに干渉せず、サービスの開始に失敗しても他のサービスの開始に影響しません。 Doris Operatorは並行モードでサービスを開始し、分散アーキテクチャを内蔵しているため、サービス拡張プロセスが大幅に簡素化されます。ユーザーはレプリカ数を設定するだけで簡単に拡張を完了でき、運用保守操作の複雑さから完全に解放されます。
-
変化を感じさせない:
分散環境では、サービス再起動によりサービスの一時的な不安定性が生じる可能性があります。特にデータベースなどの安定性に極めて高い要件があるサービスにとって、再起動プロセス中のサービス安定性をいかに確保するかは非常に重要なトピックです。DorisはKubernetes上で以下の3つのメカニズムを使用してサービス再起動プロセスの安定性を確保し、再起動およびアップグレードプロセス中にビジネスが感じ取れない体験を実現します。
- グレースフルな終了
- ローリング再起動
- クエリ割り当ての能動的停止
-
ホストシステム設定:
一部のシナリオでは、Apache Dorisの理想的なパフォーマンスを実現するためにホストシステムパラメータを設定する必要があります。コンテナ化シナリオでは、ホストデプロイメントの不確実性とパラメータ変更の困難さがユーザーに課題をもたらします。この問題を解決するために、Doris OperatorはKubernetesの初期化コンテナを使用してホストパラメータを設定可能にします。 Doris Operatorはユーザーがホストで実行されるコマンドを設定し、初期化コンテナによってそれらを有効にできます。可用性を向上させるため、Doris OperatorはKubernetes初期化コンテナの設定方法を抽象化し、ホストコマンドの設定をより簡単で直感的にします。
-
永続的設定:
Doris OperatorはKubernetes StorageClassモードを使用して各サービスにストレージ設定を提供します。ユーザーがマウントディレクトリをカスタマイズできます。起動設定をカスタマイズする際、ストレージディレクトリが変更された場合、カスタムリソースでディレクトリを永続的な場所として設定でき、サービスがコンテナ内の指定されたディレクトリを使用してデータを保存できます。
-
ランタイムデバッグ:
コンテナ化サービスのTrouble Shootingにおける最大の課題の1つは、ランタイムでのデバッグ方法です。可用性と使いやすさを追求しながら、Doris Operatorは問題の特定により便利な条件も提供します。Dorisの基本イメージには、問題特定のための様々なツールがプリセットされています。リアルタイムでステータスを確認する必要がある場合は、kubectlが提供するexecコマンドを通じてコンテナに入り、内蔵ツールを使用してトラブルシューティングできます。 不明な理由でサービスを開始できない場合、Doris OperatorはDebug実行モードを提供します。PodがDebug起動モードに設定されると、コンテナは自動的に実行状態に入ります。この時、
execコマンドを通じてコンテナに入り、手動でサービスを開始して問題を特定できます。詳細については、このドキュメントを参照してください。
互換性
Doris Operatorは標準K8s仕様に従って開発されており、主要クラウドベンダーが提供するもの、標準に基づく自構築K8sプラットフォーム、ユーザー構築プラットフォームを含む、すべての標準K8sプラットフォームと互換性があります。
クラウドベンダー互換性
主要クラウドベンダーのコンテナ化サービスプラットフォームと完全に互換性があります。Doris Operatorの環境準備と使用推奨事項については、以下のドキュメントを参照してください:
インストールと管理
前提条件
デプロイメント前に、ホストシステムを確認する必要があります。オペレーティングシステムチェックを参照してください。
Doris Operatorのデプロイ
詳細については、Compute-Storage結合またはCompute-Storage分離のDoris Operatorインストールドキュメントを参照してください。