この記事はWeChatの公開アカウント「Ask Qi」から転載したもので、著者はChen Shaowenです。記事を転載する場合は公式アカウントまでご連絡ください。 1. この記事は主に何について書かれていますか?流砂の上に高いプラットフォームを構築しないでください。業務量の増大と業務形態の進化には、強固で強力な IT システムのサポートが必要です。事業内容は市場に対して透明ですが、IT システムは一夜にして構築して完成させることはできません。今後、企業間の競争は主にITシステム間の競争となり、ビジネスニーズに迅速に対応できる能力が成功の鍵となるでしょう。 ITシステムも常に進化しています。効率的でインテリジェントな IT システムの構築には多大なコストがかかります。最初は十分な機能があれば十分ですが、次に使いやすさが求められ、最終的にはコア競争力となる必要があります。 変化は怖いものではありません。怖いのは、その重い歴史的負担だ。技術者にとって、新しい要件は難しい作業ではありませんが、難しいのは高速飛行中に部品を交換することです。元の機能の正常な動作を確保し、新しいニーズを満たすためには、IT インフラストラクチャを交換する必要があります。 コンテナ化と Kubernetes 変換のプロセスにおいて、ファイルを仮想マシン (VM) に直接配布し、VM 上でスクリプトを実行する方法がこの記事の焦点です。仮想マシンを直接操作することは、クラウドネイティブの不変インフラストラクチャの定義を満たしませんが、従来のビジネス シナリオでは、IT プラットフォームがソリューションを提供することが求められます。この記事ではこの質問に対する答えを示します。 2. PaaS プラットフォームが必要な理由IT 運用チームが PaaS の構築を開始すると、真に立ち上がったと言えます。 現在の環境では、ビジネスモデルやフォームはもはや企業秘密ではありません。情報と人材の急速な流れにより、企業間の対立が露骨化している。あなたのビジネスを私も引き継ぐことができます。私が持っている機能を追加することもできます。短期的な爆発的なビジネス成長の時代は終わり、洗練されたオペレーションとデータに基づく意思決定の時代になりました。 新しい時代では、IT システムに対する要求がさらに高まりますが、これは従来のモデルでは満たすことができません。従来のモデルは、特定のシナリオ向けの SaaS サービスを開発し、スキルを固定プロセスにカプセル化し、コストを削減し、効率を高め、リスクを制御することです。初期段階ではこれで十分でしたが、事業規模が大きくなるにつれ、運用・保守担当者は機能の変更や追加のために際限なく残業を強いられるようになりました。 PaaS の目的は、いくつかの共通機能を抽象化することです。中間プラットフォームもこのように構築され、不変のドメインがプラットフォーム上に実装され、外部へのサービス インターフェイスが提供されます。市場の急速な変化に対応するために、フロントエンドをビジネスに直接結び付けます。 PaaSプラットフォームがあれば、ITスキルに落ち着きの方向性が生まれ、IT担当者は業務を考えるための反復的で複雑な作業から解放され、組み立てを通じて迅速に業務をサポートできるようになります。 3. ファイル配布とスクリプト実行の実装方法3.1 従来のPaaSプラットフォームでは 運用・保守担当者がファイルを一括配布したりスクリプトを実行したりするように求められた場合、Ansible を使用するとすぐに実行できます。 しかし、上で述べたように、私たちは手を解放して PaaS プラットフォームを構築する必要があります。以下は、従来の IT 施設アーキテクチャの図です。 従来の IT プロセスでは、購入したすべてのマシンを CMDB に登録し、管理用のエージェントをインストールする必要があります。エージェントが提供するファイルおよびスクリプト パイプラインを通じて、上位プラットフォームはファイル配布およびスクリプト実行の機能を実装できます。 しかし、エージェントの開発コストは非常に高くなります。高い同時実行性、高いパフォーマンス、高い可用性、高い安定性、高いセキュリティを備えたエージェントを磨き上げるには、数え切れないほどのビジネス上の失敗が必要です。一部のオープンソース ソリューションでは、企業の IT コアとなるエージェントはオープンソースではありません。 3.2 Kubernetesの場合 クラウド ネイティブのコンテキストでは、IaaS レイヤー VM の状態を直接変更することは許可されておらず、これを不変インフラストラクチャと呼びます。いくつかのプラクティスでは、コンテナの SSHD が無効になっており、SSH ログインがあるとコンテナは直ちに終了します。 Kubernetes では、ファイルをノードに直接配布したりスクリプトを実行したりすることは推奨されません。 不変インフラストラクチャ (IaC) のロジックは、状態を再現でき、宣言的セマンティクスに準拠できることを保証することです。インフラストラクチャを直接変更することは、手続き的な操作です。インフラは稼働中の状態であり、不確実な要素が多く、正確に記述することは困難です。 以下は、クラウド ネイティブにおける IT インフラストラクチャ アーキテクチャの図です。 Kubernetes は IaaS 層のリソースを引き継ぎ、システム全体の動作を制御します。ビジネス サービスは主にイメージ リポジトリを通じて配布され、ビジネス ログの収集と監視には他のオープン ソース コンポーネントの使用も必要です。 4. Kubernetesはファイルを配布し、スクリプトプランを実行します4.1 訓練の準備 リストは次のとおりです:
4.2 訓練の内容
配布用のKubernetesジョブを作成する 4.3 演習の目的
ファイルを仮想マシンに配布し、ダウンロードサービスに追加する 5. Kubernetesはファイルを配布し、スクリプトを実行する5.1 クラスターの説明
予算が限られているため、ここではマルチノード環境は展開されていません。ただし、実際のシナリオに適合させるために、配布プロセスが制御不能にならないように、ジョブの実行時に nodeSelector を使用して指定されたノードを選択します。 5.2 配布ファイルの準備とスクリプトの実行 1. ファイルディレクトリ構造
イメージの構築に関連する以下のコマンドはすべて、デモ ディレクトリで実行されます。 2. スクリプトstart.shの内容
Kubernetes クラスターは、Python 2 インタープリターが付属する CentOS 7 オペレーティング システムを使用します。簡潔にするために、ここではダウンロード サービスを提供するために SimpleHTTPServer を使用します。 3. Dockerfileの内容
4. 配布するファイルの内容 ファイルは、ビルド環境内のローカル ファイルまたは任意の URL ファイル リンクにすることができます。ここでは PDF ファイル リンクを選択します: https://www.chenshaowen.com/static/file/ui-autotest.pdf 5.3 イメージの構築 OCI イメージは Kubernetes でよく使用されるため、ファイルとスクリプトをカプセル化し、イメージにパッケージ化して、イメージ リポジトリを通じて配布する必要があります。 配布するファイルをイメージにパッケージ化する
画像をプッシュします:
実行するスクリプトをイメージにパッケージ化する
画像をプッシュします:
5.4 Kubernetesノードの前処理 Kubernetes クラスターに分散するノードを追加することに加えて、もう 1 つの重要な点は、ノードを前処理する必要があることです。 ノードの前処理では、主にノードにラベルを追加し、正確な分散のためにマークを付けます。実稼働環境では、ネットワークは通常分割されているため、ゾーンと IP という 2 つの次元のラベル付けが導入されます。
ゾーンはパーティションを意味し、ここでは としてマークされています。 ip は、このパーティション内の仮想マシンの IP アドレスを表します。実際には、Kubernetes クラスターをインストールするときにバッチ処理を実行できます。
5.5 指定されたノードにスクリプトを配布して実行する
画像が小さいのでスクリプトを素早く実行できます。仮想マシンにログインし、関連するサービス プロセスがあるかどうかを確認します。
SimpleHTTPServerサービスが仮想マシン上で正常に実行されたことを示します。 5.6 指定されたノードにファイルを配布する
ページ アクセスを通じて、提供されているダウンロード ページを表示できます。 仮想マシン上の分散ファイルを表示します。
6. 結論この記事では主に、Kubernetes 上の仮想マシンにファイルを配布し、スクリプトを実行する方法を示し、PaaS プラットフォームを設計する際に役立つアイデアをいくつか紹介します。 Kubelet を従来のエージェントとして使用します。 Kubelet は Pod を管理し、Agent は IaaS を管理します。両者には考えるべき共通点があります。さらに、単一の Kubernetes クラスターは最大 5,000 個のノードをサポートし、ほとんどの需要シナリオに対応できます。複数のクラスターを通じて、より多くのノードをサポートできます。 より多くのソースからのバイナリ配布がサポートされる可能性があります。この例では https ファイルを使用していますが、ローカル ファイルを使用することも、S3 からローカル コンピューターにファイルをダウンロードしてパッケージ化することもできます。同時に、最終的な画像は元のファイルよりわずか数 MB 大きくなります。 スクリプトの実行をさらに最適化できます。ジョブの実行が完了すると、スクリプトの実行も終了します。実際には、管理対象サービスをホストに追加する必要があります。簡潔にするために、この記事では詳細には説明しません。 もう 1 つの解決策は、hostIPC/hostPID Pod を直接使用して、従来の仮想マシン上のサービス プロセスを置き換えることです。 |
<<: Ecarx TechnologyとBaidu Netdiskが協力し、車両端末データのクラウド管理機能を公開
>>: クラウドネットワーク統合市場には幅広い展望があります。事業者と企業は協力して前進すべきである
Baidu は WordPress ブログのコンテンツ ページをゆっくりとインデックスし、タグ ペー...
BandwagonHost VPS はいかがでしょうか? BandwagonHost カナダ VPS...
Ramnode には割引コードがなくなりましたが、SSD と HDD の数が大幅に増え、アフターサー...
Nutanix は本日、企業のプライベート、ハイブリッド、パブリック クラウド導入の進捗状況を評価す...
どの韓国のクラウドホストが優れていますか?どの韓国のクラウドサーバーが優れていますか?どの韓国のクラ...
JD.comやJumei.comなどの電子商取引企業が株式公開計画を発表した後、中国最大のB2C電子...
説明不要の機密情報サイト「ビビティ」が百度に根絶されたことは皆さんご存知だと思います。企業のサイトが...
vmbox.co は 2013 年 5 月に初めて HostCat に登場しました。同社は 2 年の...
4月26日から27日にかけて、ファーウェイクラウドスタートアップサポートプログラム成都ステーションW...
みなさんこんにちは。Hua Zaiです。またお会いできて嬉しいです。今日は主に Kafka ネットワ...
ご存知のとおり、キーワードは Baidu 入札において重要な役割を果たします。選択するキーワードが多...
MyCatとはMyCat は、オープンソースの分散データベース ミドルウェアであり、MySQL プロ...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス検索エンジンは今でも必要...
Yue Zhixuan 氏の「リンクのためだけではなく、ソフトテキストの書き方の品質を無視することは...
死亡者数と感染者数は依然として増加しています。この突然の新型コロナウイルス感染症の流行により、常に重...