背景主要クラウドベンダーの製品ポートフォリオが拡大するにつれ、基本的なコンピューティング設備、ミドルウェアサービス、ビッグデータ/ AIサービス、アプリケーション運用保守管理サービスなどが企業や開発者によって直接利用できるようになります。多くの企業が、さまざまなクラウド ベンダーのサービスに基づいて独自のエンタープライズ インフラストラクチャ プラットフォームを構築していることに気付きました。クラウド サービスをより効率的かつ統一的に管理するために、近年 IaC の考え方が普及しており、その中でも Terrafrom はほぼすべてのクラウド ベンダーに採用され、サポートされています。 Terrafromモデルを中核としたクラウドサービスIaCエコシステムが形成されました。しかし、Kubernetes が普及するにつれて、IaC にはより広い想像の余地が与えられています。 Terraform IaC の機能とエコロジカルな成果が Kubernetes の世界に統合されれば、これは強力な組み合わせになると信じています。 理由1: 統合エンタープライズハイブリッドクラウドPaaSプラットフォームの構築 現在、ほとんどの企業は、クラウドと自社構築のインフラストラクチャを統一的に統合するために、Kubernetes サービスに基づく PaaS プラットフォームまたはインフラストラクチャ管理プラットフォームを構築しています。しかし、インフラストラクチャの提供に加えて、さまざまなミドルウェア、ビッグデータサービス、AIサービス、アプリケーションの観測性なども、クラウドベンダーが提供する主要な製品です。エンタープライズ プラットフォームには、より多くのクラウド サービスを作成および破棄する機能が必要です。この時点で、Terraform がプラットフォーム ビルダーの目に留まることになります。では、Kubernetes の外部で別のドッキング開発を行う必要があるのでしょうか?同時に、継続的リリース、GitOps、グレースケールリリースなどの要件も考慮する必要があります。明らかに、Kubernetes に基づいて直接接続を完了できる場合は、それがより良いオプションです。 理由2: 開発者向けのサーバーレスエクスペリエンスの構築 クラウド コンピューティングの本質または目標はサーバーレスですが、自社構築のインフラストラクチャには常に制限があります。クラウド サービスへのシームレスなアクセスにより、「ほぼ無制限」のリソース プールが実現します。同時に、開発者がビジネス アプリケーションを設計する際には、サーバーレス プラットフォーム上でビジネス サービスのデプロイメントを直接完了するだけでなく、メッセージ ミドルウェアやデータベースなどのサービスも直接取得する必要があります。クラウドベンダーに接続するソリューションを導入する企業が増え、運用・保守管理コストが削減されます。しかし、開発者にとっては、これを透明性と一貫性を持って行うのが最適です。 理由3: より徹底したIaC機能 すべてがサービスであり、クラウド リソース、自社構築のインフラストラクチャ、さまざまなエンタープライズ アプリケーションを記述するには、統一されたモデルを使用する必要があります。 Terraform と Kubernetes は、開発者向けの IaC 仕様に統合および統一できます。メリットとしては、クラウド リソースの管理機能、コンテナ エコシステムの豊富な運用および保守機能、複雑なアプリケーションの統合オーケストレーションなどが挙げられます。 理由 4: Terraform のオープンソース バージョンはクライアント モードで動作し、Kubernetes のように最終状態を維持できません。 Terraform オープンソース ディストリビューションはクライアント モードでのみ動作するため、ユーザーは配信完了後にサービス ステータスを維持できず、ネットワーク障害が発生して配信が失敗した場合は手動で再試行する必要があります。 Kubernetes は開発者に最終状態指向の IaC コンセプトをもたらし、コントローラー モードを通じてターゲット リソースの状態を維持します。これにより、自動化レベルでの Terraform ツールの利点がさらに強化されます。 KubeVela は、開発者に統一された API 抽象化を提供する最新のソフトウェア配信コントロール プレーンであり、開発者は同じ IaC アプローチを使用して一般的なアプリケーションとクラウド サービスの両方を配信できます。 KubeVela は Terraform API と Kubernetes API を直接サポートします。すべての Terraform モジュールとすべての Kubernetes オブジェクトは、変更せずに再利用できます。 KubeVela を使用すると、上記の 3 つの要求を簡単に実現できます。また、Kubernetes ネイティブ CRD を定義してクラウド サービスに接続し、エクスペリエンスをよりネイティブにする、Crossplane プロジェクトの別のモデルも確認しました。 KubeVela は当然のことながら Crossplane API もサポートしています。 次に、KubeVela が Terraform を使用して 2 つの部分を通じてユーザーに統一された IaC エクスペリエンスを提供する方法を詳しく見てみましょう。
1) KubeVela を通じて Cloud ECS インスタンスにパブリック IP アドレスを提供します。 2) ECS インスタンスをトンネル サーバーとして使用して、イントラネット環境内の任意のコンテナ サービスへのパブリック アクセスを提供します。 Terraform モジュールを KubeVela コンポーネントに変換するTerraform モジュールの準備 十分にテストされた Terraform モジュールがすでにある場合は、この手順をスキップできます。 始める前に、以下のものを用意してください。
これはこのデモに使用したTerraformモジュールです[2] 1. Terraform モジュールをダウンロードします。 gitクローンhttps://github.com/wonderflow/terraform-alicloud-ecs-instance.git 2. Alibaba Cloud Provider の最新の安定バージョンを初期化してダウンロードします。 テラフォーム初期化 3. Alibaba Cloud 認証アカウント情報を設定します。 エクスポートALICLOUD_ACCESS_KEY = "アクセスキーID" provider.tf ファイルを作成してアカウント情報を設定することもできます。 プロバイダー「alicloud」 { 4. リソースの作成が正常かどうかをテストします。 terraform apply - var -ファイル= test / test .tfvars 5. テストが正常になったら、作成されたリソースをすべて破棄します。 terraform destroy - var -ファイル= test / test .tfvars この時点で、必要に応じてこのモジュールを独自のコード リポジトリにプッシュすることもできます。 Terrafrom モジュールを KubeVela 拡張コンポーネント タイプに変換する このステップが核心です。始める前に、Kubevelaコントロールプレーン[3]がインストールされていることを確認してください。 Kubernetes クラスターがなくても心配はいりません。簡単なデモンストレーションの場合は、VelaD を使用してワンクリックでインストールするだけで十分です。 先ほど準備した Terraform モジュールを使用して、次のアクションを実行します。 KubeVela コンポーネント定義を生成します。 vela def init ecs -- type component -- provider alibaba -- desc "Alibaba Cloud Elastic Compute Service の Terraform 構成" -- git https://github.com/wonderflow/terraform-alicloud-ecs-instance.git > alibaba-ecs-def.yaml モジュールをカスタマイズしている場合は、独自のコード リポジトリ アドレスを直接使用してください。 この時点で、ECS モジュールが KubeVela の拡張コンポーネント タイプとして正常に追加されました。詳細はこちら[4]をご覧ください。 Vela プラットフォームの開発者は、このタイプのコンポーネントを直接使い始めることができます。次のコマンドを実行すると、自動的に生成されたコンポーネントの使用方法のドキュメントを表示できます。 ベラショーアリババ- ecs とても簡単じゃないですか? KubeVela には Terraform 用の完全なツール チェーンがありますが、コミュニティがユーザーにすぐに使用できるプラグインを提供しているため、すべての Terraform モジュールに対してこの操作を繰り返す必要はありません。変換されたコンポーネントを取得するには、対応するクラウド ベンダーのプラグインをインストールするだけです。次に、この機能を適用して、いくつかの興味深いシナリオを試してみましょう。 クラウド サービスを使用してローカル コンテナ アプリケーションをパブリック ネットワークに公開するこのセクションでは、特定のポートを使用して任意の Kubernetes サービスを公開できるソリューションを紹介します。ソリューションは次のものから構成されます。
KubeVela環境を準備する
curl - fsSl https://static.kubevela.net/script/install-velad.sh |バッシュ インストールの詳細については文書1 [6]を参照してください。
velaアドオンでTerraformを有効にする
velaプロバイダーadd terraform - alibaba -- ALICLOUD_ACCESS_KEY < "your-accesskey-id" > -- ALICLOUD_SECRET_KEY "your-accesskey-secret" -- ALICLOUD_REGION < your - region > -- name terraform - alibaba - default 他のクラウドの詳細については文献2 [7]を参照。 パブリックIPアドレスを持つECSインスタンスをデプロイし、FRPサービスを開始する 猫<< EOF |ベラアップ- f - このアプリケーション定義は、パブリック IP アドレスを持つ ECS インスタンスをデプロイします。 各フィールドの詳細を確認するには、次のコマンドを使用します。 ベラショーアリババ- ecs 上記のデプロイメント コマンドを実行した後、次の方法でアプリケーションのデプロイメント ステータスを表示できます。 velaステータスecs -デモ アプリケーションがデプロイされた後、次のコマンドを実行して IP アドレスを取得できます。 $ kubectlシークレット出力を取得- ecs -- template = {{.データ。このパブリックIP base64 --デコード FRP サービス管理ページには、IP アドレス 9091 からアクセスできます。初期アカウント パスワードは admin: vela123 です。これまでに、ECS サービスの展開が完了しました。 FRP サービスの使用 FRP クライアントの使い方は非常に簡単で、クラスター内の任意のサービスにパブリック IP を提供できます。 1. FRP-Proxy を個別に展開します。 猫<< EOF |ベラアップ- f - この場合、local_ip を velaux.vela-system として指定します。これは、名前空間 vela-system 内の velaux という名前の Kubernetes サービスにアクセスすることを意味します。パブリック IP:8083 経由でサービスにアクセスできます。 2. エージェントと通常のアプリケーションを一緒に展開します。 猫<< EOF |ベラアップ- f - デプロイが完了すると、パブリック IP:8082 を介してサービスにアクセスできるようになります。もう 1 つの方法としては、FRP-Proxy を Trait として定義し、サービスを公開する必要があるコンポーネントに直接マウントする方法があります。 KubeVela のドキュメントを読んで、このメソッドの実装を調べていただければ幸いです。 環境をきれいにする テスト中に作成されたアプリケーションをクリーンアップするには、次のコマンドを使用します。 vela削除構成-アプリ- y アプリケーションが削除されると、クラウド サービス コンポーネントも破棄されます。 これまで、特定のユースケースを使用して、KubeVela がクラウド サービスと共通アプリケーションの統一された記述と配信をどのように実現できるかについて説明してきました。ぜひマスターしていただき、ご自身の環境でいろいろと試していただければ幸いです。このケースを通じて、KubeVela と Terraform を組み合わせた最終的な効果についても大まかに理解できるはずです。 KubeVela の詳細については、公式の KubeVela ドキュメントをお読みください。 |
<<: 2023年にはクラウド導入の増加によりビジネス価値が増大
Baidu のサイトウェイトが高いことは周知の事実です。 Baidu の製品はすべてオリジナルソース...
以前、「私はフォーチュン500企業の食品従業員ですが、Douyinの焼きエビ販売者に騙されました」と...
私のブログを長い間フォローしている若い人たちは、8月にvirmachが初めてサーバー上で起動されたと...
メディアの報道によると、8月3日夕方、世界有数のウエハーファウンドリーであるTSMCは、台湾の新竹サ...
親愛なる友人の皆様。こんにちは、Ah Siです。今日は最適化のヒントをいくつか紹介します。 ウェブマ...
2004年に設立されたqhoster.comは、Legendary Tech Enterprises...
コンテンツはウェブサイトの魂です。コンテンツのサポートが不十分だと、ウェブサイトの価値を発揮できませ...
[[420216]] Docker を使用する場合、通常は docker build を使用してイメ...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています「人がいる...
【はじめに】データによると、2012年6月末現在、中国の共同購入サイトの総数は6,069に達し、その...
近年、海外の発展途上国におけるインターネットの普及が徐々に進み、BATなどのインターネット大手による...
気がつけば、インターネット SEO 検索エンジン最適化の職に就いて 3 年近くになります。その間、喜...
こう言うと笑われるかもしれませんが、私の会社の機械製品部門は、過去 2 年間でわずか 3 か月ほどし...
[51CTO.com からのオリジナル記事] ドメイン駆動設計 (DDD) はまだ多くの人にとってあ...
数年にわたる発展を経て、Weibo のインターネット上およびネットユーザーの心の中での地位はますます...