目的
公式サイトを参考に以下のようなDockerとKubernetes(以下K8s)の環境を構築する
- Docker: v19.03.8
- kubectl: v1.18.2
- minikube: v1.2.0
参照
Docker: Install Docker Engine on CentOS
K8s: Install kubectl on Linux
ちなみにKubernetesの略語であるK8sの由来は公式では下記のように説明されている
Kubernetes という名前はギリシャ語で 操舵手 や パイロット という意味があり、知事 やサイバネティックスの語源にもなっています。K8s は、8文字の「ubernete」を「8」に置き換えた略語です。
リポジトリを使用してDockerインストール
※以下コマンドはすべてrootユーザーとして実行してます
リポジトリの設定
$ yum install -y yum-utils
$ yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
最新バージョンの
Dockerのコミュニティエディション(Docekr-ce)、Dockerコマンドを実行するコマンドラインツール(docker-ce-cli)、containerdをインストールする
$ yum install docker-ce docker-ce-cli containerd.io
インストールが終わったらdockerを起動する
$ systemctl start docker
hello-world
イメージを実行できることを確認する
$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
:
:
下記コマンドでインストールしているDockerのバージョンを確認できる
$ docker version
Client: Docker Engine - Community
Version: 19.03.8
API version: 1.40
Go version: go1.12.17
Git commit: afacb8b
Built: Wed Mar 11 01:27:04 2020
OS/Arch: linux/amd64
Experimental: false
:
:
CentOS 7での自動起動設定にDockerを指定する
上記設定のままではCentOS 7を再起動するたびにDockerが停止してしまうため、起動時にDockerも自動起動する設定をするのもおススメ
$ systemctl enable docker
Linuxにkubectlをインストールする
最新リリースをダウンロードする
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
kubectlバイナリを実行可能にする
$ chmod +x ./kubectl
バイナリをPATHに移動する
$ mv ./kubectl /usr/local/bin/kubectl
インストールしたバージョンが最新であることをテストして確認する
$ kubectl version --client
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.2", GitCommit:"52c56ce7a8272c798dbc29846288d7cd9fbae032", GitTreeState:"clean", BuildDate:"2020-04-16T11:56:40Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
Minikubeをインストールする
スタンドアロンバイナリをダウンロードし、minikubeバイナリを実行可能にする
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
&& chmod +x minikube
Minikube実行可能ファイルをパスに追加する
$ install minikube /usr/local/bin/
K8sクラスターを起動する
ここでクラスターの起動コマンドはminikube start
であるが、これはVirtualBoxがインストールされていることが前提となっている
これはK8sのクラスターがVirtualBoxに仮想マシン上で起動されるからである
今回はVirtualBoxを使っていないためオプションで指定する
minikube start --vm-driver=none
このとき以下のようなエラーメッセージが表示された
* Centos 7.7.1908 上の minikube v1.9.2
* Using the none driver based on user configuration
X Sorry, Kubernetes v1.18.0 requires conntrack to be installed in root's path
この場合は指示に従ってconntrack
をインストールする
yum install conntrack
Kubernetesクラスターを起動したら、クラスターのステータスを確認する
$ minikube status
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
このようにステータスがRunningとなっていればOK
以上