KubernetesのMinikubeをインストールして動かしてみる

#はじめに
Kubernetes初心者がMinikubeを動かしてみたいと思います

#準備
Minikubeをインストールする前にハイパーバイザーをインストールしなきゃいけないみたいです。
・インストールはこちらから↓
https://www.virtualbox.org/wiki/Linux_Downloads

##Minikubeとは
Kubarnetesのクラスターの一つ。デモ用ツールです。
シングルクラスターノードなのでMasterノードとWorkerノードがそれぞれ一つのサーバーの中に入っているみたいですね。


##Minikubeのスタート方法

https://kubernetes.io/ja/docs/tasks/tools/install-minikube/#%E3%83%8F%E3%82%A4%E3%83%91%E3%83%BC%E3%83%90%E3%82%A4%E3%82%B6%E3%83%BC%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

![スクリーンショット 2021-12-06 22.29.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599304/af9b10d7-9427-3129-01fa-e2637e6abc8d.png)

まずはMinikubeとkubectlをインストールします。
MacであればHomebrewでインストールできるみたいすね。

・Minikubeインストールコマンド

```
brew install minikube
```
・kubectlインストールコマンド

```
brew install kubectl 
```

ダウンロードが終了したらminikubeを起動させてみましょう

```
minikube start
```

```
ss@MacBook-Pro ~ % minikube start
😄  Darwin 11.5.2 上の minikube v1.24.0
✨  dockerドライバーが自動的に選択されました。他の選択肢:  hyperkit, parallels, virtualbox, ssh
👍  コントロールプレーンのノード minikube を minikube 上で起動しています
🚜  イメージを Pull しています...
💾  Kubernetes v1.22.3 のダウンロードの準備をしています
    > preloaded-images-k8s-v13-v1...: 501.73 MiB / 501.73 MiB  100.00% 8.95 MiB
    > gcr.io/k8s-minikube/kicbase: 355.78 MiB / 355.78 MiB  100.00% 4.81 MiB p/
🔥  docker container (CPUs=2, Memory=2185MB) を作成しています...
🐳  Docker 20.10.8 で Kubernetes v1.22.3 を準備しています...
    ▪ 証明書と鍵を作成しています...
    ▪ Control Plane を起動しています...
    ▪ RBAC のルールを設定中です...
🔎  Kubernetes コンポーネントを検証しています...
    ▪ イメージ gcr.io/k8s-minikube/storage-provisioner:v5 を使用しています
🌟  有効なアドオン: storage-provisioner, default-storageclass
🏄  完了しました！ kubectl が「"minikube"」クラスタと「"default"」ネームスペースを使用するよう構成されました
ss@MacBook-Pro ~ %
```
minikubeのクラスターの形成が終了したみたいです！早い！
statusコマンドで状態を確認できるみたいです。
Runningになっていますね！

```
ss@MacBook-Pro ~ % minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

```

今度はnodeの確認をします。

```
 ss@MacBook-Pro ~ % kubectl get node
NAME       STATUS   ROLES                  AGE   VERSION
minikube   Ready    control-plane,master   10m   v1.22.3
```
nodeができているのを確認できます！
続いてserviceの確認をします。
ではpodはどうでしょう。

```
 ~ % kubectl get pod  
No resources found in default namespace.
```

podはまだ作成されていませんね。

```
ss@MacBook-Pro ~ %　kubectl get service
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   14m
```

serviceもできているのが確認できました。

次にコンテナを1つ起動し、3つにスケールアップしてみましょう！
まずはコマンドでコンテナを一つ起動します。

```
ss@MacBook-Pro ~ %　kubectl create deployment --image gcr.io/google-samples/hello-app:1.0 helloworld
deployment.apps/helloworld created
```
createdになりましたね！

ではpodを確認しましょう！

```
ss@MacBook-Pro ~ %　kubectl get pod
NAME         READY   STATUS    RESTARTS   AGE
helloworld   1/1     Running   0          2m9s
```
今度はpodも一つできています！
続いてスケールアップしてみましょう。

```
ss@MacBook-Pro ~ % kubectl scale --replicas=3 deploy/helloworld  
deployment.apps/helloworld scaled
```

スケールアップしたか確認してみましょう。

```
ss@MacBook-Pro ~ %  kubectl get pod
helloworld-88464f88-m9bkw   1/1     Running   0          97s
helloworld-88464f88-pp9vm   1/1     Running   0          4m22s
helloworld-88464f88-xkx7f   1/1     Running   0          97s
```
おお！増えてる増えてる！
--replicas=3はスケールアップする数を指定しています。--replicas=5だと5つに増えます。
podはコンテナなので要するに3つのコンテナが稼働しているイメージです。

最後はクリーンアップしてきれいにしましょう

```
kubectl delete deploy helloworld && minikube delete　
```

デモとして動かすのはとても楽しいMinikubeなのでした🙆