Noteビジネスチャット「チャットワーク」のエンジニアとデザイナーのブログです。ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。本ブログは2020年1月23日に行われた、下記のコンテナ支部での発表を補足する内容で、eksctlの設定ファイルとvariantの具体的な使い方に焦点を当てて書きたいと思います。jawsug-container.connpass.comspeakerdeck.com目次eksctlの設定ファイルpreBootstrapCommandsについてvariantの具体的な使い方まとめ最後に(どうでもいいニュース)eksctlの設定ファイル発表資料では、主にeksctlをvariantでwrapして、運用している、という話をしましたが(さらにeksctlの設定ファイルのテンプレートからの生成もvariantで)、そもそもなんでそのような運用が必要なのか、というのを、eksctlの設定ファイルの構成から説明していきたいと思います。"ap-northeast-1b"eksctlとしてはなかなか複雑な設定ファイルだと思いますが、このような設定ファイルにしているのは下記の理由があります。1dも同じ内容で作成しますcluster-autoscalerを利用する際、1つのazにまとめてしまうと、cluster-autoscalerとしては、どのazを広げるべきなのか判断できないため、個別に作成する必要がありますその他、volumesizeなど、環境毎(prod,stg,test)に変えたいこれらの設定がありますが、クラスタ毎で変わるのはそれほどありません。nodegroupを作成しています。eksctlの設定ファイルのsampleは下記で確認できます。https://eksctl.iohttps://github.com/weaveworks/eksctl/tree/master/examplesまれに上記にない項目もありますが、その場合はソースを見るしかないです。groupを利用する場合、preBootstrapCommandsが利用できます。preBootstrapCommandsは、userdataとして実行されるもので、これによって、eksctl自体で対応できない設定も対応することが可能な場合があります。preBootstrapCommandsをuserdataとして登録するのは、ソースコードでは↓です。linux2はデフォルトでjqが入っているdockerのrestartを実行しています。具体的には、dockerのログローテーションの設定をしています。デフォルト(10Mが10file)でも問題ありませんが、本番環境だけ不安なので、大きめにしています(その分、nodeのvolumesizeも大きめに)。このdockerの設定は、下記で見つけて導入しました。他にも使えるものがあるので、いろいろと設定したい場合は、exampleを漁ってみてください。https://github.com/weaveworks/eksctl/blob/master/examples/05-advanced-nodegroups.yamlgithubのexampleにしかないものもあるし、eksctl.ioのドキュメントにしかないものがある場合があるため、両方見てみることをおすすめします。variantの具体的な使い方variantの詳細な機能を説明するわけではないですが、発表資料よりもう少し具体的なvariantの使い方を説明します。github.com上記のようなテンプレートからeksctlの設定ファイルを生成していますが、以外と値が多く、sedでやるとしてもなかなか骨が折れる内容ではあります。そこで、Chatworkではvariantの設定ファイルを作成し、それを環境毎に持ち、variant経由でコマンドを実行しています。eks-test.yamlこれらのファイルの中身は下記のような内容です。"6"そして、これをvariantの環境として実行すれば、eks-prod用のeksctl設定ファイルが生成されます。variantではファイル名がコマンド名になり、Chatworkではeksを管理するコマンドをachlisとしています。born環境毎の設定をファイルに持たせることができるので、コマンド自体は変わらず、再現性が高くなり、設定をgitで管理することができます。runで実行する)があるため、環境とコマンドがセットになります。あとはCIや人間が、achlisを実行すれば、どんどんEKSのclusterができていきます。!!上記のachlisはvariant1で作成しましたが、variant2に移行中です。github.comvariant2ではtestや、並列実行、ログ周りなどいろいろと改善されております。最後に(どうでもいいニュース)ランナーしての活動を報告しますと、2020年2月に行われた神奈川マラソン(ハーフマラソン)で、89分46秒で完走し、無事にハーフマラソンの自己ベストを更新しました。ハーフマラソン90分切りは1つの目標であり、今のトレーニングが順調に来ていることを確認できるいい機会でした。3月に行われる板橋シティマラソンで、どれぐらいいけるのか、非常に楽しみではありますが、同時に怖さもあります。関連記事2019-10-01variantdev/modとmergify.ioで始める依存パッケージの自動管理こんにちは!SREのid:cw-ozakiです。Chec...SRE部のcw-sakamotoです。ロードバランスさせる検証SRE部のcw-sakamotoです。Dev...2017-12-181年後のチャットワークのインフラの話こんにちは。(1)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。