Help us understand the problem. What is going on with this article?

CentOS7でminikubeを爆速で試す

More than 1 year has passed since last update.

はじめに

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

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

おわりに

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

chaspy
Site Reliability Engineer at Quipper
https://chaspy.me
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした