OpenShiftでMkDocsコンテナを動かし、クラスタ外部に公開する

OpenShift

はじめに

前回、MkDocsを動かすためのコンテナイメージを作成しました。今回はこのイメージを使い、OpenShift上でMkDocsのコンテナを動かしてみます。

事前準備

コンテナイメージの準備

今回はMkDocsのコンテナイメージを使って、OpenShift上にコンテナをデプロイします。イメージをビルドする際に使ったDockerfileなどについては、前回の記事を御覧ください。

MkDocsをDockerで気軽に動かす
はじめに近ごろ仕事で、コンテナをデプロイするデモを実施することが多くなってきました。それなりにグラフィカルな方がわかりやすいけど、構築が簡単な方が嬉しいなあと思っていました。そうして小一時間考えてみたのですが、MkDocsしか思い浮かば...(続く)

面倒なときのために、Docker Hubにイメージをアップロード済みなので、こちらをPullして使うこともできます。

Docker

OpenShiftクラスタの用意

OpenShiftは、Red Hatが提供するKubernetesディストリビューションです。宗教上の理由で、今回はKubernetesではなくOpenShiftを利用します。OpenShiftとKubernetesの違うところは、以前ふんわりまとめたので、興味があれば御覧ください。

Kubernetesと比較したOpenShiftの特徴
はじめに転職を機にOpenShiftばかり触っています。最近はだんだんと慣れてきたので、この辺でKubernetesとOpenShiftの違いについて、わかりやすそうにまとめてみます。わかりやすくするために、「違い」と言ってもあまり細か...(続く)
OpenShift ProjectとKubernetes Namespaceの違い
はじめに前回、KubernetesとOpenshiftをふんわり比較した記事を書きました。思ったより多くの方に読んでいただいたようです。ありがとうございます。この記事のリソースの違いという節で、OpenShift独自のリソースに...(続く)



みなさんは一家に一台、OpenShiftクラスタがありますか?ある場合は、それを使ってください!

もし(私のように)ない場合、Red Hat CodeReady Containers(CRC)を使うという手もあります。CRCでは、minikubeのような1ノードクラスタでOpenShift4の機能を触ってみることができます。利用方法は、以前まとめましたのでご参考。

Red Hat CodeReady Containersで、OpenShift 4をローカルでお手軽に試す
NishipyOpenShift 4 の簡易版であるCodeReady Containersを、自宅ラップトップに導入したときのメモです。はじめにOpenShiftRed Hat社が提供するコンテナオーケストレーションプ...(続く)

やってみる

では、実際にコンテナをデプロイしてみましょう。ここに書く手順は、例のごとくGitHubにまとめていていますので、御覧ください。

GitHub - nishipy/mkdocs-on-openshift: Tutorial to deploy MkDocs on OpenShift with Jenkins Pipeline.
Tutorial to deploy MkDocs on OpenShift with Jenkins Pipeline. - nishipy/mkdocs-on-openshift

今回はシンプルに、コマンドを1つずつ実行してデプロイしてみます。以下のようなコマンドを実行していきます。

各コマンドで、以下のような操作をしています。

  • プロジェクトの作成
  • コンテナイメージから、DeploymentConfigの作成
  • ClusterIPの作成
  • Routeの作成
  • Routeの確認

ここで、Kubernetesを使っていると目にしないリソースが出てきました。DeploymentConfigRouteです。この2つはOpenShift独自のリソースです。詳しい説明は別の機会に行う予定ですが、ここでも軽く説明します。

DeploymentConfigは、ここではDeploymentとだいたい同じだと思って差し支えないです1。一方、RouteはKubernetesにおけるIngressと同様の働きをするリソースで、主にHTTPやHTTPSでアクセスするPodを、クラスタ外部に公開する場合に使います。Routeを作成するとホスト名が払い出され、ユーザーはこれを介して、Podアクセスすることができます。Podへの通信は、OpenShift内部で動いているRouter(HAProxyのPod)によって負荷分散されます。

長くなりましたが、OpenShiftでは、Routeを作成することで、簡単にPodをクラスター外部に公開できます。今回の例ではoc get route mkdocsとしてホスト名を確認した後、ブラウザやcurlコマンドを利用すれば、以下のようにMkDocsのPodにアクセスできます。

コメント