coreOSを利用して自宅kubernetes環境をkubesprayで構築する(その3
前回からの続き。
さて実際に、おうちkubernetes環境で色々とDeployをしていくには、もう少し環境構築が必要。具体的にはDocker Private Registryを構築して自分のDockerイメージを保存する場所を用意する。
「実際の開発フローにおけるKubernetesの使い方」を参考に、ちょいちょい写経をするだけではNGな項目があったので、以下にまとめる。
構成
環境は以下の通り。
- 前回kubesprayで構築済みの環境。master, node, node 構成 => kubernetes環境 として利用
- おうちESXi6.0 上に構築してあるCentos7 => Docker Private Registry を構築
開発環境構築
docker-distributionの構築は写経状態。管理者権限で作業することはないので、sudoの有無が多少違うがほぼ写経。
|
|
設定ファイルを修正してDocker Private Registryが稼働するIPとポートを定義。
|
|
|
|
開発用のDockerイメージの作成
まずは手順通りにapacheとphpが入っている単純なDockerfileをダウンロードし、ダウンロードしたコンテナイメージにカスタマイズを加えていく。
|
|
このコンテナイメージにタグ付を行い、Private Docker Registryにアップロードする。ただし、構築したばかりのデフォルトのDocker設定ではTLS通信(暗号化通信)が必須となっているためTLS通信をアップロード前に無効化しておく必要がある。
クライアント端末はMac OSX Catalina、Docker Desktopを利用しているのでGUIの設定から変更する。
無事に起動されてきたら、いよいよPrivate Docker Registryにアップロード。
|
|
開発
開発時は先ほどアップロードしたPrivate Docker Registry のコンテナイメージをpull&pushしていくイメージとなる。
写経元を参考に以下のcomposeファイルを作成。
src/test.php に以下のファイルを作成。
_$_SERVER_はphpがデフォルトで用意している変数。この場合サーバのIPアドレスを返答する。
ローカル上で動作確認
|
|
動作確認がとれたらとソースコード(docker-compose.yml ,src/test.php)をアップする。githubでもなんでもいい。今回はCentos上にgitbucketを構築してあるのでそちらにアップ。
リリース
前回まででおうちkubernetes環境は構築済み。基本的なところはkubesprayが設定してくれているので、設定するところはノードがPrivate Docker Registryに接続する際のTLS不要設定のみのはず。
|
|
設定反映のためにプロセスを再読み込みしてもよいが、coreOSを再起動して読み込ませても良い。
本番用のDockerfileを構築する。Private Docker Registryからコンテナを読み込んだ上で、コンテナ上にソースコードを配置するという設定を記載。
記載後、この、ソースコードを配置したコンテナを新たに1つのコンテナとして、本番環境にリリースする。
|
|
kubernetes環境にデプロイするためのyamlファイルを作成する。リンク先の記載ではリリースできなかった。apiVersionの設定が変わっていた。
このファイルをmasterノードの任意のディレクトリにアップ(もしくはソースコードとしてpullしてきて)
|
|
でノードに展開される。あとは、この作業を繰り返し、コンテナに追加・変更がある場合はコンテナイメージを再ビルド。
ソースだけの変更の時はソースコードを修正してコミットする。
コンテナを再展開する時は
|
|
となる。