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

Amazon EKS Starter Kit

4365312f9f662ab058e50d1459165e5f?s=47 y-ohgi
July 09, 2018

Amazon EKS Starter Kit

社内LT会資料

4365312f9f662ab058e50d1459165e5f?s=128

y-ohgi

July 09, 2018
Tweet

Transcript

  1. Amazon EKS Starter Kit 社内LT会資料

  2. だれ • 大木 裕介 ◦ おおぎ ゆうすけ • Kubernetes歴 1ヶ月

    ◦ マサカリをお待ちしております • container歴 1年半ぐらい ◦ まえのお仕事はAWSでECSなど ◦ いまのお仕事はGCPでGKEなど • アニメ/Podcast/Node.js/Ruby/AWS
  3. はじめに

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

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

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

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

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

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

  10. 1. IAMを作る

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

  12. 3. EKSの作成

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

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

    heptio-authenticator-aws をインストール
  15. 6. kubectlの認証を行う 1. kubectlコマンド認証用yaml↑の用意 2. ~/.kube/config へ配置

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

  17. 8. 構築完了! 完

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

  19. GKEってやつがあるらしい

  20. GKEってやつがあるらしい $ gcloud container clusters create <CLUSTER NAME>

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

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

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

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

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

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

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

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

  29. コンテナオーケストレーションとは • コンテナ ◦ 使い捨ての仮想環境 ◦ ポータビリティが高い • コンテナオーケストレーションツール ◦

    人間がコンテナを使ってサービスの運用するのはつらい ▪ オートスケール/セルフヒーリング /サービスディスカバリ ... ◦ 人間の代わりにコンテナをいい感じに運用してくれるためのツール
  30. Kubernetesとは コンテナオーケストレーションツールのデファクト

  31. Cluster VM VM VM • 主に2つの要素から構成される • Control Plane ◦

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

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

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

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

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

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

    コンテナを管理するコンポーネント ◦ ユーザーはControl Planeへリクエストを送りコンテナ オーケストレーションツールを操作する • Cluster ◦ コンテナを実際に配置するコンポーネント ◦ 複数の物理/仮想マシンを、 “1つの巨大なリソースプール ” として扱う ▪ マシン単体では意識しない ▪ ssh でログインしない ▪ 不調なマシンは作り直す Kubernetesの構成 VM Load Balancer Cluster内のPod間の通信も可能
  38. Amazon EKS (Elastic Container Service for Kubernetes) とは

  39. Amazon EKS (Elastic Container Service for Kubernetes) とは • 2018/6/5

    に Generally Available • AWSのマネージドKubernetes ◦ Masterがフルマネージド ◦ ただし 0.2/h でお高め • ECS同様EKSもFargateの対応予定あり
  40. はなすこと 1. つくったもの 2. Kubernetesってなんぞや 3. “yohgi/eks-cli” の中身 4. まとめ

  41. 入っているスクリプト • EKSクラスターの作成 ◦ $ /opt/scripts/create-cluster.sh <CLUSTER_NAME> ▪ 約15分 •

    EKSクラスターの削除 ◦ $ /opt/scripts/delete-cluster.sh <CLUSTER_NAME> ▪ 約10分 • 既存のEKSクラスターの認証 ◦ $ /opt/scripts/create-context.sh <CLUSTER_NAME>
  42. 入っているコマンド • kubectl ◦ Kubernetes操作用コマンド • helm ◦ パッケージマネージャ •

    stern ◦ コンテナ ログ閲覧専用コマンド • kubectx ◦ contextの切り替えコマンド ▪ context: クラスターのログイン情報のこと contextと呼ぶ • kubens ◦ namespaceの切り替えコマンド ▪ namespace: クラスター内の名前空間。 1クラスター内で開発環境と本番環境を構築するときに用いる • kube_ps1 ◦ 現在のcontextをプロンプトへ表示させるスクリプト
  43. demo 時間が余ったら軽くEKS動かしてみる

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

  45. 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/
  46. まとめ とりあえずAmazon EKS触ってみようぜ!!

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