第2章 OpenShift Container Platform のインストール
2.1. 概要
本書では、OpenShift Container Platform に関する基本的な概念を紹介し、基本的なアプリケーションをインストールできるようになります。本書は、OpenShift Container Platform の実稼働環境のデプロイや、インストールには適していません。
本書は、最初のクラスターをインストールする時に、クイックインストーラーを使用しますが、OpenShift Container Platform 3.9 から、クイックインストールの方法は非推奨になります。今後のリリースでは、完全になくなり、本書の手順は随時更新されます。また、クイックインストーラーを使用したバージョン 3.7 から 3.9 のアップグレードはサポートされていません。新規インストールやクラスターのアップグレード用の「Advanced Installation (通常インストール)」の方法は、今後もサポートされます。
2.1.1. 前提条件
OpenShift Container Platform のインストールには、以下が必要です。
-
最低でも RHEL 7 以降の物理または仮想マシン 2 台。このマシンには、完全修飾ドメイン名 (物理的またはネットワーク上) および、各マシン同士で「パスワードなしで SSH」経由でアクセスできるように設定しておく必要があります。本書では
master.openshift.example.com
およびnode.openshift.example.com
を使用します。これらのマシンでは、ドメイン名を使用して相互に ping を送信できる必要があります。 - 有効な Red Hat サブスクリプション
ワイルドカードを指定した DNS 解決。お使いのドメインがノードの IP に対して解決できるようにしておきます。つまり、DNS サーバーに以下のようなエントリーを設定します。
master.openshift.example.com. 300 IN A <master_ip> node.openshift.example.com. 300 IN A <node_ip> *.apps.openshift.example.com. 300 IN A <node_ip>
OpenShift Container Platform を使用して、アプリケーションをデプロイする場合は、内部ルーターにより、受信要求を適切なアプリケーション pod にプロキシーする必要があります。アプリケーションドメインの一部として apps を使用して、アプリケーショントラフィックを適切な pod にマークします。
apps 以外、どれでも使用することができます。
*.cloudapps.openshift.example.com. 300 IN A <node_ip>
上記を設定したら、以下の手順を使用して 2 台のマシンに OpenShift Container Platform のインストール設定を行います。
2.1.2. OpenShift Container Platform サブスクリプションのアタッチ
ターゲットマシンで (マスターとノード両方)、root として
subscription-manager
を使用し、Red Hat にシステムを登録します。$ subscription-manager register
RHSM から最新のサブスクリプションデータをプルします。
$ subscription-manager refresh
利用可能なサブスクリプションを一覧表示します。
$ subscription-manager list --available
OpenShift Container Platform サブスクリプションを提供するプール ID を検索してアタッチします。
$ subscription-manager attach --pool=<pool_id>
-
<pool_id>
の文字列は、OpenShift Container Platform を提供するプール ID に置き換えます。プール ID は、長い英数字の文字列となっています。
これらの RHEL システムには、OpenShift Container Platform をインストールできるようになりました。次に、これらのシステムに対して、OpenShift Container Platform をどこから入手するかを指示する必要があります。
2.1.3. リポジトリーの設定
マスターとノード上の両方で、subscription-manager
を使用して、OpenShift Container Platform のインストールに必要なリポジトリーを有効化します。今回の例にある最初のリポジトリー 2 つはすでに有効化されている場合があります。
$ subscription-manager repos --enable="rhel-7-server-rpms" \ --enable="rhel-7-server-extras-rpms" \ --enable="rhel-7-server-ose-3.9-rpms" \ --enable="rhel-7-fast-datapath-rpms" \ --enable="rhel-7-server-ansible-2.4-rpms"
このコマンドでは、RHEL システムに対して、OpenShift Container Platform をインストールするのに必要なツールが上記のリポジトリーから入手できることを指示しています。次に、Ansible をベースにする OpenShift Container Platform インストーラーが必要です。
2.1.4. OpenShift Container Platform パッケージのインストール
OpenShift Container Platform のインストーラーは、atomic-openshift-utils
パッケージで提供されます。マスターとノードの両方で、yum update
を実行してから yum
を使用してインストールしてください。
$ yum -y install wget git net-tools bind-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct $ yum -y update $ yum -y install atomic-openshift-utils $ yum -y install docker
2.1.5. パスワードなしの SSH アクセスの設定
マスターでインストーラーを実行する前に、パスワードなしの SSH アクセスを設定します。インストーラーがこれらのマシンにアクセスできるようにするために、この作業は必要です。マスターで以下のコマンドを実行します。
$ ssh-keygen
プロンプトの指示に従い、パスフレーズを求められたら Enter を押してください。
SSH 鍵を簡単に配信する方法として、bash
ループを使用します。
$ for host in master.openshift.example.com \ node.openshift.example.com; \ do ssh-copy-id -i ~/.ssh/id_rsa.pub $host; \ done
2.1.6. インストーラーの実行
マスターでインストーラーを実行します。
$ atomic-openshift-installer install
これは、さまざまな手順を経て、対話式にインストールしていくプロセスです。大半は、デフォルトオプションを使用してください。インストールが開始されたら、OpenShift Container Platform のオプションを選択してください。マスター 1 つ、ノード 1 つをインストールし、ドメイン名は本セクションの最初で記載した master.openshift.example.com
と node.openshift.example.com
の FQDN に指定します。
インストーラーにより、ルートの FQDN が求められた場合には、前述したように、openshift.example.com
ではなく、apps.openshift.example.com
または cloudapps.openshift.example.com
を使用する 必要があります。間違ってしまった場合には、インストールプロセスの最後で /etc/origin/master/master-config.yaml を編集します。このファイルで subdomain
エントリーを探してご自身でこの変更を加えてください。
このインストールプロセスは、約 5-10 分かかります。
2.1.7. OpenShift Container Platform の起動
インストールに成功すると、以下のコマンドを使用して OpenShift Container Platform を起動します。
# systemctl restart atomic-openshift-master-api atomic-openshift-master-controllers
インストールして起動が済んだら、基本認証、ユーザーアクセス、ルートを設定してから新規プロジェクトを追加してください。
2.2. OpenShift Container Platform との対話
OpenShift Container Platform では、対話用に以下の 2 つのコマンドラインユーティリティーがあります。
-
oc
: 通常のプロジェクトおよびアプリケーション管理用 oc adm
: 管理者タスクoc adm
コマンドの実行時は、Ansible ホストのインベントリーファイルに記載されている最初のマスターからのみ実行する必要があります。デフォルトは、/etc/ansible/hosts です。
oc --help
および oc adm --help
を使用して、利用可能な全オプションを表示します。
また、Web コンソールを使用してプロジェクトとアプリケーションを管理することもできます。Web コンソールは、https://<master_fqdn>:8443/console
から利用できます。次のセクションでは、コンソールにアクセスするためのユーザーアカウントを作成する方法を記載しています。
リモートのシステムだけでなく、これらのコマンドラインユーティリティーを使用して、OpenShift Container Platform インスタンスと対話できます。OpenShift CLI としてバンドルされており、Windows、Mac または Linux 環境用のユーティリティーを ここ からダウンロードできます。
2.3. ロールおよび認証の理解
デフォルトでは、初回インストール時には OpenShift Container Platform にロールやユーザーアカウントが作成されないので、作成する必要があります。オプションとして、(最初に) 新規ロールを作成するか、誰でもログインできるようにポリシーを定義する方法があります。
最初に、デフォルトの system:admin ユーザーで最低でも 1 回ログインして、マスターで以下のコマンドを実行します。
$ oc login -u system:admin
これ以降、別途記載がない限り、コマンドはマスターで実行してください。
このアカウントで最低でも 1 回ログインして、system:admin ユーザーの設定ファイルを作成します。このファイルがあれば、以降ログインができるようになります。
このシステムアカウントにはパスワードはありません。
以下のコマンドを実行して、OpenShift Container Platform が正常にインストール、起動したことを確認します。マスターとノードが Ready
ステータスで表示されます。
$ oc get nodes
基本的な OpenShift Container Platform 環境の設定を続行するには、「OpenShift Container Platform の設定」に記載の手順に従います。