11
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CentOSにDockerとKubernetes(minikube)をインストール

Last updated at Posted at 2017-02-21

CI/CDデモ環境構築作業メモ その1

ちょっとしたデモやテストに使えるような、ローカルPC単独で使えるデモ環境を作ることにした。
躊躇なく汚したり壊したりできるように、仮想マシンの中に全ての機能を押し込んで構築する。
Linux仮想マシンを一つ用意し、CI/CDツールはすべてDockerコンテナで用意、ランタイム環境にはMinikubeを使用する構成にした。

完成形イメージ

image

CI/CD環境については、ソースリポにGitLab、CIツールはJenkins、アーティファクトリポにJFrog、その他Dockerイメージレジストリと開発者用コンソールにそれぞれコンテナを用意する。
JenkinsのコンテナについてはKubernetes環境を操作できるようkubectlとその他Ansibleやmavenなど入れておいてもいいかも。

CentOS環境の準備

Linux仮想マシンは、手元のVMWare fusionに、過去にKVMを設定したCentOSイメージを使用した。
# cat /etc/centos-release CentOS Linux release 7.1.1503 (Core)
CentOSのインストールとKVMの設定はここでは割愛。

IPフォワードの設定

実際の操作にあたっては母艦のブラウザからCentOSのIP経由でDockerコンテナにアクセスするため、CentOSのIPフォワードを有効にしておく。 /etc/sysctl.confに1行追加しネットワークサービスを再起動。
# vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

# systemctl restart network
正しく設定されると、/proc/sys/net/ipv4/ip_forward1に書き換わる

CentOSへのDockerインストール

ドキュメント に従い、Dockerリポジトリを追加

2017年3月17日追記
上記オフィシャルドキュメントが作業時点から書き換わっているおり、現時点では以下のコマンドでは作業できない。オフィシャルドキュメントに従ってください…

# yum-config-manager --add-repo \ https://docs.docker.com/engine/installation/linux/repo_files/centos/docker.repo
リポジトリキャッシュの更新
# yum makecache fast
Dockerエンジンインストール
# yum install docker-engine
Dockerデーモンの有効化、開始
# systemctl enable docker
# systemctl start docker
確認
# docker version
# docker run hello-world
# docker ps -a

Minikubeのインストール

[ドキュメント] (https://github.com/kubernetes/minikube/blob/master/DRIVERS.md#kvm-driver)に従いkvm-driverをインストール

今回はMinikubeが使用する仮想プラットフォームにKVMを使用するため、まずKVM用のドライバをインストールする。
# curl -L https://github.com/dhiltgen/docker-machine-kvm/releases/download/v0.7.0/docker-machine-driver-kvm ¥
-o /usr/local/bin/docker-machine-driver-kvm
# chmod +x /usr/local/bin/docker-machine-driver-kvm
# yum install libvirt-daemon-kvm

[minikubeインストール] (https://github.com/kubernetes/minikube/releases)

# curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.16.0/minikube-linux-amd64
# chmod +x minikube
# mv minikube /usr/local/bin/

[kubectlインストール] (https://kubernetes.io/docs/user-guide/prereqs/)

# curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
常に最新バージョンをダウンロードするためにcurlが入れ子になっている
# chmod +x kubectl
# mv kubectl /usr/local/bin

minikube起動および確認

Minikubeの仮想環境にKVMを使用しているため--vm-driverオプションにkvmを指定して起動する。
# minikube start --vm-driver=kvm
確認
# kubectl run hello-minikube --image=gcr.io/google_containers/echoserver:1.4 --port=8080
# kubectl expose deployment hello-minikube --type=NodePort
# kubectl get pod

ダッシュボードURLを確認
# minikube dashboard --url
このコマンドにより、minikubeがKVM上に起動する仮想マシンのIPアドレスを確認できる。
仮想マシンにはデフォルトでdockerユーザが作成されており、SSHを使用してパスワードtcuserでログインできる。

SSH接続は、IPアドレスやパスワードがわからなくても、minikube sshコマンドで可能
minikubeのインストールと確認にあたっては[minikubeでローカルKubernetesクラスタを5分でつくる方法] (http://qiita.com/mumoshu/items/8f55ee830d8e5c172dd4)も参考にさせていただいた。

疎通確認

pingを使って簡単な疎通確認をしておく。
CentOS <-> Docker Container
CentOS <-> minikube VM
Docker Container <-> minikube VM

つづく?

11
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?