はじめに
業務でkubernetes
を少し前から触るようになりましたが、普段は pod や container の様子をみたり log みたりで、ほぼkubectl
しか触っていないことに気づきました。他にもkubelet
、kubeadm
とかあるようですが、よくわかってないので調べて意味をまとめてみました。ざっくり理解したい方向けです。
構成
- kubectlとは?
- kubeletとは?
- kubeadmとは?
の3本でお送りいたします。
kubectlとは?
公式リファレンスの一部を引用しますと、以下とのことです。
Kubectl is a command line interface for running commands against Kubernetes clusters.
Kubernetes Cluster(master、wokerなどサーバ複数台で Kubernetes が組まれている状態)に対してコマンドを実行するためのインターフェイス。
構築してある kuberenetes に対し、コマンドで操作するための模様です。node や pod などの確認やyamlファイルから設定の適用、ログの確認などができます。
kubeletとは?
公式リファレンスの一部を引用しますと、以下とのことです。
The kubelet is the primary “node agent” that runs on each node. It can register the node with the apiserver using one of: the hostname; a flag to override the hostname; or specific logic for a cloud provider.
google先生に翻訳していただくと、「kubeletは、各ノードで実行されるプライマリ「ノードエージェント」です。次のいずれかを使用して、apiserverにノードを登録できます。ホスト名を上書きするフラグ。またはクラウドプロバイダーの特定のロジック。」といった内容だそうです。
・・・ごめんなさい、よくわかりません。
他にもCoreOSブログの記事にkubeletの説明があったので、引用してみた。
The kubelet is responsible for maintaining a set of pods, which are composed of one or more containers, on a local system. Within a Kubernetes cluster, the kubelet functions as a local agent that watches for pod specs via the Kubernetes API server. The kubelet is also responsible for registering a node with a Kubernetes cluster, sending events and pod status, and reporting resource utilization.
google先生に翻訳していただくと、以下の内容です。
「kubeletは、ローカルシステム上で、1つ以上の容器で構成されているポッドのセットを維持する責任があります。Kubernetesクラスター内では、kubeletはKubernetes APIサーバーを介してポッド仕様を監視するローカルエージェントとして機能します。kubeletは、ノードをKubernetesクラスターに登録し、イベントとポッドステータスを送信し、リソース使用率をレポートする役割も担います。」
Kubernetes のノードや、Kubernetes APIサーバーを介して pod の監視を行う。podのステータスやリソース使用率をレポートもする、といったところでしょうか。
kubeadmとは?
公式リファレンスの一部を訳すと、「最小限の実行可能なクラスターを稼働させるために必要なアクションを実行」とあった。
また kubeadm コマンドの help をみてみると、頭の方にざっくりした概要が書いてあった。
「Easily bootstrap a secure Kubernetes cluster
」
bootstrapの意味が調べてもピンとこなかったので、自分なりの言葉で表現してみると、
「Kubernetes Clusterをセキュアで簡単にするために使うもの」
kubernetes Clusterの構築に使いそうな感じですね。
まとめ
- kubectl
- 構築してある kubernetes の操作を行うためのCLI。
- kubelet
- Kubernetes APIサーバーを介して pod の監視を行う。podのステータスやリソース使用率をレポートもする。
- kubeadm
- kubernetesクラスタを作るときに主に使用する。
最後に
構築済みのkubernetesを使用していたから、kubectlばかりを使っていたことがわかりました。
私の理解度の問題かもですが、ドキュメントやヘルプで説明された内容ではピンとこないことがよくあります。そんな方向けにまずはざっくりとした概要を掴んでいただけたら幸いです。
内容がまちがってたら教えてください。とても助かります。
それではここまで読んでくださり、ありがとうございました!
参考にさせていただきました。
-
Kubernetes Reference
- 「公式リファレンス」と本文中で表記していたのはこちらです。
- Kubernetes: 構成コンポーネント一覧
- CoreOS Blog
- kubeletのログの確認
- Kubernetesと使用するOracle® Container Servicesユーザーズ・ガイド