前回はTerraformでKubernetesのclusterとnodeを作りましたが、今回は実際にKubernetesでWordPressを構築チャレンジしてみました。現在は ADACHIN SERVER WIKI (以下画像)備忘録用のブログが動作しています。設定等気になると思いますのでブログします。

https://wiki.adachin.me


■構成

MySQLコンテナとApache,php-fpmコンテナの二台で動いており、その上にLBをかましてるだけというシンプルな構成となっております。

  • Manifestsファイル

secretsファイルから順番に説明していきましょう。


■wordpress

  • secrets/secrets.yaml

ここではパスワードやSSHの秘密鍵などの機密情報を扱うためのリソースで、MySQLのrootパスをBase64でエンコード指定してます。(上記は仮パス)

  • manifests/mysql-volume-claim.yaml

MySQLコンテナ内でそのままDB作ると再起動時にお亡くなりになるので、Volumeを作成しています。(永続化)

  • manifests/mysql-replicaset.yaml

ReplicaSetsは実行中のPodの数が指定した数を維持して、Podが予期せずに終了した場合でも自動的に再生成され、nodeに配置されるようになります。そのための設定ですが、今回はレプリカ1のMySQL5.7で、先程のsecretsを指定してます。

  • manifests/mysql-service.yaml

Pod、Nodeの存在を抽象化し、Podとの通信に単一のエンドポイントを提供するようにServiceを作っています。なのでIPが急に変わって突然Podと通信できなくなるとかはなりません。

  • manifests/wordpress-datavolume-claim.yaml

wordpressコンテナも同様にVolumeを作ります。

  • manifests/wordpress-deployment.yaml

WordPressコンテナも同様にReplicaSetsを作って管理しましょう。

  • manifests/DO-loadbalancer.yaml

https://www.digitalocean.com/docs/kubernetes/how-to/configure-load-balancers/

LBはDOの公式を参考にして作ればOK!では実際に動かしてみますか!!以下でテンプレートをリポジトリ化しているので参考に。


■RVIRUS0817/kubernetes-wordpress

https://github.com/RVIRUS0817/kubernetes-wordpress

まず準備!

  • install command

  • download config.yaml

MySQL Setup

  • add root pass

  • deploy

  • make db

  • check out k8s

WordPress Setup

Load Balancer Setup

  • certificate check(letsencypt)

  • add certificate-ids

  • deploy

  • LBのIPからアクセスする!


■まとめ

httpsがうまくいかなくて 503 になってしまう!!LBの設定が危うい。
というのを今週直します!


直した!


adachin

1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください