2021/07/24TweetPocket[DigitalOcean]KubernetesでWordPressを動かしてwikiブログを始めました!個人で運用しているk8s(wiki)なのだが、そろそろバージョンアップしないとヤバそう...それにボリュームマウントしているからCircleCIでソースコードコピーしてデプロイメントみたいな運用にしたいところ。開発環境から作って実装してみるかな。20212年前構築したwiki.adachin.meはDigitalOceanのKubernetesで運用しており、v1.15から特に何もせずにバージョンアップを放置していました。ちなみにその2年前はECS/Fargateの勉強をしていたこともあり、なかなか時間が取れなかった...!(言い訳するんじゃないよ!)そして本日Kubernetesの最新バージョンはなんとv1.21にも上がっていたんですね。今回初めてv1.15からv1.21にバージョンアップを行なったので手順等ブログしたいと思います。DatabasesでMySQL8が対応したということもありまして移行し、MySQLコンテナを廃止しました。※旧構成に関してはこちら。WordPressコンテナはボリュームマウントしています。今後はコンテナにソースコードをコピーしてデプロイできるように変更したいところだね....まずはMinikubeで開発環境を作るところかな。Liteプラグインを利用して、Spaces(AWSのS3的な)で格納しています。foundまずはv1.15のマイナーバージョンアップから試してみると、速攻で失敗しました。ここは本来であればメンテモードにするべきだな...この場合は以下のようにdescribeでpodsのエラーを確認してみると「secretがないよ」と怒られています。自分の記憶だとMySQLコンテナを廃止したときにmanifestファイルも消してしまったので、以下のように一旦secretは削除してapplyをし直します。Technologiesこれでマイナーバージョンアップをすることができました。次はv1.17になりますが基本的にはローリングアップデートをしながら徐々にバージョンを上げていきます。v0.21にはできませんね。v1.17.16-do.0https://docs.digitalocean.com/products/kubernetes/resources/clusterlint-errors/#dobs-pod-ownermanifests/wordpress-deployment.yamlhttps://kubernetes.io/ja/docs/concepts/workloads/controllers/statefulset/v1.17からvolumesの書き方が変わったそうです。manifestファイルを変更しなければなりません。ついでにWordPressコンテナイメージのPHPバージョンを7.3から7.4に変更しました。新たに指定する必要があります。ここらへん少し変わってるな....これでdeleteとapplyをし直せばバージョンアップ可能になりました。k8sバージョンアップに伴いmanifestsファイルの書き方だいたいわかってきた。基本DOのドキュメント読んで書き直すだけだ。2021v1.18からv1.21までは特にエラーも起きず、すんなり最新にバージョンアップすることができました。あとDOはTerraformですべて管理されているので、差分を修正して完了となります。監視で利用しているMackerelコンテナも落ちてたので復旧済み。Cloudはtfstateファイルの管理以外全く触ってなかったのでSlack通知やってみた。2021初めてKubernetesのバージョンアップ対応をしましたが、これがみんなツライとよく口にしていたことなのかと感じましたし、私の場合はWordPressなので特に難しい処理もしていないので、逆に楽だなと思いました。これがRailsやLaravelで運用となると相当manifestファイルも膨大ですし、メンテツラそうというのが予想できる....とりあえず3時間ほどでバージョンアップと知見も高まったのでよかった...!次は開発環境作ってみたいと思います!お疲れ様でした...!そしてTwitterでリプ頂いた@RyoMa_0923さんフォローあざました!!yamlのapiVersionだかを見てみると良いかもです。ROBOTICS/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWS/Azureでのインフラ構築、Docker開発環境の提供、Kubernetes保守、インフラコード化、新技術の検証、リファクタリング、セキュリティ強化、エンジニア採用広報などを担当している。個人開発では「夫婦、パートナー向け家事管理サービス/famii」をCakePHPで開発中。副業では数社サーバー保守とベンチャー企業のインフラコンサルティングやMENTAで未経験者にインフラのコーチング/コミュニティの運用を実施している。「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。コメントデータの処理方法の詳細はこちらをご覧ください。Registry]独自のWordPressコンテナイメージに移行してみたようし。