とりあえず手を動かしてKubernetesをざっくり理解しようという記事です。
公式のチュートリアルに従って進めていきます。
Kubernetes(K8s)とは?
簡単にまとめると
コンテナ化されたアプリケーションのデプロイ、管理、自動運用を行うためのプラットフォーム
です。
https://kubernetes.io/ja/docs/tutorials/kubernetes-basics/
手を動かして理解しよう
......の前に、出てくる用語をざっくりまとめます。
用語 | 読み方 | 解説 |
---|---|---|
Kubernetes | クバネティス | コンテナ化されたアプリケーションのデプロイ、管理、自動運用を行うためのオープンソースプラットフォーム。 読み方はいろいろある。略称はK8sで、こちらも読み方はさまざま。 |
Container | コンテナ | アプリケーションとその実行に必要な全ての環境(コード、ライブラリ、設定など)を一つにまとめたもの。Kubernetesが管理する最小の実行単位。 |
Image | イメージ | コンテナを作成するための設計図。アプリケーションの実行に必要な設定などが定義されている。 |
Docker | ドッカー | アプリケーションをコンテナ化するために利用するツール(プラットフォーム)。 |
Cluster | クラスター | Kubernetes環境全体を指す。 |
Pod | ポッド | Kubernetesにおける最小のデプロイ単位。1つまたは複数のコンテナのグループ。 |
ReplicaSet | レプリカセット | 指定された数のPodインスタンス(レプリカ)が常に稼働している状態を維持する役割を持つオブジェクト。自己修復機能とかあってすごい。 |
Namespace | ネームスペース | クラスターを論理的に分割するための仕組み。環境ごと(開発/テスト/本番)やチームごとにリソースを隔離・管理できる。 |
minikubeを用いて手を動かしていきます。
minikubeを用いることで、ローカル環境にちいちゃいKubernetesクラスターを用意できます。
minikubeとは
Minikubeクラスターの作成
1. 最初に
このページでminikube
をインストールします。1 Installation のみ行います。
お使いの環境に合わせて選択し、表示されるコマンドを実行します。
PowerShellを利用する際は管理者権限で実行してください。
※以下のコマンドはWindows向けです。
New-Item -Path 'c:\' -Name 'minikube' -ItemType Directory -Force
$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -OutFile 'c:\minikube\minikube.exe' -Uri 'https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe' -UseBasicParsing
$oldPath = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine)
if ($oldPath.Split(';') -inotcontains 'C:\minikube'){
[Environment]::SetEnvironmentVariable('Path', $('{0};C:\minikube' -f $oldPath), [EnvironmentVariableTarget]::Machine)
}
実行したら、PowerShell(Terminalなど)を再起動してください。
minikube
とkubectl
コマンドが認識されていれば完了です🎉
2. クラスターを作成しよう
Minikubeを使ったクラスターの作成
先にDocker Desktopを起動しておきます。
以下のコマンドを実行してクラスターを作成します。
$ minikube start
$ minikube start -p your-cluster-name # クラスター名を付けたい場合
以下のエラーが出た場合:Docker Desktopは起動していますか?(自分は最初忘れていました)
❌ DRV_NOT_HEALTHY が原因で終了します: ドライバーが見つかりましたが、健全なものがありません。
上記のインストール済みドライバーの修正方法の提示を参照してください。
以下のコマンドで、クラスターを構成するサーバー(Node)の状況を確認できます。
STATUSがReadyであることを確認します。
$ kubectl get nodes
実行結果
wip
以下のコマンドで作成したクラスター一覧を確認できます。
$ minikube profile list
以下のコマンドで、デプロイしたアプリケーションなどが確認できます。
コマンドを実行すると、自動的にブラウザが立ち上がります。
Kubernetes dashboardとは ※簡単に言うとGUIベースでクラスターを管理できるよーというやつです
$ minikube dashboard
$ minikube dashboard -p your-cluster-name # クラスター名を指定したとき
クラスターを停止する場合はminikube stop
です。
クラスターを作成したら、次はアプリケーションのデプロイをしてみます。
次→デプロイ