Kubernetesチートシート:アーキテクチャ、コンポーネント、コマンドシート

公開: 2020-12-15

Kubernetesは業界の不可欠な部分になり、テクノロジーの世界を変えています。 KubeConの共同議長であるJanetKuoは、Kubernetesの機能と今後のその重要性について説明しました。 彼女は、世界を変えるKubernetes拡張機能とソリューションについて話します

このチートシートは、Kubernetesの実装で働く専門家へのリファレンスを提供します。 Kubernetesを初めて使用する初心者を支援するために必要なすべての詳細が含まれています。 Kubernetesチートシートは、Kubernetesのすべての基本的な概念とコマンドを参照するための迅速で便利な媒体です。

目次

Kubernetesについて

コンテナ中心のインフラストラクチャを提供するためにホストのクラスタ全体でコンテナを自動デプロイおよびスケーリングするためのオープンソースプラットフォームは、Kubernetes(「Kube」またはk8sとも呼ばれます)として知られています。 Linuxコンテナーをクラスター化することにより、Linuxコンテナーを実行しているさまざまなホストを簡単かつ効率的に管理できます。

Kubernetesは、コンテナ化されたアプリケーションとサービスのライフサイクルを完全に管理するために設計されたプラットフォームです。 Kubernetesユーザーは、アプリケーションを実行してさまざまなアプリケーションと対話する方法を定義できます。

ユーザーは、Kubernetesを使用して、異なるバージョンのアプリケーション間でトラフィックを切り替えたり、更新を実行したり、サービスをスケールアップおよびスケールダウンしたりできます。 これは、アプリケーションの管理において高度な柔軟性、信頼性、およびパワーをユーザーに提供します。

Kubernetesの主な機能のいくつかは次のとおりです。

  • ハードウェアをより有効に活用して、リソースを最大化します。
  • 複数のホストにまたがるコンテナーオーケストレーター。
  • 展開プロセスと更新を自動化します。
  • Linuxコンテナを実行できます。
  • 自動スケーリングは、クラスターノードでコンテナーを起動するのに役立ちます。
  • 必要に応じて上下にスケーリングします。
  • デッドコンテナを交換、再スケジュール、および再起動することによる自己回復。
  • 自動ロールバックとロールアウト。
  • 負荷分散とサービス検出。
  • 自動再起動、自動配置、自動複製など。

読む:ディープラーニングアルゴリズム

Kubernetesのアーキテクチャ

Kubernetesのアーキテクチャは、上位層と下位層のレイヤーで構成されています。 上位層の抽象化の複雑さは、下位層に見られます。 個々の物理マシンまたは仮想マシンは、クラスターにまとめられます。 共有ネットワークは、各サーバー間の通信に使用されます。 したがって、他の分散プラットフォームと同様に、Kubernetesには(少なくとも)1つのマスターと複数の計算ノードがあります。

  • Kubernetesのマスターは、デプロイをスケジュールし、APIを公開し、Kubernetesクラスター全体を管理します。
  • ノードは、コンテナランタイム、マスターと通信するためのエージェント、およびその他の監視コンポーネント、ロギングなどを実行します。

Kubernetesアーキテクチャのコンポーネント

Kubernetesアーキテクチャのマスターとノードの目的とコンポーネントを見てみましょう。

マスター

マスターは、クラスターの望ましい状態を維持します。 クラスタ全体を管理するため、マスターと呼ばれます。 を含む:

  • APIサーバー: KubernetesAPIサーバー
  • スケジューラ:ワーカーノードでのポッドスケジューリングに使用されます
  • コントローラー:ポッドレプリケーションを管理します
  • Etcd:メタデータサービス

ノード

ポッドを実行するために重要な必要なサービスが含まれています。 マスターがノードを管理します。 ミニオンとも呼ばれます。 を含む:

  • ポッド:コンテナのグループ
  • Docker:コンテナベースのテクノロジー、OSのユーザースペース。
  • Kubelet:ポッドのセットの保守を担当するコンテナエージェント。
  • Kube-proxy:サービスからノードに着信するトラフィックをルーティングします

それでは、Kubernetesの重要なコマンドを理解しましょう。

Kubectlコマンド

Kubectlは、Kubernetesのコマンドラインツールです。 基本的なKubectlコマンドは次のように分けることができます。

  • ポッドとコンテナのイントロスペクション
  • クラスターイントロスペクション
  • デバッグ
  • クイックコマンド
  • オブジェクト

ポッドとコンテナのイントロスペクション

機能性指示
ポッド名を説明するためKubectl describe pod <name>
現在のすべてのポッドを一覧表示するKubectlはポッドを取得します
すべてのレプリケーションコントローラーを一覧表示するKubectl get rc
レプリケーションコントローラ名を表示するためKubectl describerc<名前>
名前空間内のレプリケーションコントローラーを一覧表示する場合Kubectl get rc –namespace =” namespace”
サービス名を表示する場合Kubectl describe svc <name>
リスティングサービスの場合Kubectl get cvc
ノードを継続的に監視します。 Kubectl get nodes -w
ポッドを削除する場合Kubectl delete pod <name>

クラスターイントロスペクション

機能性指示
バージョン関連情報を取得するためKubectlバージョン
構成の詳細を取得するためKubectlconfiggビュー
クラスタ関連情報を取得するためKubectlcluster-info
ノードに関する情報を取得するためKubectl describe node <node>

デバッグコマンド

機能性指示
ポッドのメトリックを表示するためKubectlトップポッド
ノードのメトリックを表示するためKubectlトップノード
Kubeletログを見るため-n 2 cat / var / log/kublet.logを見る
コンテナのサービスからログを取得するためKubectlログ-f<name>> [-c <$ container>]
コンテナを選択してサービスでコマンドを実行する場合Kubectl exec <service> <commands> [-c <$ container>]

クイックコマンド

以下のクイックコマンドがよく使用されるため、非常に便利です。

機能性指示
名前と画像を使用してポッドを起動します。 Kubectl run <name> — image = <image-name>
<manifest.yaml>で説明されているサービスを作成するためKubectl create -f <manifest.yaml>
インスタンスの数をカウントするためにレプリケーションカウンターをスケーリングします。 Kubectl scale –replicas = <count> rc <name>
外部ポートを内部レプリケーションポートにマッピングします。 rc <name> –port = <external> –target-port=<internal>を公開します
<n>のすべてのポッドを停止する場合Kubectldrain <n> – delete-local-data–force–ignore-daemonset
名前空間を作成します。 Kubectl createnamespace<名前空間>
マスターノードがポッドを実行できるようにするため。 Kubectltaintnodes –all-node-role.kuernetes.io/master-

オブジェクト

Kubernetesで使用されるおなじみのオブジェクトのいくつかは次のとおりです。

共通オブジェクトのリスト
全てコントローラのリビジョン
cm = conf gmaps クラスターロールバインディング
cronジョブcs=コンポーネントのステータス
Deploy = deployments 制限=制限範囲
ev=イベントhpa=水平ポッドの自動スケーリング
仕事ds=デーモンセット
いいえ=ノードns=名前空間
po=ポッドポッドプリセット
Psp=ポッドセキュリティポリシーPv=永続ボリューム
クォータ=リソースクォータrs=レプリカセット
役割rc=レプリケーションコントローラー
sc=ストレージクラスpdb=ポッド配布予算
clusterroles 秘密
crd=カスタムリソース定義ポッドテンプレート
csr=証明書署名要求sa=サービスアカウント
Netpol-ネットワークポリシーロールバインディング
ing=入力pvc=永続的なボリュームクレーム
ep=エンドポイントsts=ステートフルセット

また読む:ディープラーニングの正則化

Kubernetesコマンドチートシート

Kubernetesに関するすべての基本情報、そのアーキテクチャとコマンドは、以下のKubernetesチートシートに示されています。

ディープラーニングの手法、機械学習について詳しく知りたい場合は、IIIT-BとupGradの機械学習とAIのPGディプロマをご覧ください。これは、働く専門家向けに設計されており、450時間以上の厳格なトレーニング、30以上のケーススタディを提供しています。課題、IIIT-B卒業生のステータス、5つ以上の実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。

Kubernetesとは何ですか?

Kubernetesは、コンテナのデプロイ、スケーリング、管理を自動化するためのオープンソースプラットフォームです。 コンテナは、アプリケーションの実行に必要なすべてのもの(コード、ランタイム環境、アプリケーション、およびシステムライブラリ)を含む、すぐに実行できるソフトウェアパッケージです。 コンテナはアプリケーションの論理ユニットのようなものであり、Kubernetesがそれらをグループ化すると、コンテナの管理と検出が容易になります。 これらのコンテナーは、コンテナー中心のインフラストラクチャを提供するために、ホスト間で展開およびスケーリングされます。 つまり、コンテナ化されたアプリケーションのライフサイクル全体を管理するプラットフォームです。

Kubernetesアーキテクチャの主なコンポーネントは何ですか?

Kubernetesアーキテクチャには、マスターノードとワーカーノードの2つの主要コンポーネントがあります。 ノードは、ポッドと呼ばれるクラスターのグループを実行するために重要なメインワーカーマシンです。 クラスター全体はマスターノードによって管理されますが、ワーカーノードはマスターノードによって割り当てられたタスクを実行します。 これらのノードには、多くの組み込みコンポーネントが含まれています。 マスターノードには、Kubernetes APIサーバー、Kubernetesスケジューラ、Kubernetesコントローラ、Etcdが含まれます。 ワーカーノードには、pod、docker、kubelet、およびkube-proxyがあります。

kubeletとkube-proxyは何をしますか?

すべてのノードに存在するKubeletは、コンテナーがポッド内で正常に実行されていることを保証します。 これは、主にapiserverを介して提供される一連のPodSpecを取得し、それらのPodSpecに存在するコンテナーをチェックすることによって行われます。 PodSpecは、ポッドを記述するYAMLまたはJSONオブジェクトです。 Kubernetes Network Proxyは、kube-proxyとも呼ばれ、ノードのネットワークルールを維持します。 クラスタ内外のネットワークセッションからポッドへの通信は、これらのネットワークルールを介して可能です。 OSパケットフィルタリングレイヤーが利用できない場合、Kubeプロキシはトラフィックを転送します。