はじめに
ROKS(Red Hat OpenShift on IBM Cloud)環境でデプロイしたアプリをインターネットからアクセスする方法をご紹介いたします。今回はROKS上にデプロイしたhtmlを自分のドメインから誰でも閲覧できるようにしてみました。
本手順では
Step1ドメイン名登録(ドメイン名が持ってない方)
Step2 CISセットアップ
Step3 ROKSのroute設定変更
の流れで実行します
環境・前提
この説明ではServiceの作成、routeの作成の手順は省略されていますので、追加しないのであれば前提条件にserviceとrouteがあることも追記する必要があると思います。
必要なものは以下です
-
IBM CloudとOpenShift利用可能
-
ROKS環境で正常にrunningしているpodある
-
IBM CLIとOC CLIある
Step1 ドメイン名登録
▲ドメイン名の登録が課金されますので、ご注意ください
CISセットアップする時に、ドメイン名を持つ必要がありますので、先にドメインを作成しておいてください。
IBM CloudのDomain Name Registrationで簡単にドメイン名を登録できますので、今回はそれを例をとして、ご紹介いたします。(こちらのリンクからも登録の手順を参照できますhttps://cloud.ibm.com/docs/infrastructure/dns/use-domain-reg-screen.html)
まず、写真の通りに、お好きな方法でDomain Name Registrationの画面を開いてください。
▲Domain Name Registrationを見つけられない、操作できない場合があったら、今使っているアカウントの権限をチェックしてみてください。
「Register」をクリックして、「Domain Name」に好きなドメイン名を入力して、continueをクリックします。(ここで課金されますので、ご注意ください)
##Step2 CISセットアップ
次は、CISをセットアップします。
IBM Cloudカタログに、Internet Servicesを入力して、CISの画面を開いてください。
ここからオーダーします。
CISは結構なお金がかかりますので、操作を練習したい方には無料プランをおすすめです。
下の写真通りに、ドメインのセットアップの手順に従って、手続きを進めます。
最後の「ドメイン管理」のところで、「new NS records」があります。この「new NS records」をコピーして、今使っているDNS プロバイダーで自分のドメインのDNS設定のNSレコードを更新してください。
本手順では、IBM Cloud Domain Name Registrationでドメインを登録しましたので、前のstep1の「Domains」設定画面で新しいNSレコードで変更します。
変更を保存したら、CISに戻って、ドメインの状態は「pending」から「active」になったら、完了です。
次に、DNSレコードを追加します。CNAMEで名前解決をできて、www.sample.comからROKSにアクセスすることが実現できます。
左側のメニューの「信頼性」→「DNS」をクリックしてください。画面をスクロールして、一番下のところに新しいDNSレコードを設定します。
タイプはCNAME、値はROKSのLoad Balancerのホストです。
TIPS:
ROKSのLoad Balancerのホスト名を確認するcommand:
$ ibmcloud oc nlb-dns ls -c <cluster name>
ここまで問題がなければ、CISの設定が完了です
##Step3 ROKSのroute設定変更
最後にROKSのLoad BalancerからPodにアクセスする方法をご説明いたします。
ここで、routeの役割はserviceを参照しながら、www.sample.comへのリクエストがどのPodに送ればいいのかを判断します。
以下の手順は全部CLIで操作するので、先にCLIでIBM CloudとOpenShiftにログインしておいてください。
$ oc get route -n <project name> //今のホスト名を確認
$ oc get route <pod name> -o yaml -n <project name> //YAMLファイルを確認
$ oc edit route <pod name> -n <project name> // YAMLファイルを編集
下の写真通りにYAMLファイルのホスト名をwww.sample.comに変更してください
最後に、ブラウザからアクセスしてみて、問題なく表示されば、すべての設定が完成です。
以上で、自分のドメインにCIS経由でROKSのアプリにアクセスできるようになりました。
##参考資料
https://cloud.ibm.com/docs/infrastructure/cis/getting-started.html
A huge THANK YOU to 舛谷さん & 山本さん。いろいろ教えてありがとうございます