Hatの福岡オフィスでソリューションアーキテクトをしている田中司恩です。早いもので今年も12月がやってきました。Hatに入り、その後も福岡に引っ越ししたりとあっという間の一年でした。Qiitaということで早速開始です!こちらは1日目のエントリになります。4.2におけるネットワーク制限環境下でのインストールについて説明しました。Operatorの設定に関するパートがありました。Operator設定編」と題して説明します。本記事中で使用する環境やファイル名は前回記事の内容をそのまま使用しています。本記事の章立てはこのようになります。Operatorについての内容が出てくるので初めて設定を行う時は戸惑うことと思います。本記事では「何をすればどうなるのか」という点に焦点を当てて説明します。OperatorがDegradedになります。Operatorで全てのイメージの管理を無効化する」という方法を説明しました。Operatorで全てのイメージの管理を無効化もう一つの方法として、使いたいイメージをミラーレジストリーにミラーし、それ以外を管理対象から外す、という方法があります。[図2]使いたいイメージをミラーレジストリーにミラー<参考>全てのイメージをミラーすれば管理対象から外す必要が無いのでは?という点について記事末尾の「参考:全イメージミラーシェルスクリプト」を参照ください。Operatorの設定をまとめた内容が下記の表になります。OperatorがDegradedになります。これを回避する方法として2,3,4のパターンがあります。パターン1に対し、パターン3では全てのイメージを未使用にします。前回の記事で説明した方法になり、設定難度も低いです。パターン2と4は似ていますが設定方法が異なります。パターン4では必要最低限の設定で済むのでパターン2に比べると簡単です。Operatorの設定について説明します。イメージのミラーイメージのミラーに使うコマンドは下記です。DSTイメージのミラーの実行の前に、ミラーレジストリーのリポジトリーを確認してみます。https://registry.test.example.local:5000/v2/_catalog{"repositories":["ocp4/openshift4"]}クラスタのインストール(場合によってはアップグレードも)直後だと、インストール(アップグレード)に使用したものしか登録されていません。registry.redhat.ioのイメージを、ミラーレジストリーにミラーを実行します。対象はnginx-110-rhel7を指定した例です。(3.887MB/s)再度ミラーレジストリーのリポジトリーを確認してみます。https://registry.test.example.local:5000/v2/_catalog{"repositories":["ocp4/openshift4","rhscl/nginx-110-rhel7"]}ミラーしたイメージが追加されているのが確認できます。認証局証明書の登録クラスターのイメージ設定オブジェクトに、レジストリーホストで作成した自己署名証明書を信頼されたCAとして登録します。Portalイメージのインポート元のURLを、ミラーレジストリーのURLで上書きします。イメージをミラーしたnginx:1.10はイメージの参照ができるのでエラーが消えています。ミラーしていないnginx:1.12はエラーのままです。Operatorの管理配下から、指定のイメージを除外する設定です。先の項目では、まだミラーしていないnginx:1.12にはエラーが出ていました。OperatorはDegradedになります。ステータスを報告します。した場合に指定のイメージストリームを除外設定することで、Degradedになることを回避できます。nginx[図6]skippedImagestreamsの追加前nginxのラベルはmanaged=trueです[図7]skippedImagestreamsの追加後nginxのラベルがmanaged=falseに変わりましたさらに除外するイメージストリームを追加します。applyで実行してみます。configuredskippedImagestreamsにさらに追加後[図8]skippedImagestreamsにさらに追加後nginxとnodejsのラベルがmanaged=falseになっていますこのように、エラーが出ているイメージを除外指定する方法が、設定概要で説明したパターン2の方法になります。patched結果はこのようになります。Operator管理対象外のイメージと、除外指定をしたイメージが残ります。このように使用したいイメージを除外設定とし、全体のイメージ管理をオフにすることで、必要最低限の設定で済ませることができます。この方法がパターン4の方法になります。(参考)例で紹介したnginxとnodejsですが、どちらものGitのソースを利用したS2Iビルドを行います。今回のようなネットワーク制限環境下ではそもそもクラスタからインターネットへのアクセスができず、Githubを利用するような用途には実際には利用できません。ミラーレジストリーを利用したアプリのデプロイミラーしたイメージストリームを利用してアプリのデプロイを行ってみます。今回はS2Iを利用しないredisを使用します。new-appを使う手順は通常通りです。前提としてrhscl/redis-32-rhel7:latestがすでにミラー済みとします。3.2問題無くアプリのデプロイができました。まとめ前回の記事から引き続き、ネットワーク制限環境下での内容について解説しました。Operatorやイメージに関する内容についても理解する必要があります。ここまで行っても全ての機能が完全に使える訳ではありませんので、やはり何らかの手段でクラスタをインターネットへ接続する環境を整えることを推奨します。Ideas!参考:全イメージミラーシェルスクリプト本記事のイメージのミラー手順では、個別のイメージタグを指定してミラーする方法を紹介しました。Operatorに登録されているミラーが必要なイメージストリーム数は211あります。手作業で全てをミラーするのは手間なので、全てをミラーするサンプルスクリプトを作成しました。下記のスクリプトは検証用に作成したものです。本番環境で実行することは推奨しません。$SECRETdone全てのミラーの完了に要する時間は、ネットワークの環境にもよりますが数時間はかかります。/opt/registryの容量が47GB増大します。これで全てのイメージタグがミラーできる訳ではなく、どうしてもエラーが出てミラーできないものがいくつかあります(イメージストリーム内の一部のタグのみミラーできない、等も含む)。検証環境でミラー後にダウンロードが完了しなかったイメージストリームは下記の通りです。パターン2となりskippedImagestreamsを組み合わせる必要があります。コマンドが載っていますが、間違いというよりは情報不足です。ソリューションアーキテクトの小島です。各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。