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を通じてデプロイおよび管理されます。デプロイまたは拡張時、PodはStatefulSetのParallelモードを使用して作成されるため、理論的にはすべてのレプリカがノードの起動にかかる時間内に開始できます。各レプリカの起動は互いに干渉せず、サービスの起動に失敗した場合でも、他のサービスの起動に影響しません。 Doris Operatorは同時モードでサービスを開始し、分散アーキテクチャを内蔵しているため、サービス拡張のプロセスが大幅に簡素化されます。ユーザーは、レプリカの数を設定するだけで拡張を簡単に完了でき、運用保守作業の複雑さから完全に解放されます。
-
気づかれない変更:
分散環境では、サービスの再起動がサービスの一時的な不安定性を引き起こす場合があります。特にデータベースなどの安定性に極めて高い要求があるサービスでは、再起動プロセス中にサービスの安定性を確保する方法は非常に重要なトピックです。DorisはKubernetes上で以下の3つのメカニズムを使用してサービス再起動プロセスの安定性を確保し、それにより再起動とアップグレードプロセス中にビジネスに対する気づかれない体験を実現します。
- 正常な終了
- ローリング再起動
- クエリ割り当ての能動的停止
-
ホストシステム設定:
一部のシナリオでは、Apache Dorisの理想的なパフォーマンスを実現するためにホストシステムパラメータを設定する必要があります。コンテナ化シナリオでは、ホストデプロイメントの不確実性とパラメータ変更の困難さがユーザーに課題をもたらします。この問題を解決するため、Doris OperatorはKubernetesの初期化コンテナを使用してホストパラメータを設定可能にします。 Doris Operatorは、ユーザーがホスト上で実行されるコマンドを設定し、初期化コンテナによってそれらを有効にすることを可能にします。可用性を向上させるため、Doris OperatorはKubernetes初期化コンテナの設定方法を抽象化し、ホストコマンドの設定をより簡単で直感的にします。
-
永続的設定:
Doris Operatorは、各サービスにストレージ設定を提供するためにKubernetes StorageClassモードを使用します。ユーザーがマウントディレクトリをカスタマイズできます。起動設定をカスタマイズする際、ストレージディレクトリが変更された場合、カスタムリソース内でディレクトリを永続的な場所として設定できるため、サービスはコンテナ内の指定されたディレクトリを使用してデータを格納します。
-
ランタイムデバッグ:
コンテナ化サービスのトラブルシューティングにおける最大の課題の一つは、ランタイムでのデバッグ方法です。可用性と使いやすさを追求する一方で、Doris Operatorは問題の場所特定により便利な条件も提供します。Dorisのベースイメージでは、問題の場所特定のための様々なツールが事前設定されています。リアルタイムでステータスを確認する必要がある場合、kubectlが提供するexecコマンドを通じてコンテナに入り、内蔵ツールを使用してトラブルシューティングができます。 不明な理由でサービスを開始できない場合、Doris OperatorはDebug実行モードを提供します。PodがDebug起動モードに設定されると、コンテナは自動的に実行状態に入ります。この時、
execコマンドを通じてコンテナに入り、手動でサービスを開始して問題を特定できます。詳細については、このドキュメントを参照してください
互換性
Doris Operatorは標準K8s仕様に従って開発されており、主要クラウドベンダーが提供するものや、標準に基づく自社構築K8sプラットフォーム、ユーザー構築プラットフォームを含む、すべての標準K8sプラットフォームと互換性があります。
クラウドベンダー互換性
主要クラウドベンダーのコンテナ化サービスプラットフォームと完全に互換性があります。Doris Operatorの環境準備と使用に関する推奨事項については、以下のドキュメントを参照してください:
インストールと管理
前提条件
デプロイメント前に、ホストシステムを確認する必要があります。Operating システム Checkを参照してください
Doris Operatorのデプロイ
Kubernetes上でDoris Operatorをデプロイする前に、Doris Operator CRDをインストールする必要があります。
- 詳細なインストールドキュメントについては、Doris Operator Installationを参照してください
Dorisクラスターのデプロイ
- クラスター設定ドキュメントについては、Doris Operator Cluster Configurationを参照してください
- インストールドキュメントについては、Doris Cluster Installationを参照してください
クラスターの運用保守
- クラスター運用保守ドキュメントについては、Doris Operator Cluster Operationを参照してください
- クラスターアクセスドキュメントについては、Doris Operator Cluster Accessを参照してください