ハンズオンでVM(CENTOS7)→docker→k8sの順で環境を構築していく

#ハンズオンでVM(CENTOS7)→docker→k8sの順で環境を構築していく

dockerやk8sの技術を体系的に得たいが時間がない！
ならまずは箱庭作りから始めよう！


##バーチャルボックスでlinux環境構築

###ハイパーバイザーのバーチャルボックスとCENTOS7をダウンロードする。

- バーチャルボックス
https://www.virtualbox.org/wiki/Downloads

- CENTOS7
https://www.centos.org/download/

・バーチャルボックスを起動する。

①新規仮想マシンの作成をクリック


②バーチャルボックスのディスクにCENTOS7をセッティングする！


③仮想ディスクの設定
- 仮想HDDは20Gに設定
- 仮想ディスクを複数ファイルに分割を選択


④ハードウェアカスタマイズ選択
- メモリを4Gに設定
- プロセッサを2コアに設定

⑤バーチャルボックスをCENTOS7をインストールする！
- 言語は「j」を入力し日本語を選択

- ソフトウェアの選択→サーバ(GUI使用)を選択
![2020-01-11_07-18-47-0a0dd6efb9912b4ce6cfd6cec2adf306.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99495/82d50757-cec9-3a98-fe7a-045602f33a47.png)


![2020-01-11_07-18-57-ab97cc98c5845ed70c8cab45499435a7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99495/0411cbe0-82cb-3069-8d89-c8c905ea2910.png)
- インストール先→作成した自前仮想ディスクを選択→完了

- ネットワークとホスト名→オンに設定（インターネットに接続できる状態にする）

- 上記の設定が完了したらインストール開始！

- インストール中にrootパスワード設定とユーザ作成する。

インストールが完了したら再起動を行う。


※VM画面からカーソルを外す操作方法。

VmwarePlayerであればCtrl+ALTキーでVM画面からカーソルを外せる。

Vercalboxであると右のCtrlキーでVM画面からカーソルを外せる。

初回起動操作↓
- ライセンス同意にチェック→設定の完了


- CENTOS7環境のGUIセッティング



- CENTOSのGUI画面からアプリケーション→端末を起動


・下記のコマンドで使用IPを調べる
```ip -f inet a
```
![Docker + Kubernetes で構築する Webアプリケーション 実践講座  Udemy (4) 35.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99495/26475c0f-bf86-2f5e-e05e-a0c8a4f09c7a.jpeg)

ネットワークアダプターのIPアドレスを確認できる。


- WinscpでVM側のrootディレクトリに下記の環境構築用シェルを転送

```sh:minikube-installer.sh
#! /bin/sh

# Install "Docker"
yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
yum install -y \
  docker-ce-19.03.1 \
  docker-ce-cli-19.03.1 \
  containerd.io
systemctl enable docker
systemctl start docker
# Install "kubectl"
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.1/bin/linux/amd64/kubectl
chmod +x ./kubectl
mv ./kubectl /usr/local/bin
# Install "minikube"
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v1.2.0/minikube-linux-amd64
chmod +x minikube
install minikube /usr/local/bin
rm -f minikube
# stop firewall
systemctl disable firewalld
systemctl stop firewalld
# Add addons
minikube start --vm-driver=none
minikube addons enable heapster
minikube addons enable ingress
```
![winscp.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99495/dddaeb3e-ab39-854c-3ced-c4bc727981c9.jpeg)

- VMでないほうからテラタームを実行→先ほどのIPと作成したユーザ名を使用しログイン

- teratermで下記のコマンドで環境構築用シェルをインストール
sh minikube-installer.sh


これでインストールは完了したので下記の確認コマンドを打ってみよう！

|コマンド|定義|
|:--|:--|
|docker version|dockerのバージョンを確認する。|
|kubectl version|k8sのバージョンを確認する。|

![Docker + Kubernetes (2).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99495/20c1e067-87c1-e7a9-ecf6-d29304c70ca3.jpeg)


ここまで確認すればdockerとk8sの環境は完成です。
試しにインストールされたかminikubeコマンドを試してみましょう。


## minikubeコマンドを打ってk8sの理解を深める

- minikubeとはk8sをローカルで実行できるコマンド

### クラスタ実行/停止/状態確認
##### k8sクラスタを操作するコマンド
ちなみにk8sクラスタはdockerコンテナの外層を包んで制御するイメージ

|操作|コマンド|
|:--|:--|
|実行|minikube start|
|停止|minikube stop|
|状態確認| minikube status|

バーチャルボックスを使用していない場合は実行に下記オプションが必要
minikube start --vm-driver=none


### アドオン追加削除一覧確認
##### アドオンを操作するコマンド

|操作|コマンド|
|:--|:--|
|追加|minikube addons enable ADDON_NAME|
|削除|minikube addons disable ADDON_NAME|
|一覧確認| minikube addons list|


```
minikubeの状態を確認する：
minikube status
```

runningになっていればk8sクラスタが実行されてることが解る。
動いていることを確認したらminikubeを停止させてみよう。

```
minikubeを停止させる：
minikube stop
```

minikube statusで止まっているか確認しよう。

```
#minikubeの再起動を行う：
minikube start --vm-driver=none
```

host:runningになっていれば起動している。

```
# minikubeのaddonsの有効無効を確認する：
minikube addons list
```





##【補足ハイパーバイザーにてvmware workstation 15 を使う場合】

ip -f inet a ipでアドレスを調べる。

右のctrlでカーソル脱出させる。

※<Ctrl> + <Alt>を使って[anaconda root@localhost]# のようなコンソール画面に切り替える。

<Ctrl> + <Alt> + <Delete> のキー シーケンスを使用して、ゲスト OS をシャットダウンまたはログオフできます。

またvi テキスト編集：で下記のようなエラーが発生する。
↓
E20: Mark not set

言語設定が原因
「E20: Mark not set」と表示されいくつかのViコマンドが使えない。によるとキーボードの言語設定が原因。

キーボードの設定を日本語にするとなおった
（方法は各自で調べて）

編集状態ならShift + ;で:が入力できる
https://ameblo.jp/ca-engineer/entry-10102519347.html

■キーボードの設定は/etc/sysconfig/keyboardで変更する。
https://ameblo.jp/ca-engineer/entry-10102546292.html

```
KEYBORDTYPE="pc"
KEYTABLE="jp106"
```

vimは<ZZ>	で保存


Ctrl + Alt を押してマウスとキーボードを解放しようとすると、ノート型コンピュータがサスペンドする。

デフォルトでは、Ctrl + Alt キーの組み合わせで Workstation Pro からマウスとキーボードが解放されます。