LINEで送る
Pocket

前回はTerraformでk8sのclusterとnodeを作りましたが、今回は実際にk8sで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の設定が危うい。
というのを今週直します!


直した!

LINEで送る
Pocket


adachin

1989年生まれのSRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、AnsibleやTerraformでのインフラコード化を推進。未経験によるエンジニアのメンターなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。現在はサービスの信頼性向上、可用性、レイテンシ、パフォーマンス、モニタリング、緊急対応、インフラコード化、リファクタリング、セキュリティ強化、新技術の検証、Docker開発環境の提供、AWSでのインフラ構築、Wordpressによるコーポレートサイトの修正、メンター、分析基盤の運用を担当している。

0件のコメント

コメントを残す

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