Save 37% off PRO during our Black Friday Sale! »

自宅サーバーでbottlerocketを動かしてk8sクラスタを組む

Bcbc80799bc32840662a366768318a9b?s=47 KOBA789
January 21, 2021

 自宅サーバーでbottlerocketを動かしてk8sクラスタを組む

Kubernetes Meetup Tokyo #38 で発表したときの資料です。
https://k8sjp.connpass.com/event/200136

参考:
- Amazonのコンテナホスト用OS「Bottlerocket」をなんとかして自宅サーバーで使う: https://diary.hatenablog.jp/entry/2020/12/19/192558
- 改造した Bottlerocket のコードがあるリポジトリ: https://github.com/koba789/bottlerocket

Bcbc80799bc32840662a366768318a9b?s=128

KOBA789

January 21, 2021
Tweet

Transcript

  1. KOBA789 ࣗ୐αʔόʔͰ bottlerocket Λ
 ಈ͔ͯ͠ k8s ΫϥελΛ૊Ή

  2. https://twitter.com/superbrothers/status/1347431085429329920 ؾܰʹਃ͠ࠐΈ·ͨ͠

  3. KOBA789 • ύιίϯΦλΫ • ߴଔʢஜ೾େֶதୀʣ • DBMS ͱ෼ࢄγεςϜ͕޷͖ • ࣗ୐αʔόʔ੎

    • ࢓ࣄͰ͸Ұ੾ kube ͯ͠ͳ͍ Ͱɺ୭ʁ
  4. KOBA789 ࣗ୐αʔόʔͰ bottlerocket Λ
 ಈ͔ͯ͠ k8s ΫϥελΛ૊Ή ΋͏Ұ౓λΠτϧ

  5. Bottlerocket ίϯςφϗετ༻ Linux σΟετϦϏϡʔγϣϯ • AWS ੡ • ίϯςφϗετಛԽ •

    TUF ४ڌͰݎ࿚ͳΞοϓσʔτγεςϜ • ࠷খߏ੒ Amazon Linux + Rust ੡Ϣʔβʔϥϯυ • ެࣜͷίʔυπϦʔͰ͸ EC2 Ͱ͔͠ಈ͔ͳ͍
  6. ࣗ୐αʔόʔͰಈ͔͍ͨ͠ • EKSͰಈ͔͢ͷ͸؆୯ • eksctl ͰҰܸʢΒ͍͠ʣ • ࣗ୐αʔόʔʢϕΞϝλϧʣͰ͸ OS ͷىಈ͢Βେม

    • ֨ಆه: https://diary.hatenablog.jp/entry/2020/12/19/192558 • ࠓ೔͸ kubelet Λಈ͔͢ͱ͜Ζͷ࿩
  7. ಥવͰ͕͢͜͜Ͱ Demo

  8. Bottlerocket ͷίϯϑΟάγεςϜ ઃఆϑΝΠϧ͸ςϯϓϨʔτͱύϥϝλ͔Βੜ੒ https://github.com/bottlerocket-os/bottlerocket/blob/develop/sources/api/api-system.png consul-template Έ͍ͨͳײ͡

  9. Bottlerocket ͷίϯϑΟάγεςϜ ͍͔ͭ͘ͷσʔλιʔε • storewolf • OS Πϝʔδʹম͖ࠐ·ΕͯΔσϑΥϧτ஋ • early-boot-con

    f i g • EC2 Πϯελϯεͷ user-data ͷ஋
  10. Bottlerocket ͷίϯϑΟάγεςϜ ͍͔ͭ͘ͷσʔλιʔε • storewolf • OS Πϝʔδʹম͖ࠐ·ΕͯΔσϑΥϧτ஋ • early-boot-con

    f i g • EC2 Πϯελϯεͷ user-data ͷ஋ ࣗ୐αʔόʔͰ࢖͑ΔΘ͚ͳ͍
  11. ํ਑: 
 ࣗ୐༻ઃఆΛ OS Πϝʔδʹ 
 ϋʔυίʔυ

  12. ϋʔυίʔυ͢Δ΋ͷ ҙ֎ͱগͳ͍ • Ϋϥελ PKI ͷϧʔτূ໌ॻ ca.crt • clusterDNS •

    clusterDomain ౰વɺϊʔυ͝ͱͷઃఆ͸Ͱ͖ͳ͍
  13. Q. kubelet ͷΫϥΠΞϯτূ໌ॻ͸ 
 Ͳ͏͢Δͷʁ A. TLS Bootstrap ͢Ε͹͑͑

  14. ͱ͍͏Θ͚Ͱ Demo

  15. ϋϚΓϙΠϯτ • volumePluginDir ͕ҧͬͯͯ Calico ্͕͕ͬͯ͜ͳ͍ • bottlerocket Ͱ͸ kubelet

    σϑΥϧτͷ /usr/libexec ҎԼ͸ read-only • Calico ͷϚχϑΣετΛॻ͖׵͑·͠ΐ͏
  16. ·ͱΊ • kubeadm ͕࢖͑ͳ͍؀ڥ͸ษڧʹͳΔ • Πϯετʔϥࣗ࡞͍ͨ͠ͳΒ
 ·ͣ͸ kubeadm ͰΫϥελ૊ΜͰ؍࡯͢Δͱ͍͍ •

    ΋ͪΖΜίʔυ΋ಡΉͱ͍͍ • bootstrap token ͷड͚౉͕͠खΦϖͳͷ͸ͳΜͱ͔͍ͨ͠ • ࣗ୐ͷ LAN ͷ҆શੑΛͲ͜·Ͱ৴པ͢Δ͔