Kubernetes クラスタ アーキテクチャを作成する

KubernetesKubernetesBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

Kubernetes は、コンテナ化されたアプリケーションの展開、スケーリング、管理を自動化するコンテナオーケストレーション プラットフォームです。このチャレンジでは、Kubernetes のアーキテクチャ、つまり Kubernetes クラスタを構成するコンポーネントとそれらの相互作用について検討します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedCommandsGroup(["Advanced Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/ClusterInformationGroup(["Cluster Information"]) kubernetes(("Kubernetes")) -.-> kubernetes/TroubleshootingandDebuggingCommandsGroup(["Troubleshooting and Debugging Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/BasicCommandsGroup -.-> kubernetes/create("Create") kubernetes/AdvancedCommandsGroup -.-> kubernetes/apply("Apply") kubernetes/ClusterInformationGroup -.-> kubernetes/cluster_info("Cluster Info") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/describe("Describe") subgraph Lab Skills kubernetes/get -.-> lab-23730{{"Kubernetes クラスタ アーキテクチャを作成する"}} kubernetes/create -.-> lab-23730{{"Kubernetes クラスタ アーキテクチャを作成する"}} kubernetes/apply -.-> lab-23730{{"Kubernetes クラスタ アーキテクチャを作成する"}} kubernetes/cluster_info -.-> lab-23730{{"Kubernetes クラスタ アーキテクチャを作成する"}} kubernetes/describe -.-> lab-23730{{"Kubernetes クラスタ アーキテクチャを作成する"}} end

Kubernetes コントロール プレーン コンポーネント

Kubernetes コントロール プレーンは、クラスタの全体的な状態とアプリケーションの展開とスケーリングを管理します。コントロール プレーン コンポーネントには、次が含まれます。

  • kube-apiserver:Kubernetes コントロール プレーンのフロントエンドで、クラスタへのすべての管理要求を処理します。
  • etcd:Kubernetes クラスタの構成データを格納する分散型キーバリュー ストア。
  • kube-scheduler:クラスタ内のノードで実行するためにポッドをスケジュールする責任があります。
  • kube-controller-manager:さまざまな Kubernetes オブジェクトの状態を管理するコントローラを実行します。

タスク

あなたのタスクは、kube-apiserver、etcd、kube-scheduler、kube-controller-manager を含むコントロール プレーン コンポーネントの状態を取得して表示することです。

要件

  • kubectl コマンドを使用して、コントロール プレーン コンポーネントの状態を取得します。
  • /home/labex/project ディレクトリでコマンドを実行します。
  • 出力には、各コントロール プレーン コンポーネントの状態が表示されます。

コントロール プレーン コンポーネントの状態を取得したときの予想される出力の例を次に示します。

NAME                 STATUS    MESSAGE                         ERROR
controller-manager   Healthy   ok
etcd-0               Healthy   {"health":"true","reason":""}
scheduler            Healthy   ok
✨ 解答を確認して練習

Kubernetes ノード コンポーネント

Kubernetes ノード コンポーネントはコンテナを実行し、アプリケーションの実行環境を提供します。ノード コンポーネントには、次が含まれます。

  • kubelet:ノードの状態を管理し、コンテナを実行する Kubernetes ノード エージェント。
  • kube-proxy:適切なコンテナにトラフィックをルーティングする Kubernetes ネットワーク プロキシ。

タスク

Kubernetes クラスタで実行されているノードに関する情報を表示します。ノード名、ステータス、その他の関連する詳細を含みます。

要件

  • kubectl コマンドを使用して、Kubernetes クラスタ内のノードを一覧表示します。
  • /home/labex/project ディレクトリでコマンドを実行します。
  • 出力には、クラスタ内の各ノードに関する詳細が表示されます。

ノードを表示したときの予想される出力の例を次に示します。

NAME       STATUS   ROLES           AGE     VERSION
minikube   Ready    control-plane   2m52s   v1.26.1
✨ 解答を確認して練習

Kubernetes ポッド コンポーネント

Kubernetes ポッドは、Kubernetes で最も小さな展開可能な単位であり、クラスタ内の実行中のプロセスの単一インスタンスを表します。各ポッドは、同じネットワーク名前空間とストレージ ボリュームを共有する 1 つ以上のコンテナで構成されています。

タスク

  1. Nginx コンテナ用のポッド構成を持つ simple-pod.yaml という名前のファイルを作成します。
  2. 適切な kubectl コマンドを使用してポッドを展開します。
  3. Kubernetes クラスタで実行されているポッドに関する情報を表示します。

要件

  • /home/labex/project ディレクトリに、Nginx イメージを使用した simple-pod という名前のポッドの構成を持つ simple-pod.yaml という名前のファイルを作成します。
  • YAML ファイルからポッドを作成するための kubectl コマンドを使用します。
  • Kubernetes クラスタで実行されているポッドを一覧表示するための別の kubectl コマンドを使用します。

ポッドを表示したときの予想される出力の例を次に示します。

pod/simple-pod created
NAME         READY   STATUS    RESTARTS   AGE
simple-pod   1/1     Running   0          29s
✨ 解答を確認して練習

Kubernetes サービス コンポーネント

Kubernetes サービスは、論理的なポッドのセットとそれらにアクセスするためのポリシーを定義する抽象化です。サービス コンポーネントには、次が含まれます。

  • サービス IP:サービスに割り当てられる仮想 IP アドレス。
  • サービス ポート:サービスに割り当てられるポート番号。
  • エンドポイント:サービスの背後にあるポッドを指す IP アドレスとポート番号のリスト。

タスク

  1. Nginx ポッド用のサービス構成を持つ nginx-service.yaml という名前のファイルを作成します。
  2. 適切な kubectl コマンドを使用してサービスを展開します。
  3. Kubernetes クラスタで実行されているサービスに関する情報を表示します。

要件

  • /home/labex/project ディレクトリに、ポート 80 を公開する nginx-service という名前のサービスの構成を持つ nginx-service.yaml という名前のファイルを作成します。
  • YAML ファイルからサービスを作成するための kubectl コマンドを使用します。
  • Kubernetes クラスタで実行されているサービスを一覧表示するための別の kubectl コマンドを使用します。

サービスを表示したときの予想される出力の例を次に示します。

NAME            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
kubernetes      ClusterIP   10.96.0.1      <none>        443/TCP   5m42s
nginx-service   ClusterIP   10.96.184.71   <none>        80/TCP    4s
✨ 解答を確認して練習

まとめ

このチャレンジでは、Kubernetes のアーキテクチャ、すなわちコントロール プレーン、ノード、ポッド、およびサービス コンポーネントを調べました。さまざまなコンポーネントの状態を確認したり、単純なポッドとサービスを作成したり、ポッドを外部アプリケーションに公開したりする方法を学びました。Kubernetes クラスタを構成するコンポーネントとそれらの相互作用を理解することは、コンテナ化されたアプリケーションの展開と管理にとって堅牢な基盤を提供します。