第3章 Container Development Kit を使用した OpenShift との対話
CDK は仮想マシンを作成し、この仮想マシンにローカルで単一ノードの OpenShift クラスターをプロビジョニングします。以下のセクションでは、CDK がローカルの OpenShift クラスターの対話および設定を支援する方法を説明します。
CDK 仮想マシンを管理する方法は、「 基本的な使用方法 」セクションを参照してください。
3.1. OpenShift クライアントバイナリー (oc) の使用
3.1.1. 概要
minishift start
コマンドは、cluster up 方法を使用してOpenShift クラスターを作成します。このため、oc
バイナリーをホストにコピーします。
oc
バイナリーは、$MINISHIFT_HOME/cache/oc/v3.11.374 ディレクトリーにあります。これは、CDK のデフォルトの OpenShift バージョンを使用することを前提とします。minishift oc-env
を使用してこのバイナリーを PATH
に追加できます。これは、シェルに入力する必要のあるコマンドを表示します。
minishift oc-env
の出力は、オペレーティングシステムとシェルタイプによって異なります。
$ minishift oc-env export PATH="/home/user/.minishift/cache/oc/v3.11.374:$PATH" # Run this command to configure your shell: # eval $(minishift oc-env)
3.1.2. CDK CLI プロファイル
minishift start
コマンドの一環として、minishift という名前の CLI プロファイル も作成されます。このプロファイルは コンテキスト とも呼ばれ、OpenShift クラスターと通信するための設定が含まれます。
CDK は自動的にこのコンテキストをアクティベートしますが、たとえば別の OpenShift インスタンスにログインした後にそのコンテキストに戻す必要がある場合は、以下を実行します。
$ oc config use-context minishift
oc
の使用方法の概要は、OpenShift ドキュメントの「CLI の使用方法」トピックを参照してください。
3.1.3. クラスターへのログイン
デフォルトでは、cluster up
は、AllowAllPasswordIdentityProvider を使用してローカルクラスターに対して認証を行います。つまり、空でないユーザー名およびパスワードを使用してローカルクラスターにログインできます。
推奨されるユーザー名およびパスワードは、それぞれ developer
と developer です。これは、そのユーザーおよびパスワードがすでにデフォルトのプロジェクト myproject に割り当てられており、管理者の 権限を借用 できるためです。これにより、--as system:admin
パラメーターを使用して管理者コマンドを実行できます。
管理者としてログインするには、システムアカウントを使用します。
$ oc login -u system:admin
この場合は、クライアント証明書 が使用されます。証明書は ~/.kube/config に保存されます。cluster up
コマンドは、ブートストラップの一部として適切な証明書をインストールします。
oc login -u system -p admin
コマンドを実行すると、ログインはしますが、管理者ではありません。代わりに、特定の権限を持たない非特権ユーザーとしてログインします。
利用可能なログインコンテキストを表示するには、以下を実行します。
$ oc config view
3.1.4. Web コンソールへのアクセス
OpenShift Web コンソール にアクセスするには、CDK を起動して Web コンソールの URL を取得するために、シェルでこのコマンドを実行します。
$ minishift console --url
または、CDK の起動後、以下のコマンドを使用してブラウザーでコンソールを直接開くことができます。
$ minishift console
3.1.5. OpenShift サービスへのアクセス
ルートで公開されるサービスにアクセスするには、シェルで以下のコマンドを実行します。
$ minishift openshift service [-n NAMESPACE] [--url] NAME
詳細は、「サービスの公開」も参照してください。
3.1.6. OpenShift ログの表示
OpenShift ログにアクセスするには、CDK の起動後に以下のコマンドを実行します。
$ minishift logs
3.1.7. OpenShift 設定の更新
OpenShift の実行中に、クラスターのマスターまたはノード設定を表示および変更できます。
OpenShift マスター設定ファイル master-config.yaml を表示するには、以下のコマンドを実行します。
$ minishift openshift config view
マスター設定の代わりにノードまたは kubeapi-server 設定を表示するには、target
フラグを指定します。
view
サブコマンドの詳細は、minishift openshift config view
の概要を参照してください。
OpenShift 設定の更新後、OpenShift は透過的に再起動します。
3.1.7.1. 例: クロスオリジンリソース共有の設定
この例では、追加の IP アドレスがリソースを要求するように OpenShift マスター設定を更新して、クロスオリジンリソース共有 (CORS) を設定します。
デフォルトでは、OpenShift はクラスターの IP アドレスまたはローカルホストからのクロスオリジンリソース要求のみを許可します。この設定は、マスター設定 ファイル master-config.yaml の corsAllowedOrigins
プロパティーに保存されます。
プロパティー値を変更し、すべてのドメインからのクロスオリジン要求を許可するには、以下のコマンドを実行します。
$ minishift openshift config set --patch '{"corsAllowedOrigins": [".*"]}'
上記コマンドを実行すると The specified patch need to be a valid JSON. エラーが発生する場合は、オペレーティングシステム、シェル環境とその挿入動作に応じて、上記のコマンドを変更する必要があります。
たとえば、Windows 7 または 10 で PowerShell を使用している場合は、上記のコマンドを以下のように変更します。
PS> minishift.exe openshift config set --patch '{\"corsAllowedOrigins\": [\".*\"]}'
コマンドプロンプトを使用する場合は、以下を使用します。
C:\> minishift.exe openshift config set --patch "{\"corsAllowedOrigins\": [\".*\"]}"
3.1.7.2. 例: OpenShift ルーティングサフィックスの変更
この例では、マスター設定で OpenShift ルーティングの接尾辞を変更します。
静的ルーティング接尾辞を使用する場合は、minishift start
コマンドの一部として routing-suffix
フラグを設定できます。デフォルトでは、CDK は nip.io をベースとした動的なルーティングプレフィックスを使用します。このプレフィックスは、仮想マシンの IP アドレスはルーティング接尾辞 (例: 192.168.99.103.nip.io) に含まれます。
nip.io で問題が発生した場合は、同じ原則を基にした xip.io を使用できます。
ルーティング接尾辞を xip.io に設定するには、以下のコマンドを実行します。
$ minishift openshift config set --patch '{"routingConfig": {"subdomain": "<IP-ADDRESS>.xip.io"}}'
上記の例の IP-ADDRESS
は、CDK 仮想マシンの IP アドレスに置き換えてください。minishift ip
コマンドを実行して、IP アドレスを取得できます。
3.1.8. コンポーネントの OpenShift クラスターへの追加
コンポーネントを実行中の OpenShift クラスターに追加するには、以下を使用します。
$ minishift openshift component add <component-name>
3.1.8.1. 例: service-catalog コンポーネントの追加
この例では、service-catalog コンポーネントを以下のように追加できます。
$ minishift openshift component add service-catalog
3.1.9. OpenShift クラスターに追加する有効なコンポーネントの一覧表示
実行中の OpenShift クラスターに追加できる有効なコンポーネントを一覧表示するには、以下を実行します。
$ minishift openshift component list