こんにちは。平田です。
前回のエントリではインストール手順の概要を説明しました。このエントリではOpenShiftクラスタ用の環境とホストを作成します。
VirtualBox設定
仮想マシンを立てる前に、ホスト間で通信させるためのNATネットワークを作成します。
- VirtualBox > 設定… > ネットワーク > 追加のアイコンクリック
- 編集のアイコンクリック > 分かりやすい名前にリネーム(ここでは ocp.local としています)
Ansible + DNS + NFS用ホスト
インストール作業用ホストを作成します。このホストを、DNS + NFSとして兼用します。
- VirtualBoxにて仮想マシンを作成する(ops.ocp.local)。
- CentOS 7.5 Minimal ISOイメージをダウンロードし、仮想マシンにマウントしてインストーラを起動する。
- OSインストーラにてネットワーク有効化、固定IP指定、ホスト名指定
CentOSのインストールが完了し起動したら、マニュアルのHost Preparationに記載された手順を実行します。マニュアルにはインストール作業用ホストの手順とmasterやnode用ホストの手順が区別なく書かれているので注意が必要です。
- Installing Base Packagesの “For RHEL 7 systems”と書かれた手順(yum install 各種パッケージ、yum update, reboot)を実行する。
- Preparing for Advanced Installationsの “RPM-based installer”の方(Ansibleインストール、及びプレイブック入手)を実行する。
- 尚、OpenShift Originでは、githubからプレイブックをgit cloneしますが、Red Hat製品版では atomic-openshift-utils パッケージをyum installすると/usr/share/ansible/openshift-ansible以下に配置されます。
- Ansibleを実行するためにmasterとnode用ホストに対して公開鍵認証方式でSSH接続する。このため、事前に鍵のペアを生成する。
ssh-keygen
上記のコマンドの結果として、~/.ssh以下にid_rsaとid_rsa.pubが生成される。
DNSとして兼用するため、dnsmasqをセットアップします。
- dnsmasqインストール
yum install -y dnsmasq
- /etc/dnsmasq.confを編集
port=53 domain-needed bogus-priv local=/ocp.local/ # ワイルドカード指定。masterノード上のRouterに飛ばす。 address=/ocp.local/10.0.2.101 expand-hosts domain=ops.local conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig
- /etc/hostsを編集し、DNSエントリを列挙
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.0.2.100 ops.ocp.local 10.0.2.101 master.ocp.local 10.0.2.111 node1.ocp.local 10.0.2.112 node2.ocp.local
- ファイアウォールの設定を変更し、DNSサービスを許可する。
firewall-cmd --add-service=dns --permanent firewall-cmd --reload
- dnsmasqを起動
systemctl start dnsmasq systemctl enable dnsmasq
内部コンテナレジストリ用のNFSとして兼用するため、NFSをセットアップします。
- NFS用のパッケージインストール
yum install -y nfs-utils rpcbind
- 共有ディレクトリの作成
mkdir -p /var/export/registryvol
- /etc/exportsを編集し、共有ディレクトリを公開
/var/export/registryvol *(rw,async,all_squash)
- ファイアウォールの設定を変更し、NFS関連サービスを許可する。
firewall-cmd --add-service=nfs --permanent firewall-cmd --add-service=rpc-bind --permanent firewall-cmd --reload
- NFS関連サービスを起動
systemctl start rpcbind nfs-server systemctl enable rpcbind nfs-server
master用ホスト
OpenShiftのmaster用ホストを作成します。仮想マシン作成時に以下の内容を指定します。
- ハードディスクを追加する。
マニュアルのHost Preparation > Configuring Docker Storageにて、追加のブロックデバイスが必要となる。 - NATネットワークに加えてホストオンリーアダプターを追加する。
仮想マシン外からブラウザやocコマンドでmasterにアクセスするため、ホストオンリーアダプタを追加する。
以下の手順で作成します。
- VirtualBox > 新規 > VM名、タイプ・バージョン、メモリーサイズを指定して作成。
- 作成したVMを選択し設定 > ストレージ > SATAを選択しハードディスクを追加 > 新規ディスクの作成
- CentOS 7.5 Minimal ISOイメージを仮想マシンにマウントしてインストーラを起動する。
- OSインストーラにてネットワーク有効化、固定IP指定、ホスト名指定
CentOSのインストールが完了し起動したら、マニュアルのHost Preparationに記載されたmaster用ホストの手順のみ実施します。
- Installing Base Packagesの “For RHEL 7 systems”と書かれた手順(yum install 各種パッケージ、yum update, reboot)を実行する。
- Installing Dockerの”For RHEL 7 systems”と書かれた手順を実行する。
- Configuring Docker Storage > Configuring Thin Pool StorageのOption Aを実行する。
- /etc/sysconfig/docker-storage-setupファイルにパラメータ指定し、docker-storage-setupコマンドを実行します。このとき、仮想マシン作成時に追加したブロックデバイス(ハードディスク)を指定します。
追加のブロックデバイスは lsblk コマンドで確認できます。私の環境では /dev/sdb となっていました。よって、設定ファイルは以下の用に記述しました。DEVS=/dev/sdb VG=docker-vg
- /etc/sysconfig/docker-storage-setupファイルにパラメータ指定し、docker-storage-setupコマンドを実行します。このとき、仮想マシン作成時に追加したブロックデバイス(ハードディスク)を指定します。
- Ansibleを実行するため、Ansible用ホストからmaster用ホストに対して、公開鍵認証方式でSSH接続できるようにする。
- Ansible用ホストにてroot権限でssh-copy-idを実行する。
ssh-copy-id -i ~/.ssh/id_rsa.pub master.ocp.local
- Ansible用ホストにてroot権限でssh-copy-idを実行する。
node用ホスト
master用のホストをクローンし、node用ホストを作成します。「既存クラスタに対するノード追加」を試すため、2台作成します。
- VirtualBoxにて、master用ホストを停止し右クリック > クローン
すべてのネットワークカードのMACアドレスを最初期化にチェックしてクローン - クローンした仮想マシンを起動し、固定IPとホスト名を変更。
- /etc/sysconfig/network-scripts/ifcfg-NIC名 ファイルに記載された固定IPを変更。
- networkサービス再起動
systemctl restart network
- ホスト名変更
hostnamectl set-hostname node1.ocp.local
- Ansible用ホストからnode1用ホストに対して ssh-copy-id を実行する。
ssh-copy-id -i ~/.ssh/id_rsa.pub node1.ocp.local
- 上記を繰り返し、あとで使用するnode2を追加する。
確認
環境が構築できたか確認します。
- Ansible用ホストからrootでmaster、node1-2に対してパスワードなしの公開鍵認証方式でSSH接続できること。
- Ansible用ホスト、master、node1-2の全てについて、全てのホストを名前解決できること。
その3に続く。
ピンバック: OpenShift Origin 3.9 インストールその3 OpenShiftインストール – ナッツウェル 技術研究室