minishiftで作られたVMの中身を見てみる
OpenShift 全部俺 Advent Calendar 2017
minishiftのようなツールは魔法のようにセットアップされてうれしい反面、何かあったときにVMの中身がどうなっているのかわからないとやっかいなことがあります。とりあえず解剖します。
VMはふつうにvirshで見えますし、minishift status
というコマンドでも確認できます。
$ sudo virsh list Id Name State ---------------------------------------------------- 7 minishift running $ minishift status Minishift: Running Profile: minishift OpenShift: Running (openshift v3.7.0+7ed6862) DiskUsage: 5% of 37G
minishift ssh
でVMの中に入ることができ、dockerというユーザ名のシェルとなります。恐らくsudoとdockerコマンドがそのまま叩ける設定だろうなと予想して実行すると、案の定実行できます。
$ minishift ssh Last login: Thu Nov 30 03:01:36 2017 from 192.168.42.1 [docker@minishift ~]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3803a0f6fca1 docker.io/openshift/origin-haproxy-router@sha256:9fe2b3b8916b89fbabbd0c798655da6c808156b3c1f473bb8341bf64c6c560a5 "/usr/bin/openshift-r" 40 minutes ago Up 40 minutes k8s_router_router-1-bsnsw_default_3d2ee8f1-d5a0-11e7-8594-525400413df4_0 b9f2f6e2ae9b docker.io/openshift/origin-docker-registry@sha256:9230bd859ce5a7fad13dc676efae72b2c86a9a0177cbd26db9b047be28620143 "/bin/sh -c '/usr/bin" 40 minutes ago Up 40 minutes k8s_registry_docker-registry-1-mk854_default_3b772e27-d5a0-11e7-8594-525400413df4_0 239e4eb40535 openshift/origin-pod:v3.7.0 "/usr/bin/pod" 41 minutes ago Up 41 minutes k8s_POD_router-1-bsnsw_default_3d2ee8f1-d5a0-11e7-8594-525400413df4_0 8353bfb440fa openshift/origin-pod:v3.7.0 "/usr/bin/pod" 41 minutes ago Up 41 minutes k8s_POD_docker-registry-1-mk854_default_3b772e27-d5a0-11e7-8594-525400413df4_0 7322dc424f4b openshift/origin:v3.7.0 "/usr/bin/openshift s" 41 minutes ago Up 9 minutes origin [docker@minishift ~]$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/openshift/origin-haproxy-router v3.7.0 b62f18316ed4 15 hours ago 1.121 GB docker.io/openshift/origin-deployer v3.7.0 abeb2913cd05 15 hours ago 1.099 GB docker.io/openshift/origin v3.7.0 7ddd42ca061a 15 hours ago 1.099 GB docker.io/openshift/origin-docker-registry v3.7.0 359f3779b58f 15 hours ago 500.7 MB docker.io/openshift/origin-pod v3.7.0 73b7557fbb3a 15 hours ago 218.4 MB [docker@minishift ~]$ sudo ls -la /root total 36 dr-xr-x---. 2 root root 4096 Nov 30 02:59 . dr-xr-xr-x. 16 root root 4096 Nov 30 02:27 .. -rw-------. 1 root root 39 Nov 30 02:59 .bash_history -rw-r--r--. 1 root root 18 Dec 28 2013 .bash_logout -rw-r--r--. 1 root root 176 Dec 28 2013 .bash_profile -rw-r--r--. 1 root root 176 Dec 28 2013 .bashrc -rw-r--r--. 1 root root 100 Dec 28 2013 .cshrc -rw-------. 1 root root 1024 Nov 30 02:27 .rnd -rw-r--r--. 1 root root 129 Dec 28 2013 .tcshrc
docker ps
の出力からはOpenShift本体であるoriginコンテナ、docker-reigstryとrouter podが確認できます。
openshiftコマンドやocコマンドはminishiftのVM内には存在していないみたいです。docker exec origin
でOpenShiftのコンテナ上で実行するとOpenShift管理者システムユーザsystem:admin
で実行されることが確認できます。minishiftのデータは/var/lib/minishift/
配下にあるようです。あとはセットアップ中に利用されるであろうコマンドがいくつか/usr/local/bin
にあります。
[docker@minishift ~]$ which openshift oc /usr/bin/which: no openshift in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/docker/.local/bin:/home/docker/bin) /usr/bin/which: no oc in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/docker/.local/bin:/home/docker/bin) [docker@minishift ~]$ sudo find / -type f -name openshift [docker@minishift ~]$ sudo find / -type f -name oc [docker@minishift ~]$ docker exec origin oc whoami system:admin [docker@minishift ~]$ docker exec origin oc get all NAME REVISION DESIRED CURRENT TRIGGERED BY deploymentconfigs/docker-registry 1 1 1 config deploymentconfigs/router 1 1 1 config NAME READY STATUS RESTARTS AGE po/docker-registry-1-mk854 1/1 Running 0 45m po/persistent-volume-setup-s5kcv 0/1 Completed 0 46m po/router-1-bsnsw 1/1 Running 0 45m NAME DESIRED CURRENT READY AGE rc/docker-registry-1 1 1 1 46m rc/router-1 1 1 1 46m NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/docker-registry 172.30.1.1 <none> 5000/TCP 46m svc/kubernetes 172.30.0.1 <none> 443/TCP,53/UDP,53/TCP 46m svc/router 172.30.254.47 <none> 80/TCP,443/TCP,1936/TCP 46m NAME DESIRED SUCCESSFUL AGE jobs/persistent-volume-setup 1 1 46m [docker@minishift ~]$ sudo ls -la /var/lib/minishift/ total 24 drwxr-xr-x. 6 root root 4096 Nov 30 02:27 . drwxr-xr-x. 28 root root 4096 Nov 30 02:27 .. drwxr-xr-x. 3 root root 4096 Nov 30 03:01 hostdata drwxr-xr-x. 4 root root 4096 Nov 30 02:28 openshift.local.config drwxr-xr-x. 103 root root 4096 Nov 30 02:30 openshift.local.pv drwxr-xr-x. 4 root root 4096 Nov 30 02:29 openshift.local.volumes [docker@minishift ~]$ ls -l /usr/local/bin/ total 16 -rwxr-xr-x. 1 root root 2707 Oct 9 08:05 minishift-cert-gen -rwxr-xr-x. 1 root root 5285 Oct 9 08:05 minishift-handle-user-data -rwxr-xr-x. 1 root root 657 Oct 9 08:05 minishift-set-ipaddress
minishift配下はそれぞれ以下のものが格納されています。
hostdata
- etcdのデータ
openshift.local.config
- OpenShiftの設定ファイル群
openshift.local.pv
- hostPath指定で作成されたPV
openshift.local.volumes
- podにマウントされるVolume類
openshift.local.pv
の下にregistryというのがあるのですが、対応するPVもdocker-registry用のPVCもないようです。作りかけか、何か変わったのかな。
これで大体の構成は把握できたのでおしまい。