DUICUO

KubeGems: Argo CD や Istio を含む 30 以上のオープンソース サービスをサポートする、強力なクラウド ネイティブの汎用オープンソース PaaS 管理プラットフォームです。

約1年間の継続的なイテレーションを経て、KubeGemsのコア機能は、マルチクラウド、マルチテナントのシナリオにおける統合管理を実現しました。さらに、プラグインアプローチにより、監視システム、ログシステム、マイクロサービスガバナンスなど、多数のプラグインの有効化と無効化をユーザーインターフェース内で直接、柔軟に制御できます。

クラウドネイティブ環境向けの汎用クラウドプラットフォームであるKubeGemsは、その誕生当初から、マルチクラスタおよびマルチテナント環境におけるリソース分離のサポートを重視してきました。ユーザーは、プラットフォームに接続されたKubernetesクラスタに対し、テナントレベルのカスタムリソースプランニングを実行できます。さらに、ネイティブダッシュボードよりもリッチでユーザーフレンドリーなUIインターフェースを提供することで、ユーザー/企業はビジネスロジックやデータのエラーを心配することなく、独自のシナリオに合わせてプラットフォームメタデータを計画できます。

KubeGems は、アクセス制御、リソース計画、ネットワーク分離、テナント ゲートウェイ、ストレージ ボリューム、可観測性、ユーザー監査、証明書管理、カナリア パブリッシング、Istio ガバナンスなど、個人ユーザーまたは企業ユーザーに優れたユーザー エクスペリエンスを提供するための豊富な機能も提供します。

導入

KubeGemsは、Cloud Native Computing Foundation(CNCF)やIstioコミュニティなどの組織のオープンソース製品を幅広く活用し、これらの製品をさらに開発・適応させています。また、一般的な社内要件については、プルリクエスト(PR)を通じてコミュニティに迅速にコードを貢献し、コミュニティのアップデートに合わせて製品を最新の状態に保ちます。

ユーザーがクラウドネイティブ・エコシステムに慣れるための導入障壁をより低くするため、KubeGemsは、統合されたサードパーティ製プラグインを一元管理するための専用インストール・コントローラーを提供しています。これにより、KubeGems製品は、異なる方法で構築されたKubernetesクラスターにも一貫してデプロイできるため、ユーザーはKubeGemsの機能をフルに活用できます。

バージョン v1.20.0 では、KubeGems には約 30 個のサービスが統合されており、有効にするかどうかを選択できます。

インストール

KubeGems Installer Operator は、Operator SDK を使用して構築された Ansible Kubernetes コントローラーです。CRD で定義されたフィールドを介して変数を Ansible に渡します。Installer Operator を実行するには、クラスター管理者からの RBAC 権限が必要です。そのため、デプロイ前にクラスター管理者に連絡し、以下の操作を実行するための十分な権限があることを確認してください。

まず、次のコマンドを使用して KubeGems インストーラー コントローラーをインストールします。

 KUBEGEMS_VERSION = v1.20.0-beta.1
kubectl apply -n kubegems-installer -f \
https://github.com/kubegems/installer-operator/releases/download/ ${KUBEGEMS_VERSION} /centrol.yaml


CRD とコントローラーがデプロイされると、インストールを実行するためのインストーラー オブジェクトの作成を開始できます。

 kubectl apply -f https://github.com/kubegems/installer-operator/releases/download/ ${KUBEGEMS_VERSION} /centrol.installer.yaml


KubeGems がデプロイされると、通常、以下に示すような Pod のリストが表示されます。

正常にデプロイされると、KubeGems によって自動的に作成された、gemcloud-gateway-system 名前空間の下に deftault-gateway という名前のゲートウェイが見つかります。

 kubectl get pod -n gemcloud-gateway-system
名前 準備完了 ステータス 再起動 年齢
default-gateway-5bcb8bc59c-2fcq4 1 /1 実行中0 7d7h
nginx-ingress-operator-controller-manager-56bcddd997-kbjqw 2 /2 実行中0 7d7h
kubectl get svc -n gemcloud-gateway-system
名前 タイプ クラスタIP 外部IP ポート 年齢
デフォルトゲートウェイ ノードポート10 .102.206.7 <なし> 80 :32717/TCP,443:30557/TCP 7d7h
nginx-ingress-operator-controller-manager-metrics-service クラスターIP 10 .96.47.121 <なし> 8443 /TCP 7d8h
nginx-ingress-operator-metrics クラスターIP 10 .111.159.25 <なし> 9113 /TCP 7d8h


次に示すように、別のイングレス ルールを作成して、kubegems ダッシュボード サービスを公開できます。

 apiバージョン: networking.k8s.io/v1
種類: イングレス
メタデータ:
名前: gems-dashboard
名前空間: gemcloud-system
注釈:
nginx.org/proxy-buffering: "false"
nginx.org/websocket-services: gems-dashboard
仕様:
ルール:
-ホスト: console.kubegems.io
http:
パス:
-バックエンド:
サービス名: gems-dashboard
サービスポート: 8000
パス: /
パスタイプ: 実装固有


この時点で、ドメイン名 console.kubegems.io を Kubernetes クラスター内の任意のノードに解決する必要があります。その後、http://console.kubegems.io:<NodePort> 経由でページにアクセスできるようになります。

使用

インポートクラスター

  • 管理者アカウントを使用して KubeGems 管理バックエンドにログインし、右下隅の [ツールボックス] アイコンをクリックして、[システム管理] に移動します。


  • 「クラスターの作成」をクリックし、クラスターの kubeconfig ファイルをテキスト ボックスに貼り付けます。

クラスター名とクラスター コンテナのランタイム タイプを入力し、「Control Cluster」ボックスをオンにします。

情報

コントロール クラスターは gem-insertller-manager サービスを挿入しません。

  • クラスターのインポートが成功し、ステータスが正常になったら、[詳細] をクリックしてクラスター情報管理ページに入ります。

クラスターの詳細ページには、クラスターの基本ステータス、証明書情報、監視メトリック、物理リソース、リソース タイプ、使用状況統計などの情報が含まれます。

テナント管理

  • 管理者アカウントを使用して KubeGems 管理バックエンドにログインし、左上隅の「クラスター リソース」カードをクリックして、「プラットフォーム管理」に移動します (画像を参照)。

  • テナント リストの右上にある [テナントの作成] ボタンをクリックして、「demo」という名前のテナントを作成します。

  • 「デモ」をクリックするとテナントの詳細ページに移動し、テナント メンバーとクラスター リソース クォータを管理できます。

「クラスター リソースの追加」をクリックし、「cluster-demo」クラスターを選択して、8 個のコア、16 GB のメモリ、100 GB のハード ドライブ領域をデモ テナントに割り当てます。

テナントスペース

  • KubeGems のトップバーにある「ワークベンチ」をクリックしてテナントスペースに入り、「ユーザーアバター」をクリックしてテナントスペースの画像を自由に切り替えます。

  • 「プロジェクトの作成」をクリックして、テナントに「demo」という名前のプロジェクト スペースを作成し、役割に応じてこのプロジェクト スペースにメンバーを追加するオプションを選択します。

  • デモ プロジェクト スペースに入り、右上隅の「環境の作成」ボタンをクリックして、demo-env という名前の環境スペースを作成します。

注: 環境スペースの削除戦略は、関連付けのみを削除するか、名前空間全体を削除するかのいずれかです。これらの戦略の主な違いは、環境を削除する際のコントローラーの動作です。

ワークロードを作成する

  1. デプロイメントの作成
  • 環境スペースに入り、左側のサイドバーをクリックして、[ランタイム] - [ワークロード] を選択し、ワークロード管理ページに入ります。

  • 右上隅の「ワークロードの作成」をクリックし、画面の指示に従ってデプロイメント リソースを作成します。

デプロイメントリソースが正常に作成されると、「ワークロード」ページと「コンテナグループ」ページで、作成されたコンテナリソースの情報を確認できます。また、該当するリソースをクリックして詳細ページに移動し、リソースの詳細を参照することもできます。

詳細ページで提供されるリソースには、以下のものが含まれますが、これらに限定されません。

  • 基本的な作業負荷情報
  • メタデータ
  • コンテナの状態
  • イベント
  • モニター
  1. サービスを作成する
  • 環境スペースに入り、左側のサイドバーをクリックして、[ランタイム] - [サービス] を選択してサービス管理ページに入り、画面の指示に従ってサービスを作成します。

  1. Ingressを作成する
  • 環境スペースに入り、左側のサイドバーをクリックして、[ランタイム] - [ルート] を選択してサービスルート管理インターフェースに入り、画面の指示に従って Ingress を作成します。

  • 作成後、「demo-http」をクリックしてイングレスの詳細ページに入ります。ルートの「ルーティングルール」の下にある「アクセス」をクリックすると、サービスのウェブページに直接アクセスできます。