Slide 1

Slide 1 text

Amazon EKS Starter Kit 社内LT会資料

Slide 2

Slide 2 text

だれ ● 大木 裕介 ○ おおぎ ゆうすけ ● Kubernetes歴 1ヶ月 ○ マサカリをお待ちしております ● container歴 1年半ぐらい ○ まえのお仕事はAWSでECSなど ○ いまのお仕事はGCPでGKEなど ● アニメ/Podcast/Node.js/Ruby/AWS

Slide 3

Slide 3 text

はじめに

Slide 4

Slide 4 text

今日のはなすこと Amazon EKS GAしたし、、、

Slide 5

Slide 5 text

今日のはなすこと 「とりあえずEKS触ってみようぜ!」

Slide 6

Slide 6 text

はなすこと 1. つくったもの 2. Kubernetesってなんぞや 3. “yohgi/eks-cli” の中身 4. まとめ

Slide 7

Slide 7 text

はなすこと 1. つくったもの 2. Kubernetesってなんぞや 3. “yohgi/eks-cli” の中身 4. まとめ

Slide 8

Slide 8 text

とりあえずAmazon EKS触ってみようぜ!!

Slide 9

Slide 9 text

https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html 公式のGetting Startedをやってみる

Slide 10

Slide 10 text

1. IAMを作る

Slide 11

Slide 11 text

2. ネットワークの構築 (CloudFormationでVPC etcを一式作成)

Slide 12

Slide 12 text

3. EKSの作成

Slide 13

Slide 13 text

4. EC2の作成 (CloudFormationでEC2のインスタンスグループ作成 )

Slide 14

Slide 14 text

5. Kubernetesコマンドのインストール 1. Amazon Linux 2 をdockerで起動 2. kubectlをインストール 3. heptio-authenticator-aws をインストール

Slide 15

Slide 15 text

6. kubectlの認証を行う 1. kubectlコマンド認証用yaml↑の用意 2. ~/.kube/config へ配置

Slide 16

Slide 16 text

7. EKSに(4. )で作成したEC2を認識させる 1. EKSへEC2を認識させるためのyamlを用意 2. kubectlコマンドでEKSへ適用

Slide 17

Slide 17 text

8. 構築完了! 完

Slide 18

Slide 18 text

とりあえずAmazon EKSさわっt...

Slide 19

Slide 19 text

GKEってやつがあるらしい

Slide 20

Slide 20 text

GKEってやつがあるらしい $ gcloud container clusters create

Slide 21

Slide 21 text

GKEってやつがあるらしい 完

Slide 22

Slide 22 text

とりあえずAmazon EKSさわっt... とりあえずGKEさわっt...

Slide 23

Slide 23 text

GKE楽すぎか EKSでも楽をしたい!

Slide 24

Slide 24 text

つくりました $ docker run -it yohgi/eks-cli $ /opt/scripts/create-cluster.sh

Slide 25

Slide 25 text

つくりました $ docker run -it yohgi/eks-cli # /opt/scripts/create-cluster.sh 完

Slide 26

Slide 26 text

demo “yohgi/eks-cli” Dockerイメージを試してみる $ docker run -it yohgi/eks-cli # /opt/scripts/create-cluster.sh # kubectl cluster-info

Slide 27

Slide 27 text

はなすこと 1. つくったもの 2. Kubernetesってなんぞや 3. “yohgi/eks-cli” の中身 4. まとめ

Slide 28

Slide 28 text

Kubernetesとは コンテナオーケストレーションツール

Slide 29

Slide 29 text

コンテナオーケストレーションとは ● コンテナ ○ 使い捨ての仮想環境 ○ ポータビリティが高い ● コンテナオーケストレーションツール ○ 人間がコンテナを使ってサービスの運用するのはつらい ■ オートスケール/セルフヒーリング /サービスディスカバリ ... ○ 人間の代わりにコンテナをいい感じに運用してくれるためのツール

Slide 30

Slide 30 text

Kubernetesとは コンテナオーケストレーションツールのデファクト

Slide 31

Slide 31 text

Cluster VM VM VM ● 主に2つの要素から構成される ● Control Plane ○ コンテナを管理するコンポーネント ○ ユーザーはControl Planeへリクエストを送りコンテナ オーケストレーションツールを操作する ● Cluster ○ コンテナを配置するクラスタ ○ 複数の物理/仮想マシンを、 “1つの巨大なリソースプール ” として扱う ■ マシン単体では意識しない ■ ssh でログインしない ■ 不調なマシンは作り直す VM Control Plane Engineer Kubernetesの構成

Slide 32

Slide 32 text

Cluster VM VM VM Kubernetesの構成 VM Control Plane Engineer デプロイ! ユーザーに代わり コンテナの配置を行う ● 主に2つの要素から構成される ● Control Plane ○ コンテナを管理するコンポーネント ○ ユーザーはControl Planeへリクエストを送りコンテナ オーケストレーションツールを操作する ● Cluster ○ コンテナを配置するクラスタ ○ 複数の物理/仮想マシンを、 “1つの巨大なリソースプール ” として扱う ■ マシン単体では意識しない ■ ssh でログインしない ■ 不調なマシンは作り直す

Slide 33

Slide 33 text

Cluster VM VM VM Kubernetesの構成 VM Control Plane Engineer スケールアウト! ユーザーに代わり コンテナを増やす ● 主に2つの要素から構成される ● Control Plane ○ コンテナを管理するコンポーネント ○ ユーザーはControl Planeへリクエストを送りコンテナ オーケストレーションツールを操作する ● Cluster ○ コンテナを配置するクラスタ ○ 複数の物理/仮想マシンを、 “1つの巨大なリソースプール ” として扱う ■ マシン単体では意識しない ■ ssh でログインしない ■ 不調なマシンは作り直す

Slide 34

Slide 34 text

Cluster VM VM VM ● 主に2つの要素から構成される ● Control Plane ○ コンテナを管理するコンポーネント ○ ユーザーはControl Planeへリクエストを送りコンテナ オーケストレーションツールを操作する ● Cluster ○ コンテナを実際に配置するコンポーネント ○ 複数の物理/仮想マシンを、 “1つの巨大なリソースプール ” として扱う ■ マシン単体では意識しない ■ ssh でログインしない ■ 不調なマシンは作り直す Kubernetesの構成 VM Control Plane Engineer 障害時は同一コンテナが 再作成される コンテナに障害発生!

Slide 35

Slide 35 text

Cluster VM VM VM ● 主に2つの要素から構成される ● Control Plane ○ コンテナを管理するコンポーネント ○ ユーザーはControl Planeへリクエストを送りコンテナ オーケストレーションツールを操作する ● Cluster ○ コンテナを実際に配置するコンポーネント ○ 複数の物理/仮想マシンを、 “1つの巨大なリソースプール ” として扱う ■ マシン単体では意識しない ■ ssh でログインしない ■ 不調なマシンは作り直す Kubernetesの構成 VM Control Plane Engineer 同一のサービスだけでなく、 複数のサービスを協調して動かすことも可能

Slide 36

Slide 36 text

Cluster VM VM VM ● 主に2つの要素から構成される ● Control Plane ○ コンテナを管理するコンポーネント ○ ユーザーはControl Planeへリクエストを送りコンテナ オーケストレーションツールを操作する ● Cluster ○ コンテナを実際に配置するコンポーネント ○ 複数の物理/仮想マシンを、 “1つの巨大なリソースプール ” として扱う ■ マシン単体では意識しない ■ ssh でログインしない ■ 不調なマシンは作り直す Kubernetesの構成 VM Load Balancer Cluster内のコンテナと LoadBalancerを 紐づけて公開することも可能

Slide 37

Slide 37 text

Cluster VM VM VM ● 主に2つの要素から構成される ● Control Plane ○ コンテナを管理するコンポーネント ○ ユーザーはControl Planeへリクエストを送りコンテナ オーケストレーションツールを操作する ● Cluster ○ コンテナを実際に配置するコンポーネント ○ 複数の物理/仮想マシンを、 “1つの巨大なリソースプール ” として扱う ■ マシン単体では意識しない ■ ssh でログインしない ■ 不調なマシンは作り直す Kubernetesの構成 VM Load Balancer Cluster内のPod間の通信も可能

Slide 38

Slide 38 text

Amazon EKS (Elastic Container Service for Kubernetes) とは

Slide 39

Slide 39 text

Amazon EKS (Elastic Container Service for Kubernetes) とは ● 2018/6/5 に Generally Available ● AWSのマネージドKubernetes ○ Masterがフルマネージド ○ ただし 0.2/h でお高め ● ECS同様EKSもFargateの対応予定あり

Slide 40

Slide 40 text

はなすこと 1. つくったもの 2. Kubernetesってなんぞや 3. “yohgi/eks-cli” の中身 4. まとめ

Slide 41

Slide 41 text

入っているスクリプト ● EKSクラスターの作成 ○ $ /opt/scripts/create-cluster.sh ■ 約15分 ● EKSクラスターの削除 ○ $ /opt/scripts/delete-cluster.sh ■ 約10分 ● 既存のEKSクラスターの認証 ○ $ /opt/scripts/create-context.sh

Slide 42

Slide 42 text

入っているコマンド ● kubectl ○ Kubernetes操作用コマンド ● helm ○ パッケージマネージャ ● stern ○ コンテナ ログ閲覧専用コマンド ● kubectx ○ contextの切り替えコマンド ■ context: クラスターのログイン情報のこと contextと呼ぶ ● kubens ○ namespaceの切り替えコマンド ■ namespace: クラスター内の名前空間。 1クラスター内で開発環境と本番環境を構築するときに用いる ● kube_ps1 ○ 現在のcontextをプロンプトへ表示させるスクリプト

Slide 43

Slide 43 text

demo 時間が余ったら軽くEKS動かしてみる

Slide 44

Slide 44 text

はなすこと 1. つくったもの 2. Kubernetesってなんぞや 3. “yohgi/eks-cli” の中身 4. まとめ

Slide 45

Slide 45 text

Kubernetesを学習する際のおすすめ ● Docker Get started ○ DockerのコンセプトやDockerfileの書き方のから、Swarmを用いたオーケストレーションまで ○ https://docs.docker.com/get-started/ ■ 和訳: http://docs.docker.jp/get-started/toc.html ● Twelve-Factor App ○ Herokuが提唱するモダンなアプリケーションを構築するための方法論 ○ https://12factor.net/ ■ 和訳: https://12factor.net/ja/ ● Kubernetes Basics ○ Kubernetesのチュートリアルを実際にWeb上のコンソールからkubectlを触りながら行える ○ https://kubernetes.io/docs/tutorials/kubernetes-basics/

Slide 46

Slide 46 text

まとめ とりあえずAmazon EKS触ってみようぜ!!

Slide 47

Slide 47 text

まとめ ありがとうございました