1日1%成長する ~Amazon Elastic Container Service for Kubernetes (Amazon EKS)~

AWSの学習メモ

Amazon Elastic Container Service for Kubernetes (Amazon EKS)

Control plane
    - 永続ストレージ:etcd
    - マスターを選出する機構がある
    - apiserverがマスターとなったetcdにアクセスする
        - Kubernetesマスターにはapiserverに対してトラフィックを流すLoad balancerがある

EKS概要
    - 運用難易度の高いKubernetesをマネージドで
    - K8sの1.12、1.11、1.10
    - K8sパッチバージョ/どのK8sAPIサーバのフラグが有効かなど
    - SLA:99.9%
    - コンプライアンス
        - HIPAA-eligible
        - ISO 9001, 27001, 27017, 27018
        - PCI DSS Level 1
    - 開始
        - preparation
            - クライアントセットアップ
                - kubectlのインストール
                - aws-iam-authenticatorのインストール
            - AWS環境のセットアップ
                - EKSサービスロールの作成
                - EKS用のVPCを作成
        - Create EKS cluster
            - aws eks create-cluster --name ~
                - cli作成

        - Provision worker nodes
            - デプロイ用AWS CloudFormationテンプレートを提供
            - AmazonLinux2のEKS最適化AMIが存在する
        - Launch add-ons
        - Launch workloads

EKSアーキテクチャ
    - Customer VPC
        - EC2 Worker Nodes
        - ENI
    - EKS VPC
        - Network Load Balancer
        - EKS Control Plane

K8s APIサーバエンドポイントへのアクセス
    - WorkNode/kubectlとEKSにより提供されているK8sAPI
    - Endpoint Public Accessを無効化=インターネットアクセス無効
    - Private Accessを有効化
        - enableDnsHostnames
        - enableDnsSupport
設定:kubeconfig
    - aws eks --region xxx update-kubeconfig --name xxx

CNI(CNIプラグイン)
    - 複数のPodはVPC内に存在するようにPod内に同じVPCアドレスを持つ
    - シンプルでセキュアなネットワーク
    - GitHub上で公開されているオープンソース
    - amazon-vpc-cni-k8s

    このプラグインVPCにアドレスを要求して取得し、
    各Podに割り当てる