Slide 1

Slide 1 text

Bottlerocket さわってみた 2022/02/24 発表:すなだ AWS好きエンジニア LT vol.1 https://github.com/bottlerocket-os/bottlerocket

Slide 2

Slide 2 text

2 自己紹介 会 社 : 株式会社ビッグツリーテクノロジー&コンサルティング( BTC Corporation ) 所 属 : DX事業部(Agility CoE) 氏 名 : 砂田 文宏 <保有資格> • AWS Certified Solution Architect Professional • AWS Certified DevOps Engineer Professional • Kubernetes技術者認定 CKA(Certified Kubernetes Administrator) • Kubernetes技術者認定 CKAD(Certified Kubernetes Application Developer) • 認定スクラムマスター(Certified Scrum Master) • 認定プロダクトオーナー(Certified Scrum Product Owner) • 情報処理技術者試験:ソフトウェア開発技術者、情報セキュリティアドミニストレータ、他 <記事執筆> • Agile Japan 2016 公認レポーター(ManasLink ONLINE) • http://www.manaslink.com/articles/14786 <講演登壇> • DevLOVE現場甲子園2013(団チーム) • XP祭り2014LT、 XP祭り2021LT、他 趣味など • ゆるキャン🏕 • サイクリング🚴 2020 KONA ROVE DL BUNDOK ソロティピー1TC

Slide 3

Slide 3 text

What is Bottlerocket?

Slide 4

Slide 4 text

教えてGoogle先生! 呼んだ?

Slide 5

Slide 5 text

ちょっ、違っw

Slide 6

Slide 6 text

6 https://aws.amazon.com/jp/bottlerocket/ AWSが独自開発したコンテナ化されたワーク ロード(※EKS、ECSなど)を実行するために 特別に設計された、軽量で安全な Linuxベース のオープンソースOSです。 AMIとして提供されるので、コンテナを実行する ワーカーノード(ホストOS)として利用します。 AWSのサービスページはコチラです

Slide 7

Slide 7 text

7 https://aws.amazon.com/jp/bottlerocket/ Bottlerocketの利点(特徴) コンテナを効率的かつ安全に実行することができる軽量なホストOSで運用コストも削減できる(らしい)

Slide 8

Slide 8 text

8 https://aws.amazon.com/jp/bottlerocket/ 名だたるプロジェクトパートナー企業達 モニタリング & ロギングパートナー セキュリティパートナー 管理 & DevOps パートナー

Slide 9

Slide 9 text

2021 2020 2022 パブリックプレビュー発表 GA(一般提供開始) ※Amazon EKS (GA) および Amazon ECS(プレビュー) 3月 8月 6月 AMI for Amazon ECS(GA) https://aws.amazon.com/jp/blogs/news/bottlerocket-a-special-purpose-container-operating-system/ https://aws.amazon.com/jp/about-aws/whats-new/2020/08/announcing-general-availability-of-bottlerocket/ https://aws.amazon.com/jp/about-aws/whats-new/2021/06/the-bottlerocket-ami-for- amazon-ecs-is-now-generally-available/ 10月 Amazon EKS マネージド型ノードグループの ネイティブサポート開始 https://aws.amazon.com/jp/about-aws/whats-new/2021/10/amazon-eks- nodes-groups-bottlerocket/ https://aws.amazon.com/jp/blogs/news/bottlerocket-a-year-in-the-life/ これでEKSで使いやすくなったかな? Bottlerocketの最近のリリース状況はこんな感じです Bottlerocket プライベートプレビュー ↓ パブリックプレビュー ↓ 一般提供開始 (GA:General Availability) ※一般的なリリースの流れ

Slide 10

Slide 10 text

10 https://aws.amazon.com/jp/bottlerocket/ まだサービスページにはEKSのことしか書いてないですねw(Updが追い付いてない模様) よくある質問にはちゃんと書いてありましたw あれ?ECSは、、、

Slide 11

Slide 11 text

ということで今回は 昨年10月にリリースされた Amazon EKS マネージド型ノードグループの クラスタをBottlerocketを使って 構築してみたいと思います

Slide 12

Slide 12 text

apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: bottlerocket-demo2 region: us-west-1 version: '1.21' managedNodeGroups: - name: bottlerocket-demo-ng instanceType: m5.large amiFamily: Bottlerocket minSize: 1 maxSize: 4 desiredCapacity: 3 BottlerocketのEKSマネージド型ノードグループを eksctl でサクッとつくってみる! eksctl create nodegroup -f nodegroup_bottlerocket.yaml まずはローカル(Windowsターミナル)で、、、

Slide 13

Slide 13 text

eksctl create nodegroup -f nodegroup_bottlerocket.yaml https://github.com/weaveworks/eksctl/releases ちょっ!話が違うw マネージドノードグループはAL2しか サポートしてない、だと、、 あ、、、ふ、古っっ!!! これ化石?いつの eksctl なんやwww 最 新 版 は コ レ BottlerocketのEKSマネージド型ノードグループを eksctl でサクッとつくってみる!

Slide 14

Slide 14 text

choco upgrade -y eksctl eksctl version 0.83.0 なんか最新じゃないけど、まいっか、、、 BottlerocketのEKSマネージド型ノードグループを eksctl でサクッとつくってみる!

Slide 15

Slide 15 text

https://docs.aws.amazon.com/eks/latest/userguide/launch-node-bottlerocket.html あかんやん...(THT) eksctl create nodegroup -f nodegroup_bottlerocket.yaml eksctl version 0.84.0 なんか最新じゃないと、、、ダメらしい BottlerocketのEKSマネージド型ノードグループを eksctl でサクッとつくってみる!

Slide 16

Slide 16 text

(何故かWSL壊れとるし) ローカルめんどいから Cloud9でやろう

Slide 17

Slide 17 text

https://aws.amazon.com/jp/cloud9/ 結局Cloud9立てたらサクッと入った、、 eksctl version 0.84.0 BottlerocketのEKSマネージド型ノードグループを eksctl でサクッとつくってみる!

Slide 18

Slide 18 text

その他諸々の設定は Amazon EKS Workshop に助けてもらいました https://www.eksworkshop.com/

Slide 19

Slide 19 text

この辺のやつを 一通りやってね

Slide 20

Slide 20 text

eksctl create cluster –f bottlerocket.yaml やっと実行できたっぽい、、、 apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: bottlerocket-demo2 region: us-west-1 version: '1.21' managedNodeGroups: - name: bottlerocket-demo-ng instanceType: m5.large amiFamily: Bottlerocket minSize: 1 maxSize: 4 desiredCapacity: 3 BottlerocketのEKSマネージド型ノードグループを eksctl でサクッとつくってみる!

Slide 21

Slide 21 text

【松子と15分後】

Slide 22

Slide 22 text

EKSクラスタ作成に成功しました!! ちゃんとBottlerocket OS 1.6.0 (aws-k8s-1.21) になってます! BottlerocketのEKSマネージド型ノードグループを eksctl でサクッとつくってみる!

Slide 23

Slide 23 text

kubectl create namespace sock-shop kubectl apply -f microservices-demo/complete-demo.yaml デモアプリのPodも全て ちゃんと動きました! ← デモアプリで動作確認 BottlerocketのEKSマネージド型ノードグループを eksctl でサクッとつくってみる!

Slide 24

Slide 24 text

• 実はAWS公式マニュアルやGitHubにマネージド型ノードグループ の作り方が記載されてない(セルフマネージド型のみ) • セルフマネージド型の手順ですら英語と日本語で言ってることが違 うので注意(迷ったら最新の英語マニュアルを見ましょう) 英:https://docs.aws.amazon.com/eks/latest/userguide/create-managed-node-group.html 日:https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/launch-node-bottlerocket.html GH:https://github.com/bottlerocket-os/bottlerocket/blob/develop/sample-eksctl.yaml 今回やってみて思ったこと まー、あるあるではありますがw

Slide 25

Slide 25 text

【所感】

Slide 26

Slide 26 text

ぜんぜんサクッと作れんかったw (まぁ最初はそんなもんですよね) https://github.com/orinbou/bottlerocket-demo 今回試したことは手順も含めてGitHubに置いて あるので良かったらどうぞ(ご参考まで)

Slide 27

Slide 27 text

最後に Thank you AWS! ご清聴ありがとうございました!