Hatでソリューションアーキテクトをしている小島です。2018の23日目の記事です。Previewがリリースされました。本記事ではスタートガイドを紹介します。Previewがリリースされました。4ではさらに大きな変更が加えられる予定です。具体的には次の項目などが挙げられます。Programに登録して無料で試してみることができます。Hatからのサポートは提供されないのでご注意ください。4と記載)は、2018年12月時点では次のプラットフォームに対応しています。4のスタートガイドを紹介していきます。8+の利用を前提とします。7は利用できませんのでご注意ください。クラスター構築時に作成される仮想マシンは次の2台です。2GB)ユーザが作成したアプリケーションのPodが動作この2台の仮想マシンのディスクイメージが消費するストレージ容量は、最低で20GB程となります。デフォルトで割り当てられるvCPUとメモリの量についてですが、そのまま利用すると仮想マシンのパワーが足りなくなり、簡単なアプリケーションの作成でも失敗する可能性が高くなります。8GB程に割り当て直しておくことを推奨します。上記の仮想マシンを実行可能なノートPCを用意した後は、各種設定を行っていきます。最初に必要となるパッケージをインストールします。インストーラのビルドに利用するgitとgolangパッケージをインストールします。FedoraではKubernetesやOpenShiftのクライアントツール一式が入ったorigin-clientsパッケージが用意されているため、こちらもインストールしておきます。origin-clients仮想マシンへのパケット転送を有効化します。この設定は、libvirtがホスト上に作成して仮想マシンに接続するブリッジデバイスのために利用されます。0となっている場合は、sysctlコマンドで有効化します。net.ipv4.ip_forward=1そしてlibvirtdへのTCP接続を有効化します。APIのために必要となります。APIは、KubernetesのMaster/Nodeというクラスター構成を宣言的なインフラ構造としてライフサイクルを管理する目的のもとに産まれたオープンソースプロジェクトです。APIが呼び出されて仮想マシンの外にあるlibvirtdにアクセスし、クラスターに参加する仮想マシン(ここではWorker)を新規作成するという仕組みになっています。この仕組みを実施するために、non-rootユーザでもlibvirtdにアクセスできるようにするためのルールと、libvirtdにTCPのポート16509番をリッスンさせるための設定を追加します。設定を反映するために、libvirtdサービスの起動(または再起動)と有効化をしておきます。libvirtd.service今回の環境で仮想マシンが利用するネットワークは192.168.126.0/24と決め打ちされているため、このネットワークから送信されたパケットがホストのファイアーウォールで弾かれないようにしておきます。厳密に表現すると、192.168.126.0/24からlibvirtがデフォルトで作成するdefaultのサブネット192.168.124.0/24(Fedoraの場合)への通信を許可する必要があるので、それに対応したファイアーウォールのルールを設定するということになります。検証の利便性を上げたい場合は、適宜永続化(firewalldの場合は--permanetオプションを利用)しておきます。pool-listでdefaultが無いことを確認した場合は、次のような手順でdefaultストレージプールを作成しておきます。この手順の例ではホストの/var/lib/libvirt/imagesディレクトリを、ストレージプールのPATHとして設定しています。yes最後にNetworkManagerの設定変更を行います。4のインストーラがクラスター内ホストの名前解決ができるように、NetworkManagerのdnsmasqプラグインを有効化します。この例ではドメイン名をtt.testing、ネームサーバのIPアドレスを192.168.126.1と指定しています。4のクラスターが利用するネットワークのブリッジデバイスに割り当てられるIPアドレスです。NetworkManager.confの[main]セクションにdns=dnsmasqを追加することで、ホストが問い合わせるネームサーバがローカルホストになります。これにより、libvirtが仮想マシンの名前解決のために作成したdnsmasqの設定内容をホストとインストーラで利用できるようになります。変更後はNetworkManager.serviceを再起動して設定を反映します。これで一通りの準備は完了です。Installerのリポジトリをクローンします。cloneでリポジトリをクローンします。インストーラをビルドするスクリプトhack/build.shを実行します。この時TAGS=libvirtを指定することで、インストーラへのlibvirt対応機能を追加しています。無事ビルドに成功すると、インストーラであるbin/openshift-installが作成されます。Secret(try.openshift.comで入手可能)の入力が求められます。install-configでinstall-config.yamlに保存しておき、次回以降のインストール時に使い回せるようにしておきます。このファイルの保存先のディレクトリPATHは--dirで指定できます。4のクラスターとして作成されるCoreOSの仮想マシンにログインできるようになります。"demotest"ディレクトリを適当な場所にコピーinstall-config.yamlの中身はこちらです。clusterを実行して、クラスターを作成します。--dir=demotestオプションでdemotestディレクトリ内にあるinstall-config.yamlの情報を利用するのと同時に、インストール時に指定する変数情報やログもdemotestディレクトリに保存されるようになります。--log-level=debugオプションでdebugレベルのログを出力することで、Terraformベースのインストーラが今何を実行しているかを確認できるようになります。xxxxx-xxxxx-xxxxx-xxxxxクラスターの作成が途中で失敗した場合は、キャッシュファイルなどが保存されているディレクトリを削除した後に再実行してみてください。クラスターへのアクセス作成されたクラスターには、ocコマンドやWebブラウザでアクセスできます。アクセスするための情報は、前述のクラスター作成終了時に出力されたメッセージに記載されています。クラスター作成完了時には、クラスター内で動作するPodの一覧を下記のような出力で確認できます。大体下記の出力のようになっていてPodが正常に動作していることを確認できたら、一度仮想マシンをシャットダウンして、virt-managerやvirshで仮想マシンへのvCPU/メモリの割り当てを増やしてください。8GBの割り当てに変更しています。ocp4-worker-0-xxxxx設定変更が終了して仮想マシンを再起動した後は、Webコンソールにアクセスしてみます。クラスターで動作するrouter-defaultServiceにポートフォワーディングするようにします。443ポートフォワーディングを設定した後は、別の端末を開いてDNSのワイルドカードを利用できるように設定します。Name>となるので、今回の例ではxxx.apps.ocp4.tt.testingが127.0.0.1として名前解決できるような設定を追加します。設定追加後はNetworkManager.serviceを再起動して、変更した設定内容を反映し、名前解決ができるようになっていることを確認します。127.0.0.1これでインストール終了時に表示されたURLにアクセスできるようになります。適当なWebブラウザでhttps://console-openshift-console.apps.ocp4.tt.testingにアクセスし、kubeadminユーザでログインすると、次のような画面が表示されます。この画面ではクラスターにあるProjectの一覧が表示されています。Catalogを利用したアプリケーションの作成ができます。4はアップストリームのOKDプロジェクトベースで開発されているので、今利用できるカタログはコミュニティベースのものだけとなります。Name>で仮想マシンに直接ログインできるようになります。-でrootユーザにもなれるので、クラスター内部の詳細な情報を確認できます。clusterを実行します。クラスター作成時に--dirで指定していたディレクトリのPATHを、クリーンアップの時にも指定しておく必要があります。あとは必要に応じて、github.com/openshift/installerのローカルリポジトリ、キャッシュファイル、変更したNetworkManager/libvirt/firewalldの設定ファイルの削除とサービスの再起動を行います。--reloadReferences本記事の内容に合わせて、インストーラの概要説明やトラブルシューティングガイドも記載しているので参考にしてください。4の正式版がリリースされました。こちらのインストールガイドが最新のものとなります。Platform3.11のリリースノートに記載しています。Workstationで実施しています。3台の6台になります。DNSの設定、パブリックIPアドレスとなるEIPを最低6つ確保、などを行う必要があります。Hatでコンサルタントをしている織です。Hatでコンサルタントをしている織です。各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。