出力を入力へ

プログラミングに関する自分が考えた事を中心にまとめます

minikubeのvm-driver noneでk8sを構築したときに外部ホストからアクセスを許可する

minikubeでkubernetesを構築するとき,
デフォルトではVirtualBoxVMを作成してその上で構築する.

一方で,この挙動はvm-driverオプションで変更することができ,
オプションに'none'を指定すると,minikubeコマンドを実行したホスト上に
kubernetesを構築することができる.

$sudo minikube start --vm-driver none
Starting local Kubernetes v1.8.0 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
Kubectl is now configured to use the cluster.

しかし,この方法では外部ホストからのアクセスを許可できず,
例えばダッシュボード画面を外部ホストから表示できない.

$ minikube dashboard --url
http://127.0.0.1:30000

VirtualBox上に構築した場合は
外部からアクセスできるようになっている.

(VirtualBox上に構築した場合)
$ minikube dashboard --url
http://192.168.99.100:30000

これに対処する方法として,
プロキシにより外部からアクセス可能な経路を作成する方法がある.

$ kubectl proxy --address=0.0.0.0 --accept-hosts='.*'
Starting to serve on [::]:8001

あとはminikubeを実行したホストに
ブラウザでアクセスすれば おなじみにダッシュボード画面にアクセスできるようになる.
(例: IPが192.168.1.61の場合 http://192.168.1.61:8001/ui など)

f:id:thaim:20171209122143p:plain