導入: 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 によるマイクロサービス アーキテクチャの優れた実践
[[428799]]この記事はWeChatの公開アカウント「Mingge's IT Essa...
インターネット+医療健康政策が導入され、医薬品や医療保険などの関連政策が次々と発表され、市場では徐々...
オランダの Sharktech アムステルダム データ センターは、ここ数年補充や拡張が行われていま...
bluehostさん、彼は何歳だと思いますか?今から午後 18:59 (北京時間午後 19:00) ...
A5 フォーラムで、SEO 最適化のためのコツがあるかどうか尋ねる初心者を見ました。私の答えは、はい...
注: CBinsights は最近、エッジ コンピューティング レポートをリリースしました。著者はい...
クリスマスが近づくにつれ、米国ではショッピングシーズンが始まり、Google ショッピング検索にもす...
この記事の内容:情報フロー広告とは?情報フロー広告入門表示フォームチャネル引用申請プロセス舞台裏の運...
百度の現在の国内検索エンジン市場における独占状態は、短期間で覆される可能性は低い。しかし、アルゴリズ...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますSEO 基...
「招待ありがとうございます。私は今モンゴルにいて、空母から降りたところです。」 「サークルが小さすぎ...
vpscheap.netは現在、シカゴデータセンターのVPSのプロモーションを行っています。メモリを...
急速に進化する今日のテクノロジー環境では、人工知能 (AI) と機械学習 (ML) とエッジ コンピ...
7月11日、CCTVは「ニュースライブ」番組で、アップルの携帯電話でこのソフトウェアが使用されている...
コンピューティング デバイスをデータ ソースの近くに配置することで IT の脅威の状況が変わり、エッ...