Kubernetes とは何ですか? まず第一に、これはコンテナ技術に基づいた新しい最先端の分散アーキテクチャ ソリューションです。このソリューションは非常に新しいものですが、過去 10 年間にわたるコンテナ テクノロジの大規模な適用における Google の経験の蓄積と昇華の重要な成果です。正確に言うと、Kubernetes は、10 年以上もの間、厳重に秘密にされてきた Google の秘密兵器である Borg のオープンソース版です。 Borg は、Google 社内で使用されている有名な大規模クラスタ管理システムです。これはコンテナ テクノロジに基づいており、リソース管理を自動化し、複数のデータ センターにわたるリソース使用率を最大化することを目的としています。
2015 年 4 月、長らく噂されていた Borg 論文が、Kubernetes (K8S) の注目度の高いプロモーションとともに Google によって正式にリリースされ、人々はその詳細を知ることができるようになりました。 Kubernetes が前身の Borg を基盤とし、過去 10 年間の Borg の経験と教訓から学んだからこそ、オープンソース化されると大ヒットし、コンテナ技術の分野を瞬く間に席巻したのです。 システム設計が Kubernetes の設計哲学に従っている場合、ビジネスとはほとんど関係のない従来のシステム アーキテクチャの基礎となるコードや機能モジュールは、すぐに私たちの視界から消えてしまいます。負荷分散の選択と展開について心配する必要がなくなり、複雑なサービス ガバナンス フレームワークの導入や開発を検討する必要がなくなり、サービス監視および障害処理モジュールの開発について心配する必要がなくなりました。つまり、Kubernetes が提供するソリューションを使用することで、開発コストを 30% 以上節約し、ビジネスそのものにさらに集中できるようになりました。さらに、Kubernetes は強力な自動化メカニズムを提供するため、その後のシステム運用と保守の難易度とコストが大幅に削減されました。 Kubernetesの概要 Docker テクノロジの発展と普及に伴い、クラウドネイティブ アプリケーションやコンテナのスケジュールおよび管理システムも IT 分野のホットな話題になっています。実際、Docker テクノロジーが普及する前から、クラウド ネイティブ アプリケーションのアイデアは、クラウド コンピューティング テクノロジーの先駆者や分散システム アーキテクチャの推進者によって広く普及していました。たとえば、Heroku のエンジニアは 2011 年にはすでにクラウド ネイティブ アプリケーションの 12 要素を提案していましたが、クラウド ネイティブ アプリケーションの基本的な実装として仮想マシン テクノロジを使用していました。仮想マシン イメージのサイズが大きいこと、イメージ標準に一貫性がないこと、パッケージ化プロセスとツールに一貫性がないことなどにより、クラウド ネイティブ アプリケーションの標準は業界で広く受け入れられず、クラウド ネイティブ アプリケーションの人気が制限されています。 Docker の登場により、クラウド ネイティブ アプリケーションの構築、配信、運用を制限するこれらのボトルネックが解決され、Docker を使用する開発者にとってクラウド ネイティブ アプリケーションの構築が自然な選択になりました。 Kubernetes は、実稼働環境向けに設計されたコンテナのスケジュールおよび管理システムです。負荷分散、サービス検出、高可用性、ローリング アップグレード、自動スケーリング、およびコンテナ クラウド プラットフォームのその他の機能要件をネイティブでサポートします。 Kubernetes は K と s の間に 8 つの文字があるため、k8s と呼ばれることがよくあります。実際、k8s システムのアーキテクチャと設計概念を深く理解すると、k8s システムはクラウドネイティブ アプリケーションを実行するように設計されていることがわかります。同時に、k8s システムの使用が深まり、普及するにつれて、クラウドネイティブ アプリケーションの設計パターンがますます多く登場し、スタンドアロン コンテナ サービスを開始するのと同じくらい簡単に、k8s システムに基づく本番レベルの複雑なクラウドネイティブ アプリケーションを設計および開発できるようになります。 なぜKubernetesなのか? Kubernetes を使用する理由はたくさんありますが、最も基本的な理由は、IT が新しいテクノロジー主導の業界であるということです。新興のコンテナ技術であるDockerは、多くの企業に採用されています。単一のマシンからクラスターへの移行は避けられず、クラウド コンピューティングの急速な発展によりこのプロセスが加速しています。 Kubernetes は現在、業界で広く認知され、好まれている唯一の Docker 分散システム ソリューションです。今後数年間で、企業のローカル サーバーで実行されるか、パブリック クラウドでホストされるかに関係なく、多数の新しいシステムがこれを選択することが予測されます。 Kubernetes を使用するとどのようなメリットが得られますか? まず第一に、Kubernetes を使用するということは、マイクロサービス アーキテクチャを完全に採用することです。マイクロサービス アーキテクチャの中核は、巨大なモノリシック アプリケーションを多数の小さな相互接続されたマイクロサービスに分解することです。マイクロサービスは複数のインスタンスのコピーによってサポートされる場合があり、システム負荷の変化に応じてコピーの数を調整できます。組み込みロードバランサーは、k8s プラットフォーム内の複数のインスタンスのコピーによってサポートされており、システム負荷の変化に応じてコピーの数を調整できます。組み込みロードバランサーは、k8s プラットフォームで重要な役割を果たします。マイクロサービス アーキテクチャでは、各サービスを専用の開発チームで開発することができ、開発者は開発テクノロジを自由に選択できるため、大規模なチームにとって非常に価値があります。さらに、各マイクロサービスは独立して開発、アップグレード、拡張されるため、システムは非常に安定し、迅速な反復的な進化が可能になります。 第二に、Kubernetes システム アーキテクチャには、非常に強力な水平拡張機能があります。インターネット企業にとって、ユーザー規模は資産に相当します。より多くのユーザーを持つ人が競争に勝つでしょう。したがって、超強力な水平拡張機能は、インターネットビジネスシステムの重要な指標の 1 つです。コードを変更することなく、Kubernetes クラスターを、数個のノードのみを含む小規模なクラスターから、数百または数千のノードを含む大規模なクラスターまでスムーズに拡張できます。 Kubernetes が提供するツールを使用すると、クラスターの拡張をオンラインで完了することもできます。マイクロサービスが適切に設計され、ハードウェアまたはパブリック クラウド リソースが直線的に増加している限り、システムは多数の同時ユーザーによる負荷に耐えることができます。 Kubernetes の基本概念と用語 Node、Pod、Replication Controller、Server、Deployment、Job、DaemonSet など、Kubernetes のほとんどの概念は、一種のリソース オブジェクトと見なすことができます。ほぼすべてのリソース オブジェクトは、Kubernetes が提供する kubectl ツールを使用して追加、削除、変更、確認することができ、永続的なストレージとして etcd に保存されます。この観点から見ると、Kubernetes は実際には、etcd ストレージに保存されている予想されるリソース状態と現在の環境の実際のリソース状態との差異を追跡および比較することで、自動制御と自動エラー修正の高度な機能を実装した、高度に自動化されたリソース制御システムです。 マスター Kubernetes のマスターは、クラスター制御ノードを指します。各 Kubernetes クラスターには、クラスター全体の管理と制御を担当するマスター ノードが必要です。基本的に、すべての Kubernetes 制御コマンドはマスターに送信され、マスターが特定の実行プロセスを担当します。以降に実行されるコマンドはすべて、基本的にマスター ノードで実行されます。マスター ノードは通常、独立した X86 サーバーを占有します。主な理由の一つは、それがあまりにも重要だということです。クラスター全体の頭脳です。ダウンしたり利用できなくなったりすると、すべての制御コマンドが失敗します。 マスター ノードでは次の主要なプロセスが実行されています。 Kube-apiserver: HTTP REST インターフェースの主要なサービス プロセスを提供します。これは、Kubernetes 内のすべてのリソースを追加、削除、変更、およびチェックするための唯一のエントリ ポイントであり、クラスター制御エントリ プロセスでもあります。 Kube-controller-manager: Kubernetes 内のすべてのリソース オブジェクトの自動制御センターであり、リソース オブジェクトの管理人として理解できます。 Kube-scheduler: バス会社の配車室に相当する、リソースのスケジューリング プロセスを担当します。 実際、Kubernetes 内のすべてのリソース オブジェクトのデータは etcd に保存されるため、etcd サーバー プロセスはマスター ノードで開始されることがよくあります。 ノード マスターに加えて、Kubernetes クラスター内の他のマシンはノード ノードと呼ばれ、以前のバージョンではミニオンとも呼ばれていました。マスターと同様に、ノードは物理ホストまたは仮想マシンにすることができます。ノードは Kubernetes クラスター内のワークロード ノードであり、各ノードにはマスターによって負荷が割り当てられます。ノードがダウンすると、そのワークロードはマスターによって他のノードに自動的に転送されます。 各ノードは次の主要なプロセス セットを実行します。
Pod: Kubernetes の最も重要かつ基本的な概念です。各ポッドには、「ルート コンテナー」と、密接に接続された 1 つ以上のビジネス コンテナーが含まれています。 Kubernetes は各 Pod に PodIP と呼ばれる一意の IP アドレスを割り当て、Pod 内の複数のコンテナが PodIP アドレスを共有します。基盤となるネットワークは、クラスター内の任意の 2 つの Pod 間の直接通信をサポートする必要があり、これは通常、仮想レイヤー 2 ネットワーク テクノロジー (Flannel) を使用して実現されます。 k8s クラスター展開ソリューション 以下は、私のクラスター展開戦略です。1 つのマスター + 2 つのノード (minion1.2 より前の名称)。私のストレージ クラスター etcd は単一ポイント クラスターであり、推奨されません。ネットワークはフランネル仮想セカンダリ ネットワークを使用します。 Kubernetes には完全なクラスター管理機能があります。
同時に、Kubernetes は、開発、デプロイメント テスト、運用、保守監視など、あらゆる側面をカバーする完全な管理ツールを提供します。 Kubernetes では、サービスは分散クラスター アーキテクチャの中核です。サービス オブジェクトには、次の主な機能があります。
Kubernetes.io は、Web ブラウザー経由で事前にデプロイされた Kubernetes クラスターを使用して、Kubernetes の機能とアプリケーション シナリオをすぐに体験できるインタラクティブ チュートリアルを開発しました。 リンク: https://kubernetes.io/docs/tutorials/kubernetes-basics/ K8s 公式ダウンロードアドレス: https://github.com/kubernetes 環境整備
CentOS7の組み込みファイアウォールサービスをオフにする
ホスト名を変更する
ホスト名をマスター、ノード1、ノード2に変更し、IPアドレスを設定し、3台のテストマシンの/etc/hostsファイルを設定(3台のサーバーで同期)
時間調整(時間調整は3台のマシンすべてで実行されます)
Kubernetesをインストールし、Dockerイメージを構成する [root@master ~]# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo Kubernetes ウェアハウスを構成する
DockerとKubeletをインストールする
環境変数
初期化
エラーメッセージ、解決策:
このコマンドは保存する必要があることに注意してください(クラスターを追加するため)
ノード情報が正常かどうか確認して検証する
フランネルをインストールする
ノード情報が正常かどうか確認して検証する
ポッドの実行状態を確認する
設定ファイルはノード1とノード2に転送されます
Node1 サーバー構成
dockerとkubeletをインストールする
Dockerを起動する
メインクラスターを追加する
ダウンロードミラーを表示
マスターサーバーでノード情報を確認できます
Node2 サーバー構成
dockerとkubeletをインストールする
Dockerを起動する
メインクラスターを追加する
マスターサーバーでノード情報を確認できます
|
>>: IDC: パブリッククラウドサービスへの世界支出は2023年までに2倍以上に増加
25% 割引コード: LETVC9DYY9Z43 (7 日間有効)、小規模 VPS 5TB トラフィ...
占いや風水は特別な産業です。人々はこの言葉を聞くと、いつも宗教的な色合いを感じます。占いや風水は中国...
李佳琦の「美独り占め」23日目。 「手の速さを練習しましょう。私たちの家族では、手の速さを練習しなけ...
寒い冬の間、電子商取引の注目度の高い戦略はB2Cスタートアップに適しているでしょうか?元従業員が暴露...
外部リンクは Baidu によって絶えず攻撃されているため、今日のウェブマスターは外部リンクの構築に...
米国ロサンゼルスに拠点を置くホスティング会社 Dreamhost は、1999 年から世界中にホステ...
次の Web サイトの内部最適化のために何を行う必要があるかを簡単に説明します。 1. オンサイト最...
良心的なホスティング会社である Hostwinds は、完璧なサービスを提供します。 hostwin...
この記事を書く前に、著者は尋ねたいのですが、百度が現在何世代の検索エンジンサービス技術を使用している...
Qihoo 360 が「ロボット プロトコル」に違反したというニュースは、かなり前からインターネット...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスSEO 最適化を長い間続...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますウェブサイ...
月給5,000~50,000のこれらのプロジェクトはあなたの将来です検索エンジンの設計はユーザーのさ...
今のところ、Baidu について良いことは何も言えません。Baidu は、独自の Web サイトを持...
[51CTO.com クイック翻訳] すべてのクラウドプロバイダーには、企業や開発者をそのプラットフ...