Karmadaを使用した複数のOKEクラスタでのワークロードの管理

はじめに

Karmada (Kubernetes Armadaの略)は、アプリケーションを変更することなく、複数のKubernetesクラスタおよびクラウド環境でクラウドネイティブ・アプリケーションをシームレスに実行できる管理プラットフォームです。Karmadaは、KubernetesネイティブAPIと高度なスケジューリング機能を活用することで、オープンで真にマルチクラウドのKubernetesエクスペリエンスを提供します。

マルチクラウドおよびハイブリッド・クラウドのユース・ケース向けに設計されたKarmadaは、クラスタ間のアプリケーションを管理するためのターンキー自動化を提供します。そのコア機能には、一元管理、高可用性、自動障害リカバリ、インテリジェントなトラフィック・スケジューリングなどがあります。

目的

前提条件

タスク1: デモに必要なリソースの作成

ノート:次のステップは、デモ中に使用される3つのOKEクラスタと1つのVMをデプロイする方法を示しています。

  1. githubからterraformファイルを含むリリースzipをダウンロードします: karmada-on-oke

  2. Oracle Resource Managerを使用して、スタックを作成および適用します。

    1. ハンバーガー・メニューを使用して、Oracle Resource Managerに移動します。
    2. Stacksを選択します。
    3. Create stackを選択します。
    4. My configurationを選択します。
    5. My configurationセクションで、Zip fileが選択されていることを確認します。以前にダウンロードしたZipファイルを選択します。Uploadを選択します。
    6. スタックにわかりやすい名前を付けます。
    7. Nextを選択します。
    8. VMへの接続に使用するssh公開キーを選択します。
    9. リソースが作成されるコンパートメントを選択します。
    10. Nextを選択します。
    11. 次の画面で、Run applyを選択します。
    12. Createを選択します。
  3. VMのパブリックIPを取得します。

    前のステップのジョブが正常に実行されると、ログの最後の行にVMのパブリックIPが含まれている必要があります。後で使用するために記録します。

タスク2: ホスト・クラスタへのKarmadaのインストール

  1. 以前に取得したIPを使用して、sshを使用してVMに接続します。
    ssh -i <private-ssh-key> opc@<public-IP>
    
  2. rootユーザーに切り替えます。

    sudo su -
    
  3. ホストクラスタにkarmadaコンポーネントをインストールします。

    karmadactl init
    

タスク3: OKEクラスタ・メンバーへの参加

  1. クラスタmember1への参加:

       karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config  join member1 --cluster-kubeconfig=$HOME/.kube/config-k1
    
  2. クラスタmember2の結合:

       karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config  join member2 --cluster-kubeconfig=$HOME/.kube/config-k2
    
  3. メンバー・クラスタの表示:

    karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config  get clusters
    

タスク4: Karmadaへのワークロードのデプロイ

  1. KUBECONFIGをkarmada-apiサーバーを指すように設定します。

    export KUBECONFIG=/etc/karmada/karmada-apiserver.config
    
  2. デプロイメントおよび対応する伝播ポリシーを作成します。

    kubectl apply -f https://raw.githubusercontent.com/oracle-devrel/oci-automation-hub/refs/heads/main/karmada-on-oke-sample/deployment.yaml
    kubectl apply -f https://raw.githubusercontent.com/oracle-devrel/oci-automation-hub/refs/heads/main/karmada-on-oke-sample/propagationpolicy.yaml
    
  3. デプロイメントを検証します。

    karmadactl  get deployment --operation-scope all
    

    出力は次のようになります。

    # karmadactl  get deployment --operation-scope all
    NAME    CLUSTER   READY   UP-TO-DATE   AVAILABLE   AGE   ADOPTION
    nginx   Karmada   3/3     3            3           22m   -
    nginx   member2   2/2     2            2           22m   Y
    nginx   member1   1/1     1            1           22m   Y
    

    3つのポッドのうち、2つのポッドがmember2で実行され、1つはmember1で実行されていることに注意してください。

タスク5: クリーン・アップ

  1. ホスト・クラスタからkarmadaコンポーネントをアンインストールします。
karmadactl --kubeconfig /root/.kube/config deinit
  1. terraformスタックを使用して作成されたリソースを破棄します。

確認

その他の学習リソース

docs.oracle.com/learnで他のラボを探すか、Oracle Learning YouTubeチャンネルで無料のラーニングコンテンツにアクセスしてください。また、Oracle Learning Explorerになるには、education.oracle.com/learning-explorerにアクセスしてください。

製品ドキュメントについては、Oracle Help Centerを参照してください。