導入: Kubernetes は最近大流行しており、すべての主要なクラウド サービス プロバイダーがクラウド ネイティブ アプリケーションを展開するためのソリューションとしてこれを採用しています。企業が Kubernetes を受け入れ始める重要な機能とツールの利点は何ですか?この記事の著者は体系的な要約をしています。 「オーケストレーションのない行動は燃え尽きであり、行動のないオーケストレーションは管理である。」 振り付けのない行動は失敗に終わり、行動のない振り付けはマネジメントであり、行動と振り付けがリーダーシップです。 ― オリン・ウッドワード
これは、Google が開始したオープンソース プロジェクトであり、Borg から派生し、Google 社内で数年間使用され、現在はコンテナ管理に使用されています。現在、CNCF によってホストされています。 Kubernetes(略称:K8S)は、コンテナを通じてCPUやメモリなどのリソースの使用率を最適化し、複数のノード間でアプリケーションを効率的に分散できるようにする抽象化です。 K8S は、ベアメタルまたは任意のクラウド インフラストラクチャ プロバイダー上のどこでも実行できます。新しいツールはクラウドに依存せず、ノード/ホストを直接活用するのではなく、インフラストラクチャ内でのコンテナの展開とスケジュールに重点を置いています。 K8S が提供するプラットフォーム機能の一部は次のとおりです。
Kubernetes アーキテクチャ Kubernetes クラスターは、マスター ノードとワーカー/スレーブ ノードのセットで構成されます。 Kubernetes マスター ノードのコンポーネントは次のとおりです。
Kubernetes ノードにインストールされるコンポーネントは次のとおりです。
可用性が高く、フォールト トレラントな Kubernetes の運用と展開には、複数のマスター ノードと個別の etcd クラスターが必要です。 3 台の API サーバーを実行している場合は、サーバーに負荷を適切に分散するためにネットワーク ロード バランサーが必要になります。 ***残る問題は、クラスターの状態を維持し、ノードを割り当てるために、コントローラー マネージャーとスケジューラーを管理する 3 つのロールが必要であることです。より効率的かつ確実に行うには、実際の変更は 1 人のアクターのみが実行する必要がありますが、マシンのダウンタイムに備えて他のインスタンスも必要です。この問題を解決するには、API でリース ロックを使用してリーダー選出を実行します。これを使用するためのフラグは、leader-elect です。 Kubernetes は、次のいずれかの方法で Pod 間ネットワークを実装します。
クラスター内での Pod 間の通信を可能にし、各 Pod に一意の IP アドレスを提供します。 Kubernetesの主な機能 ポッド: コンテナのコレクション ポッドは K8S のデプロイメント ユニットであり、単一の IP アドレスを持ちます。内部的には、Pause コンテナはネットワーク名前空間、ポート、および IP アドレスを保持してネットワークを処理し、これらはポッド内のすべてのコンテナによって使用されます。 レプリケーションコントローラ ReplicationController は、指定された時間に必要な数のコンテナが稼働していることを確認します。 Pod テンプレートは、コンテナ イメージ識別子、ポート、およびラベルを定義するために使用されます。ライブネスプローブを使用すると、ポッドを自動的に修復し、目的の状態に応じてポッドの数を維持できます。 kubectl を使用してレプリカ数を手動で制御することも可能です。 ストレージ管理 ポッドは本質的に一時的なものであり、ポッドまたはコンテナに保存された情報はすべて失われます。データを保存するには、ポッドが強制終了または再スケジュールされた後でも、Amazon Elastic Block Storage (EBS)、Google GCE PD、またはネットワーク ファイル システム (NFS) や Gluster ファイル システム (GFS) などの分散ファイル システムなどの永続的なシステムが必要です。 リソース監視 監視は、インフラストラクチャを正常に実行するための鍵の 1 つであり、信頼性レベルの基礎となります。 Heapster は、kubelet からメトリックを収集し、cAdvisor と統合するプラグインです。 cAdvisor は、実行中のコンテナの CPU、メモリ、I/O、ネットワーク統計に関連するメトリックを収集するために使用されます。 Heapster によって収集されたデータは Influx DB に保存され、Grafana を使用して UI に表示されます。データを保存してユーザー インターフェイスに表示するために使用できる Kafka や Elastic Search などの他のシンクも利用できます。 健康チェック Kubernetes のヘルスチェックは kubelet エージェントによって実行されます。これは、活性プローブと準備プローブに分かれています。 ハンドラーには主に 3 つの種類があります。
各プローブには通常、次の 3 つの結果があります。
水平自動スケーリング機能 自動スケーリングでは、負荷に基づいてコンピューティング リソースが使用されます。 K8S スケール ポッドは、Horizontal Pod Autoscaler オブジェクトを自動的に使用します。このオブジェクトは、Heapster からメトリック データを取得し、それに応じてポッドの数を減らしたり増やしたりします。たとえば、自動スケーリングがメモリ使用率に基づいている場合、コントローラーはポッド内のメモリ使用量の監視を開始し、容量に基づいてレプリカ数をスケーリングします。 サービス検出 Kubernetes ポッドは一時的なものであり、ReplicationController は任意のノードでそれらを動的に作成するため、クラスター内のサービスを検出するのは困難です。サービスは、クラスター内で通信するために IP アドレスと動的ポートを検出する必要があります。 それを検索する主な方法は、環境変数と DNS の 2 つです。 推奨されるのは、クラスター アドオンとして利用できる DNS ベースのサービス検出です。クラスター内の新しいサービスを追跡し、各サービスの DNS レコードのセットを作成します。 ネットワーク クラスターを完全に管理するには、ネットワークを正しく設定し、次の 3 つのネットワークの問題に対処する必要があります。
Kubernetes は幅広いネットワーク オプションを提供します。また、コンテナの一般的なプラグイン アーキテクチャである Container Network Interface (CNI) プラグインもサポートされるようになりました。現在、Kubernetes、Mesos、CloudFoundry などの複数のオーケストレーション ツールをサポートしています。 さまざまなオーバーレイ プラグインがあります。
仕える Kubernetes サービスは、マイクロサービスを提供するために一連のポッドに通信をルーティングする抽象化です。 Kube-proxy は各ノード上で実行され、一連の iptable ルールを設定してサービスを管理します。 サービスを設定するには、次の 3 つのモデルがあります。
ConfigMap とシークレット ConfigMap を使用すると、複数の環境間でコンテナ イメージの一貫性を保ちながら、環境ベースの構成を挿入できるようになります。これらはマウントされたボリュームまたは環境変数を介して注入され、キー/値形式で値を保存できます。 シークレットは、パスワード、OAuth トークンなどの機密データを保存するために使用されます。 ローリングデプロイメントとロールバック デプロイメント オブジェクトは、ロールバック メカニズムをサポートするために 1 つ以上のレプリカ セットを保持します。つまり、デプロイメント構成を変更するたびに新しいレプリカ セットが作成され、ロールバック オプションが存在するように以前のバージョンが保持されます。特定の時点でアクティブになるレプリカ セットは 1 つだけです。 ローリング デプロイメントの場合、必要なポリシー タイプは RollingUpdate と minReadySecs であり、これはアプリケーションがトラフィックの処理に費やす時間を指定します。アプリケーション ポッドの準備ができていないときにデフォルト状態のままにしておくと、使用できなくなります。これは次のコマンドで実行できます。 または、 デプロイメント yaml ファイルの内容を置き換えて、次のコマンドを実行します。 新しいバージョンが期待どおりでない場合は、次のコマンドを実行して以前のバージョンにロールバックできます。 希望するバージョンが以前のバージョンと異なる場合は、次を実行します。 ログ記録 アプリケーションの動作を監視するには、ログを調べる必要があります。各ポッドは複数のログを生成します。ダッシュボード UI でログの検索を開始するには、ログを収集してログ ビューアーに集約する何らかのメカニズムが必要です。これを文脈に沿って説明すると、Fluentd は CNCF の一部でもあるオープンソース ツールであり、Elastic Search および Kibana と統合されています。 |
>>: WOT2018 シェン・ジアン:58 Express によるマイクロサービス アーキテクチャの優れた実践
HostflyteのCN2 VPS(CN2 GT、片道)が20%オフで販売されています。国内の往路は...
海外の有名な仮想ホスティング会社であるipageは、bluehost、hostgatorなどと同じコ...
ウェブマスターのお気に入りの商人である Hostwinds は、ブラック フライデー プロモーション...
科学的な SEO を行うために、なぜデータを使用する必要があるのでしょうか? 著者は最近、科学的な ...
クラウド ネイティブ アーキテクチャは、クラウド コンピューティング プラットフォームの利点を最大限...
[はじめに] プラットフォーム型ソーシャルプロダクトの機会は非常に小さいですが、Kai-Fu Lee...
K8が急速に成長している理由と将来に期待できること[[322296]]写真はUnsplashのJun...
Baiduが外部リンク情報を公開して以来、一部のウェブサイトはフォーラム署名外部リンクを閉鎖しました...
Hosteons では現在、米国 VPS の年間、2 年、3 年払いでハード ドライブとトラフィック...
工業情報化省は来年6月に仮想オペレーターライセンスを発行する可能性があるテンセントテクノロジーニュー...
[51CTO.comからのオリジナル記事] IT業界の編集者として、私は当然あらゆるスマート製品に興...
年末が近づくにつれ、ライブストリーミング電子商取引の氷と炎の歌が演奏され始めています。しかし、明らか...
A5 Webmaster Network SEO 診断チームは最近、企業ウェブサイトの格下げ、ランキ...
Alphavps のブラック フライデーとサイバー マンデーが一緒にやって来ます: 安価な OVZ ...
新浪科技は11月10日夜、毎年恒例の電子商取引「双十一」が本日午前0時に正式にスタートしたと報じた。...