LoginSignup
8
8

More than 5 years have passed since last update.

CentOS7でminikubeを爆速で試す

Posted at

はじめに

kubernetesクラスタ構成に挫折したのでひとまず手っ取り早く試すのにminikubeを使ってみました。

環境

OS

# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 

docker

# docker --version
Docker version 18.03.0-ce, build 0520e24

dockerはplaybook化したものを使いまわしています。

chaspy/playbook-centos

yum update -yをしておきます。

port解放

8443をあけておきます。

# firewall-cmd --add-port=8443/tcp --zone=public --permanent
success
# firewall-cmd --reload
success
# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources: 
  services: dhcpv6-client ssh
  ports: 8443/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

あけないとサンプル実行時に失敗します。

# kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.4 --port=8080
error: failed to discover supported resources: Get https://XX.XXX.XXX.XXX:8443/apis/extensions/v1beta1: Service Unavailable

構築

公式に従うだけでできました。

kubectl

linux-continuous-integration-with-cm-support

# curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 51.7M  100 51.7M    0     0  2048k      0  0:00:25  0:00:25 --:--:-- 2019k

PATHを通しておきます。

# mv kubectl /usr/local/bin/

minikube

# export MINIKUBE_WANTUPDATENOTIFICATION=false
# export MINIKUBE_WANTREPORTERRORPROMPT=false
# export MINIKUBE_HOME=$HOME
# export CHANGE_MINIKUBE_NONE_USER=true
# mkdir $HOME/.kube || true
# touch $HOME/.kube/config
# export KUBECONFIG=$HOME/.kube/config
# sudo -E ./minikube start --vm-driver=none

Starting local Kubernetes v1.9.4 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Downloading localkube binary
 163.02 MB / 163.02 MB [============================================] 100.00% 0s
 65 B / 65 B [======================================================] 100.00% 0s
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
Kubectl is now configured to use the cluster.

QuickStart

QuickStart

# kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.4 --port=8080
deployment.apps "hello-minikube" created

たぶん8080を受けるとhelloを返すだけのアプリケーション(サービス)を、imageから構築してるんでしょう。

# kubectl expose deployment hello-minikube --type=NodePort
service "hello-minikube" exposed

たぶん8080 portで受付可能なようにしたんでしょう。

# curl $(minikube service hello-minikube --url)
CLIENT VALUES:
client_address=172.17.0.1
command=GET
real path=/
query=nil
request_version=1.1
request_uri=http://XX.XXX.XXX.XXX:8080/

SERVER VALUES:
server_version=nginx: 1.10.0 - lua: 10001

HEADERS RECEIVED:
accept=*/*
cache-control=max-stale=0
connection=Keep-Alive
host=XX.XXX.XXX.XXX:30282
user-agent=curl/7.29.0
BODY:
-no body in request-

たぶんminikubeコマンドで、hello-minikubeのurlを取得し、そこに対してGETをしているんでしょう。

その他

公式手順通りにできてしまったので、理解のためにいろいろ観察してみましょう。

サンプルのイメージ

nginxが動いてるっぽいですが、今回ダウンロードしたイメージk8s.gcr.io/echoserver:1.4は、google container registryからpullしているようですね。

DockerHubのように公開されてるかと思って探したんですが見つけきれませんでした。

ダッシュボード

ノードの30000番にアクセスするとダッシュボードに行けます。

# minikube dashboard --url=true
http://XX.XXX.XXX.XXX:30000

kubernetes.png

めちゃくちゃリッチだ、、、すごい、、、

おわりに

ひとまず遊べる環境ができたので今後も遊び倒したいと思います。

8
8
2

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
8
8