OpenShift Origin v3の最新版はVagrantで簡単に試せるようになっています。現時点でのOpenShift Origin v3はバージョン1.0.3がリリースされたところなので、今回動かすのは1.0.4の開発版ということになります。
Vagrantで複数ノード構成を構築することもできるのですが、まずは一台のAll-in-one構成を作ります。基本的な使い方を知るにはこのAll-in-one構成で十分です。
ちなみにOpenShift v3のv3
というのはアーキテクチャバージョンであり、実装のバージョンを示しているわけではありません。コードネームのようなものです。実装のソフトウェアバージョンはふつうに0.6
や1.0.3
など、よくあるx.y.z
の形式です。初見でびっくりするかもしれません。
Vagrantの準備
自分はFedora 22でVagrantのバックエンドはlibvirt/qemu-kvmなので、それらをインストールします。Mac/WindowsではVirtualBoxを使うことになると思うので以下は読み飛ばして環境に合わせたVagrant/VirtualBoxのインストールを行ってください。
libvirtはインストールした後に以下の設定をしておいて都度認証しないようにしておきます。
sudo dnf install -y libvirt qemu-kvm sudo groupadd libvirt sudo usermod -aG libvirt nekop sudo vi /etc/libvirt/libvirtd.conf # 以下の設定を有効化 unix_sock_group = "libvirt" unix_sock_ro_perms = "0777" auth_unix_ro = "none" auth_unix_rw = "none" sudo systemctl enable libvirtd && sudo systemctl start libvirtd
そしてVagrantをインストールします。
sudo dnf install -y vagrant vagrant-libvirt
OpenShift Origin v3のインストール
OpenShift Originのソースコードを取得します。ソースツリーにVagrantfileが含まれているので、そのままvagrant up
するだけでOpenShiftのビルドおよび動作が可能なFedora 21のVMが立ち上がります。最初はboxのダウンロードを行うので少し時間がかかります。デフォルトでVMのメモリは1GBなのですが、ビルドに2GB使うので2GBを設定しておきます。
git clone https://github.com/openshift/origin/ cd ./origin/ cat <<EOF >.vagrant-openshift.json { "cpus": "4", "memory": "2048" } EOF vagrant up vagrant ssh
もう修正がマージされたので大丈夫だと思いますが、vagrant up
でMssing required arguments: libvirt_uri (ArgumentError)
が出力される場合はFix incorrect ENV["VAGRANT_LIBVIRT_URI"] if statement by nekop · Pull Request #3862 · openshift/origin · GitHubの変更を適用してください。
VMにsshしたら、OpenShiftの最新版をビルドします。
cd /data/src/github.com/openshift/origin/ # vagrant ssh後のカレントディレクトリなので移動してなければ不要 make clean build
ビルドが終わったら起動します。systemdの定義ファイルは最初からVagrant環境に配置されており、ビルドしたバイナリを指すようになっています。
sudo systemctl start openshift
OpenShiftは起動時にcertファイルなどを自動生成します。systemctlで起動した場合は/
以下に生成され、/openshift.local.config
のようなサブディレクトリが3つできます。
Vagrant環境では/etc/profile.d/openshift.sh
にPATH
やKUBECONFIG
が指定されていて、sudoなどを使う場合にちょっとトリッキーな挙動になることに注意してください。vagrantユーザではoc, oadmコマンドにPATHが通してあり、KUBECONFIGがadmin権限のものを指しているのでocコマンドなどの操作はデフォルトでOpenShiftのadmin権限となります。sudoは環境変数を明示的に渡さない限り環境変数を引き継がないですし、profileも読み込まないので、oc/oadmなどの実行時にこの点に引っかかるとoc: command not found
や、KUBECONFIGが必要なのに存在しない場合のError in configuration: default cluster has no server defined
というメッセージが表示されます。
初期状態を確認してみましょう。
oc get all
10行くらいいろいろ出力されますが、kubernetesのサービスだけが見えると思います。
インストール後に最初はoadmコマンドを利用してDocker registryをデプロイするのですが、sudoを利用するのでoadmコマンドを事前にwhichに渡してフルパスに変換しています。
sudo `which oadm` registry --create --credentials=/openshift.local.config/master/openshift-registry.kubeconfig --config=/openshift.local.config/master/admin.kubeconfig
もう一度oc get all
を実行してみてください。docker-registryがPendingステータスで見えるはずです。ここではdocker pullが行われているので、実際にDocker registryが起動してRunningの状態になるまで2分程度かかると思います。oc get pod
, oc get pod --watch
, oc get ev
などでステータスを確認できます。
次にデフォルトのImageStreamをインポートします。
cat ./examples/image-streams/image-streams-centos7.json | oc create -n openshift -f -
ここまででAll-in-one構成のOpenShift Origin v3のインストールは完了です。
次回は一般ユーザからこのOpenShiftを利用する手順を紹介します。ちなみに、このVagrant環境上で一般ユーザを試したい場合は、デフォルト設定されているadmin設定ファイルへの参照を消す必要があるので、unset KUBECONFIG
を実行する必要があります。unsetした場合のKUBECONFIGのデフォルトは$HOME/.kube/config
になります。
Vagrantではなく他の方法としてdockerで動かすというのもありますが、Fedora/RHEL/CentOS以外では動作しないようです。