YAML を記述せずに Kubernetes アプリケーションを管理するにはどうすればよいでしょうか?

YAML を記述せずに Kubernetes アプリケーションを管理するにはどうすればよいでしょうか?

Kubernetes は、その境界内にあるすべてをリソースとして抽象化します。主要部分は、Deployment と StatefulSet によって表されるワークロード コントローラーです。他の種類のリソースは、これらのメイン リソースを中心に機能します。これらのリソースを組み合わせることで、IT 技術スタッフ向けのワークロード中心のモデルが実現します。 Kubernetes 内のすべてのリソースは、宣言型構成ファイルを通じて編集および記述されます。 Yaml フィールド定義は IT 技術者に最大限の自由を与えますが、同時にその能力に極めて高い要求を課します。

アプリケーションモデルでKubernetes管理を簡素化

チームがネイティブ Kubernetes をしばらく使用している場合、すべての IT 技術者が複雑な Kubernetes 宣言型構成ファイル (YAML) の作成に長けているわけではないことに気付くでしょう。特に、ビジネス開発を主な責任とする開発者にとって、YAML を学習して記述することは負担を増大させ、YAML の使用を躊躇させる原因にもなります。

オープンソース プロジェクト Rainbond は、アプリケーション中心の設計パターンを使用するクラウドネイティブ アプリケーション管理プラットフォームです。この設計パターンに基づいて、ワークロードよりも高いレベルのアプリケーション モデルが抽象化されます。ユーザーエクスペリエンスの観点からは、YAML を学習して記述する必要がなく、ビジネス アプリケーションの完全なライフサイクル管理を実現できます。アプリケーションは、個別に管理できる複数のサービス コンポーネントで構成される完全なビジネス システムに対応します。ビジネス コンポーネントをデプロイするときに、ソース コードとコンテナー イメージから「ドラッグ アンド ドロップ」することで、サービス呼び出し関係を編集できます。各サービス コンポーネントは、グラフィカル インターフェイスに基づいて、いくつかの共通の操作および保守機能を定義して使用できます。これを基に、ユーザーはアプリケーション モデルのコア概念を使用して、ビジネス システム全体をアプリケーション テンプレートの形式で公開するなど、より高度な操作を実行することもできます。また、テンプレートに基づいてビジネス システムをワンクリックでインストール/アップグレードすることもできます。ソフトウェア配信の分野では、この機能は非常に役立ちます。最終的な配信環境がオンラインかオフラインかに関係なく、アプリケーション テンプレートに基づいて迅速な配信やパーソナライズされた配信を実行できます。

Rainbond が使用するアプリケーション モデルにより、開発者はアプリケーションとビジネス自体に集中できるため、人々に受け入れられやすくなります。トリミング後も保持される操作およびメンテナンス機能は、グラフィカル インターフェイスを通じて表示および操作されるため、使用の難しさが大幅に軽減されます。アプリケーション テンプレートを使用すると、ほとんどの開発者は複雑な宣言型構成ファイルを編集することなく、Kubernetes をスムーズに使用できます。

Kubernetes YAMLをアプリケーションモデルに変換する

変換プロセス全体は、次の 3 つのステップに要約できます。

  1. 開発者が最もよく使用するワークロードについては、ウィザードのような方法でソース コードとコンテナー イメージから自動的に生成したり、既存の YAML にインポートしてアプリケーションを実行したりできます。インポート プロセスでは、Deployment、StatefulSet、Job、CronJob タイプなど、変換可能なすべてのワークロード タイプ リソースが自動的に識別されます。これらのリソースはアプリケーション モデルに変換され、サービス コンポーネントとして実行されます。
  2. 生成されたサービス コンポーネントをインポートした後、環境変数、イメージ アドレスなどの基本的なワークロード プロパティをインターフェイスを通じて表示および編集できます。変換プロセス中に、識別された高度なワークロード プロパティがサービス コンポーネントに追加され、キー/値または YAML の形式で表示および管理できます。
  3. Secret、ServiceAccount、Role などの非ワークロード リソース タイプは分類および識別され、アプリケーション インターフェイスの k8s リソース ページに読み込まれ、オペレーターがインタラクティブなエクスペリエンスで編集できるようになります。

管理および変換できる高度なワークロード属性には次のものがあります。

物件名

効果

ノードセレクタ

ノード セレクター: 特定のタイプのノード スケジューリングを指定するときに使用されます。

ラベル

ラベル: セレクターが使用するサービス コンポーネントのラベルをカスタマイズするために使用されます。

ボリューム

ストレージ ボリューム: Rainbond によって管理されないボリューム タイプのマウントを定義するために使用されます。

ボリュームマウント

ボリュームのマウント: ボリュームをコンテナーにマウントするためにボリュームと共に使用します。

親和性

アフィニティ: ノード アフィニティやポッド アフィニティを含む、より高度なスケジューリング方法。

許容範囲

許容範囲: ノード テイントと組み合わせて使用​​すると、指定された許容範囲を持つポッドのみが指定されたノードにスケジュールされます。

サービスアカウント名

サービス アカウント名: 対応するポッドに特定の権限が付与されるように、サービス コンポーネントの既存の SA を指定します。

特権

特権モード: その名にふさわしい構成です。必要でない限り有効にしないでください。

環境

環境変数: Rainbond によって管理されない環境変数を定義し、参照操作をサポートするために使用されます。

拡張された RAM モデルは、その後のビジネス システム全体のワンクリック インストール/アップグレード/配信用のアプリケーション テンプレートとして公開できることは注目に値します。

既存のKubernetesアプリケーションのテストとプラクティスをインポートする

以下のテストは、Rainbond v5.8 に基づいています。既存のアプリケーションのKubernetesへのインポートをテストするために、wp名前空間にデプロイされているWordpressのWebサイト構築システムを使用してインポートテストを実行する予定です。このシステムは次のリソースで構成されています。

 [ root @localhost ~ ] # kubectl get secretservicedeploymentstatefulsetpod - n wp
名前タイプデータ年齢
シークレット/ デフォルト- トークン- nq5rs kubernetes .io / サービス- アカウント- トークン3 27 m
シークレット/ mysql - シークレット不透明2 27
名前タイプクラスタ- IP 外部- IP ポート( S ) 年齢
サービス/ wordpress NodePort 10.43 .157 .40 < なし> 8080 : 30001 / TCP 5 分19秒
サービス/ wp - mysql ClusterIP 10.43 .132 .223 < なし> 3306 / TCP 27
名前準備完了最新利用可能年齢
展開アプリ/ wordpress 1 / 1 1 1 5 分19秒
名前年齢
statefulset.apps / wp - mysql 1/1 27 m
名前準備完了ステータス再起動年齢
pod / wordpress - 66 bc999449 - qv97v 1 / 1 実行中0 5 分19秒
pod / wp - mysql - 0 1 / 1 実行中0 27

Rainbond にアクセスし、クラスターで [インポート] を選択します。このページでは、リソースをインポートする名前空間​wp​​ ​ を選択できます。プラットフォームは、ラベルに従ってリソースをグループ化します。

Rainbond は、リソースで定義されたラベルに基づいてアプリケーションを分割します。たとえば、app.kubernetes.io/name:wp-mysql または app:wordpress に一致するリソースは、図の 2 つの異なるアプリケーションに分散されますが、上記のラベルを持たないリソースは、グループ化されていないアプリケーションに均一に分割されます。アプリケーション モデルの高度な適用はアプリケーション全体を対象としているため、アプリケーションの分割は非常に重要です。そのため、インポートする前に慎重に計画し、適切なラベルを追加する必要があります。

インポート プロセス中、Rainbond は拡張モデルを通じてさまざまな属性を管理します。運用・保守操作の大部分は非常に使いやすくなっており、残りの部分は Kubernetes 属性ページによって管理されます。

インポートが完了すると、WordPress と wp-mysql の両方のアプリケーションを Rainbond を使用して管理できるようになります。

  • 港湾管理

インポートする前は、WordPress は NodePort タイプのサービスを通じて外部に公開されていました。ただし、Rainbond 管理をインポートした後は、ゲートウェイを使用して独自のポート 80 を公開できます。アクセス ポリシーを有効にするには、WordPress サービス コンポーネントを 1 回再起動する必要があることに注意してください。

一部のビジネスでは、アクセス エントリが動的な仕様をサポートしていないため、ビジネス側で新しいアクセス エントリに適応するために何らかの変更を加える必要があります。 Wordpress の場合は、一般オプションでサイト アドレスを再定義する必要があります。

  • ストレージ管理

私が導入した WordPress システムでは、すべてのコンポーネントがストレージにホストパス モードを使用します。この構成はシンプルですが、Pod がドリフトする可能性がある大規模な Kubernetes 環境には適していません。 Rainbond を導入すると、複数の Pod 間でのデータ共有やホスト間での Pod の移行をサポートする、使いやすい共有ストレージが提供されます。元のホストパス ストレージを再定義できます。再定義されたストレージ パスは空になるため、新しいパスと古いパスを見つけてデータ移行を実行することを忘れないでください。

実用的な意義

このモデルを適用することで、IT 技術者は、基盤となる複雑なツールの使用ではなく、ビジネスそのものに重点を置くことができます。最終的な効果は、運用コストと理解の難しさが簡素化され、Kubernetes の実装が容易になることです。

<<:  ゼロトラスト原則を使用して Kubernetes 環境へのアクセスを保護する

>>:  クラウドコンピューティングの構成エラーによって生じる脆弱性に対処する方法

推薦する

#BlackFriday# maple-hosting: オランダの苦情防止サーバー、月額 159 ドル、e3-1246v3/32g メモリ/2*1T SSD/100T トラフィック/1G 帯域幅

maple-hosting はブラックフライデーのプロモーションを正式に開始しました。専用サーバーを...

効率化と開発サイクルの短縮を目的としたコミュニティPHPビジネス開発について

インターネットビジネスが急速に発展している現在、雨後の筍のように新製品が次々と登場し、古い製品ライン...

成功するクラウド戦略の6つの柱

パンデミックによって引き起こされた混乱により、多くの企業は人材と IT 資産をどこに配置する必要があ...

ハイブリッドバックアップはクラウドとローカルバックアップの両方のメリットを享受できる

最終的なバックアップ場所がクラウドにある場合でも、組織は復旧を高速化するためにローカル バックアップ...

losangelesvps: 新年のプロモーション、無制限のトラフィック VPS が年間 19.5 ドルから、KVM/1G メモリ/25gSSD/1Gbps 帯域幅

losangelesvps の新年プロモーションは数日前にリリースされたため、少し遅れています。時期...

ピークサーバー - 6.99ドル/KVM/フェニックス/1gメモリ/25gハードディスク/1Tトラフィック

最近、peakservers の広告が多数あり、さまざまな場所で見かけます。この会社についての紹介は...

人材のデジタル化を推進するiTalentU 2020第5回北森ユーザーカンファレンスと秋季製品発表会が盛況のうちに終了

2020年9月3日、北森クラウドコンピューティング株式会社が主催する「iTalentU 2020第5...

Baidu インデックスのアップグレードによるウェブサイトコンテンツページのランキング優位性

Baidu の検索システムの全面的なアップグレードにより、大量の高品質コンテンツをより速く、より完全...

JD.com、蘇寧、国美が熾烈な競争を繰り広げる。価格比較検索が新たな戦場に

A5ウェブマスターネットワークは8月16日、8月15日に電子商取引大手3社、JD.com、Sunin...

ソフトコンテンツマーケティングが現代人の穏やかな嗜好に合致

現代人は、お酒を飲むときに、香り高くて純粋でありながら辛くない、穏やかでまろやかな感覚を追求する傾向...

技術概要: 分散システムにおける一般的な同期メカニズム

高いデータ可用性を確保するには、分散システムでデータの複数のコピーを保存する必要があります。次の疑問...

まとめ:年間100元を超えない安価な海外VPS業者のまとめ

VPS(クラウドサーバー)の用途、人口、消費能力など多くの要素を考慮すると、年間支払いが100元未満...

2022年にマルチクラウド市場はどのように発展するでしょうか?

マルチクラウドとは、企業が 2 つ以上のクラウド コンピューティング プロバイダーが提供するクラウド...