kubelet? kubectl? Minikube?
Kubernetesとは?
コンテナ化されたアプリケーションの展開、スケーリング、および管理を自動化するためのオープンソースシステム。
Kubernetesクラスタとは?
コンテナ化されたアプリケーションを実行するためのノードマシンのセット。Kubernetesを実行しているときは、クラスタが実行されている。
kubeletとは?
kubernetesマスターと通信するためのエージェントがkubelet。上段の画像を参照ください。Kubernetesクラスタでは、マスターでAPIサーバが動作しています。クラスターの中でワーカーマシンとして動いているノード(VMもしくは物理マシン)の中にkubeletがある。ノードは、マスターが公開しているKubernetes APIを使用してマスターと通信します。
ノード と pod と コンテナ の関係
- ノード > pod > (Docker)コンテナ
- podに対してネットワークが張られている(おそらく仮想ネットワークインタフェースがpodに付随し、一意のIPアドレスが割り当てられている)
- 1podにつき1(Docker)コンテナ、1podにつき複数(Docker)コンテナの両方が可能
- kubernetesは、コンテナではなくpodを管理する
kubectlとは?
マスターのAPIサーバに接続可能であれば、クラスタの外部からでもKubernetesを操作できます。kubectlはAPIを操作するためのコマンドラインツール。
kubectlインストール方法
Windowsの場合、コマンドプロンプトで以下を実行します。Windows PowerShellではエラーが出て実行できませんでした。
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/windows/amd64/kubectl.exe
kubectlバージョン確認
kubectl version --client
もしくは
kubectl version --short --client
kubeadmとは?
kubeadm initやkubeadm joinなどのコマンドを提供するツールで、Kubernetesクラスターを構築する上でのベストプラクティスを反映した「近道」を提供するもの
kubeadmは実用最小限のクラスターをセットアップするための処理を実行します。設計上、kubeadmはブートストラップのみを行い、マシンのプロビジョニングは行いません。同様に、Kubernetesダッシュボード、モニタリングソリューション、クラウド向けのアドオンなど、あれば便利でもなくても支障のない各種アドオンのインストールも範囲外です。
https://kubernetes.io/ja/docs/reference/setup-tools/kubeadm/
Minikubeとは?
Local Kubernetesの選択肢の一つ。ローカルマシン上にVMを作成し、1つのノードのみを含む単純なクラスターをデプロイする軽量なKubernetes実装。Linux、Windows、macOSで利用可能。
Minikube CLIとは?
起動、停止、ステータス、削除など、Kubernetesクラスターを操作するための基本的なブートストラップ操作を提供。
kindとは?
Local Kubernetesの選択肢の一つ。kind(Kubernetes in Docker)。
heptioとは?
aws-iam-authenticator(旧 heptio-authenticator-aws)のこと。おそらくAWSのIAMの認証を行うツール。EKS での k8s クラスタ作成と操作には awscli + kubectl + aws-iam-authenticator(旧 heptio-authenticator-aws) の3つが必要だったが、Amazon EKS API に GetToken API が追加され、awscli + kubectl の2つでよくなった。そのため、不要なものになった。