開発者ブログをkubernetes上にghostで設定するまで。

こんにちは yoshi です。 僕は全くインフラの知識がないのですが、Lesson Time が Docker や Kubernetes で動いているため、今回は開発者ブログを新しく新設するためにいじってみました。

備忘録として新しくアプリをKubernetes上でDocker Imageから運用するまでを記載してこの開発者ブログを公開してみました。

目次

・Kubernetes 上で新しい Podsを作成して、アプリを作る。
Dockerの公式サイトから ghostのDocker imageをインストールする。  

前提条件

・Google Cloud Platform(GCP)のclusterを作成している。
・Kubernetesにアクセスが可能。(kubectl proxyでhttp://localhost:8001/uiにアクセスできる)
・(Kitematicをインストールしている) =>gcloud, kubectlを使えるようにする方法はこちら

それでは早速やってみましょう!

1.Kubernetes 上で新しい Podsを作成して、アプリを作る。

まず Kubernetesでアプリを作成するために"DEPLOY APP"をクリックします。
Docker Imageのタグを確認して必要なタグ(バージョン)を記録しておきます。今回は最新のものを使いたいので、latestを使います。 画像のように App nameを決めた後、Container Image を ghost:latest, Serviceは Externalに設定します。

次にTarget Portを埋めるために KitematicでDocker ImageをpullしてDockerfileに記述されているDocker Portを確認します。 Setting > Ports に描かれている Docker Portは ghostの場合2368ですので、先ほどのTarget Portに2368を記述します。
このTarget Portは設定した後変更するのがとても大変なので、慎重に行ってください。 次のportはSSLの場合(https://˜) は443, SSLがない場合(http://˜) の場合は80を指定します。今回は後にSSLを使うことを考え両方設定します。 Description等記述したら Deploysしてください。すると次のように設定が反映され始めてるのがわかります。

もし何か問題が起きたら Replication Controllers > developer-blog > Events で logを見ましょう。
Podsの中に入るとIpアドレスを見ることができますので後はGCPのNetworkingでIPアドレスを登録して独自ドメインの設定をしましょう。

しばらくして設定が反映されるとブログを作ることができます。 (ghostの場合はhttp://example.com/adminで管理者画面を見ることができます。)

参考ページ

Docker Hub
Ghost
Google Cloud Platform
Kubernetes