Kubernetesのインストール(Minikube)

今回はMacにMinikubeを使用してシングルノードのKubernetes環境を構築します。

Minikube

Install Minikube - Kubernetes
ローカルPCや仮想サーバにをシングルノードのKubernetes環境を構築する際に使用する方法です。

VirtualBox、VMware Fusion,HyperKit等のハイパーバイザーが前提となります。
EC2等で直接使用することはできません。

Kubernetesのインストール

ハイパーバイザーのインストール

VirtualBox、VMware Fusion、HyperKit等のハイパーバイザーが前提となりますので、事前にインストールしておきます。
VirtualBoxであれば、brewを使用してのインストールが可能です。

$ brew cask install virtualbox

kubectlのインストール

$ brew install kubernetes-cli
$ kubectl version

Minikubeのインストール

$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.30.0/minikube-darwin-amd64 && chmod +x minikube && sudo cp minikube /usr/local/bin/ && rm minikube
$ minikube version

minikubeのVMの開始

自動でVirtualBoxにイメージがダウンロードされ、minikubeの仮想マシンが起動され、シングルノードのクラスタが構成されます。

$ minikube start

稼働確認

hello-minikubeのpodを起動します。

$ kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080
$ kubectl get pods -o wide
将来のバージョンでkubectl runが使えなくとのメッセージが出力されすが、現時点では無視します。
kubectl run –generator=deployment/apps.v1beta1 is DEPRECATED and will be removed in a future version. Use kubectl create instead.

podに対して外部からアクセスできるように設定します。

$ kubectl expose deployment hello-minikube --type=NodePort
$ kubectl get services -o wide

hello-minikubeアプリケーションのURLを確認します.

$ minikube service hello-minikube --url

表示されたURLにブラウザ等でアクセスすることで、hello-minikubeアプリケーションにアクセスすることが可能です。curlでアクセスすると下記のような情報が出力されます。

$ curl $(minikube service hello-minikube --url)


Hostname: hello-minikube-7c77b68cff-5gklq

Pod Information:
    -no pod information available-

Server values:
    server_version=nginx: 1.13.3 - lua: 10008

Request Information:
    client_address=172.17.0.1
    method=GET
    real path=/
    query=
    request_version=1.1
    request_scheme=http
    request_uri=http://192.168.99.100:8080/

Request Headers:
    accept=*/*
    host=192.168.99.100:30302
    user-agent=curl/7.54.0

Request Body:
    -no body in request-

minikubeで起動した環境の削除

サービスを削除します。

$ kubectl delete services hello-minikube
$ kubectl get services -o wide

podを削除します。

$ kubectl delete deployment hello-minikube
$ kubectl get pods -o wide

minikubeを停止します。

$ minikube stop
$ minikube status

環境の削除

$ minikube delete
$ minikube status
$ rm -rf ~/.minikube

参考

Picking the Right Solution - Kubernetes
Install Minikube - Kubernetes

コメント