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

EKS 101

EKS 101

taxin

May 26, 2020
Tweet

More Decks by taxin

Other Decks in Programming

Transcript

  1. Today’s Talk • 話すこと • EKSとは? • クラスタの作成方法 • 作成したクラスタを利用した簡単な検証

    (Deploymentの作成) • EKSを使う上で気になる点 +α • 話さないこと • Kubernetesとは? • コンテナとは?
  2. What can we use for Practice? • kubeadm • Kind

    (Kubernetes in Docker) • Kubernetes Service ◦ AKS (Azure) ◦ EKS (AWS) ◦ GKE (GCP) 弊社のKubernetes Servicesが含まれてないぞ...! という方はTwitterでコメント下さい ;-)
  3. What can we use for Practice? • kubeadm • Kind

    (Kubernetes in Docker) • Managed Services ◦ AKS (Azure) ◦ EKS (AWS) ◦ GKE (GCP)
  4. AWSにおけるコンテナ環境 Control Plane / Data Plane を一種類ずつ組み合わせて環境を用意する Control Plane コンテナを管理する

    コンポーネントが稼働する場所 ECS EKS Data Plane ユーザーが作成した コンテナが稼働する場所 EC2 Fargate
  5. ビルディング・ブロック • AWSの一つ一つのサービスをブロックとして 複数のブロックを組み合わせて要件にあったシステムを作るという考え方 ◦ 基盤系サービス:EC2, RDS, S3 ◦ +

    アプリケーション関連サービス:CloudFront, SQS/SNS ◦ + 運用系サービス:Cloudwatch, Systems Manager, Codeシリーズ ◦ + ... • 各ブロックはAPIで連携するため柔軟なシステムの構築が可能
  6. What is EKS? • EKS = (ざっくり言うと) AWSマネージドのKubernetesサービス ◦ Control

    Planeとしての役割を担う • Data Plane ◦ EC2 or Fargateを選択する • 課金 ◦ 0.10 USD/h (EKS) + 0.0544USD/h (EC2 / t3.medium) + EBSの料金 etc. = (Worker Nodeの数が2のクラスタだと) 0.209USD/h +α
  7. Step0: Set up • kubectl ◦ kubernetesと通信する際に利用するコマンドラインツール ▪ homebrewを利用して設定 (mac)

    $ brew install kubectl $ kubectl version Client Version: version.Info{... ,GitVersion:”1.17.2”,...}
  8. Step0: Set up • AWS CLI ◦ AWSサービスの作成・設定をするためのコマンドラインツール ▪ (ver1)

    pip or インストーラーを利用して設定 $ pip3 install awscli --upgrade --user $ aws --version aws-cli/1.16.230 Python/3.7.6 Darwin ...
  9. Step2: Deploy nginx • Deploymentを作成する ◦ マニュフェストファイルはexampleとして提供されているものを利用 $ kubectl apply

    -f https://k8s.io/examples/controllers/nginx-deployment.yaml https://kubernetes.io/ja/docs/concepts/workloads/controllers/deployment/
  10. +α • 覚えることは多いように感じる (Kubernetes + AWS) ◦ (今すぐ) 覚えなくてもいいこと も結構ある

    ◦ Indexをはっておくだけでも十分 • 一旦は、自分のやってみたいことをやってみる ◦ 必要になったタイミングで、知識のインプット + クラスタでの検証 ◦ だからこそ、クラスタの簡単な作り方を知っておくのは大事!
  11. Kubernetes - Monitoring • Prometheus • Datadog • Cloudwatch Container

    Insights ◦ モニタリング用のコンポーネントのデプロイのみでセットアップ可能 (= AWSのサービスだけでモニタリングに対応できる ) ◦ Container Insightsのメトリクス取得は料金は発生する ▪ 料金試算のサイトもあるので不安な方は試算してみるのがおすすめ Amazon CloudWatch Pricing – Amazon Web Services (AWS)
  12. Kubernetes - Monitoring • Cloudwatch Container Insights ◦ 1) CloudWatch

    Agent / Fluentd のデプロイ ◦ 2) CloudWatchのダッシュボードでのメトリクスの確認 • ※ 事前にWorker Node用のIAM Roleに下記のポリシーをアタッチ ◦ CloudWatchAgentServerPolicy
  13. • セットアップ用のコマンドを実行 ◦ cluster-name / cluster-regionを置き換えてコマンドを実行 $ curl https://raw.githubusercontent.com/aws-samples/ .../quickstart/cwagent-fluentd-quickstart.yaml

    \ | sed "s/{{cluster_name}}/cluster-name/;s/{{region_name}}/cluster-region/" \ | kubectl apply -f - https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/Container-Insights-setup-EKS-quickstart.html Step1:Cloudwatch Agent/Fluentdのデプロイ