Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon EKS Starter Kit

y-ohgi
July 09, 2018

Amazon EKS Starter Kit

社内LT会資料

y-ohgi

July 09, 2018
Tweet

More Decks by y-ohgi

Other Decks in Technology

Transcript

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

    ◦ マサカリをお待ちしております • container歴 1年半ぐらい ◦ まえのお仕事はAWSでECSなど ◦ いまのお仕事はGCPでGKEなど • アニメ/Podcast/Node.js/Ruby/AWS
  2. コンテナオーケストレーションとは • コンテナ ◦ 使い捨ての仮想環境 ◦ ポータビリティが高い • コンテナオーケストレーションツール ◦

    人間がコンテナを使ってサービスの運用するのはつらい ▪ オートスケール/セルフヒーリング /サービスディスカバリ ... ◦ 人間の代わりにコンテナをいい感じに運用してくれるためのツール
  3. Cluster VM VM VM • 主に2つの要素から構成される • Control Plane ◦

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

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

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

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

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

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

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

    に Generally Available • AWSのマネージドKubernetes ◦ Masterがフルマネージド ◦ ただし 0.2/h でお高め • ECS同様EKSもFargateの対応予定あり
  11. 入っているスクリプト • 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>
  12. 入っているコマンド • kubectl ◦ Kubernetes操作用コマンド • helm ◦ パッケージマネージャ •

    stern ◦ コンテナ ログ閲覧専用コマンド • kubectx ◦ contextの切り替えコマンド ▪ context: クラスターのログイン情報のこと contextと呼ぶ • kubens ◦ namespaceの切り替えコマンド ▪ namespace: クラスター内の名前空間。 1クラスター内で開発環境と本番環境を構築するときに用いる • kube_ps1 ◦ 現在のcontextをプロンプトへ表示させるスクリプト
  13. 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/