あなたの最初のポッドをつくる基本とガイド


アマゾンEksは何ですか?


サービスをインストールして、insfrastructureを維持しなければならないことなく、AWSの上でKubernetesを走らせる管理されたサービスです.

References:


重要概念


2.1のEKS制御飛行機

  • は、Kaybernetesソフトウェア(例えばetcdとKubernetes APIサーバ)を動かす制御平面ノードから成ります.
  • 制御プレーンインフラストラクチャは、クラスタまたはAWSアカウント全体で共有されません
  • コントロールプレーンは、クライアントとノードがクラスタと通信できるようにパブリックエンドポイントを公開します.

  • References:


    2.2労働者ノードとノードグループ


    労働者ノードは、EC 5612です
  • アプリケーションのワークロードを実行する
  • ノードグループはEC 2オートスケーリンググループ
  • の一部として提供されているEC 2インダクタンスのグループです
  • はAPIサーバ終点
  • を経た制御飛行機につながります
    考慮
  • すべてのEC 2インスタンスは、同じタイプ242479182でなければなりません
  • は、同じAMI
  • を実行しています
  • は同じEKSワーカー・ノードIAM役割
  • を使います

    Reference: https://docs.aws.amazon.com/eks/latest/userguide/eks-compute.html


    2.3のVPC

  • コントロールプレーンコンポーネントは、Kubernetes RBAC方針
  • で認可されている以外は、他のクラスタまたは他のAWSアカウントからの通信を見ることができないか、または受け取ることができません
  • VPCSとサブネットは適切にタグ付けされなければならないので、Kubernetesはそれがリソースを展開するためにそれらを使うことができるということを知っています
  • アマゾンEKSは、あなたの口座
  • でネットワークインタフェースをつくって、管理します
  • ファルゲートポッドはプライベート5650だけに展開されます

    Reference: https://docs.aws.amazon.com/eks/latest/userguide/eks-networking.html


    2.4 Fargateプロフィール


    Fargateプロフィールは、管理者がどのポッドがFargate
  • で動くかを宣言するのを許します
    Fargateの上で実行している各々のpodは、他のリソースの分離されて、基礎のカーネル、CPUリソース、メモリーまたは弾性ネットワークインターフェースを他のpod と共有しない
    AWSはFargateに属するPODを認識し、オンファクトプロファイルをスケジュールするFargateコントローラを構築した

    Reference: https://docs.aws.amazon.com/eks/latest/userguide/fargate-profile.html


    eksクラスタの作成


    必要条件


    をインストールして設定する

    References:


    インストールeksctl

    Reference: https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html


    インストールkubectl

    Reference: https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html


    Eksctlによる3.1のCreate EKSクラスタ


    eksctl create cluster --name <my-cluster> \
                  --version <1.21> \
                  --region <region> \
                  -- zones <az1,az2...>\
                  --without-nodegroup
    
  • 我々のAWS口座でクラスターをチェックしてください
  • eksctl get cluster
    

    EKSクラスタのための3.2のCreateとAssociate IAM OIDCプロバイダー


    この機能を使用すると、あなたのOIDCアイデンティティプロバイダを介して既存のアイデンティティ管理のライフサイクルを活用することによって、クラスタへのユーザーアクセスを管理することができます.
    eksctl utils associate-iam-oidc-provider --region <region-code> \
                                             --cluster <cluter-name> \
                                             --approve
    

    3.3 AWSマネジメントコンソールでEC 2キーペアを作成する


    この手順では、AWS管理コンソールをWebブラウザで使用する必要があります

    NOTE: When we use eksctl to create an EKS cluster, automatically are created public and private subnets, NAT Gateways, Cluster service Role, security group and more resources required for our eks cluster are automatically created



    ノードグループの作成


    4.1パブリックサブネットに追加アドオンを持つノードグループを作成する


    eksctl create nodegroup --cluster <CLUSTER_NAME> \
                            --region <REGION> \
                            --name <NAME_NODE_GROUP> \
                            -node-type <TYPE_EC2_INSTANCE> \
                            --nodes <#_EC2_INSTANCES> \
                            --nodes-min <MIN_NODES> \
                            --nodes-max <MAX_NODES> \
                            --node-volume-size <GB>\
                            --ssh-access \
                            --ssh-public-key <PUB_KEY> \
                            --managed \
                            --asg-access \
                            --external-dns-access \
                            --full-ecr-access \
                            --appmesh-access \
                            --alb-ingress-access 
    

    4.2ノードをチェックする




    4.3 Kubectlを使用してEKSクラスタを管理した

  • チェックノード
  • kubectl get nodes
    
  • チェックサービス
  • kubectl get services
    

    最初のpodを作る

  • は、ポッド
  • をつくるために、.yamlマニフェストを書きます
  • はポッドを作成するために.yamlファイルを実行します
  • kubectl apply -f <manifest_name>.yaml
    
  • で我々のEKSクラスターのポッドをチェックしてください
  • kubectl get po
    
  • は、AWS管理コンソール
  • を経たノードに、podを表示する

    eksクラスタを削除する

  • ノードグループを削除する
  • eksctl delete nodegroup --cluster <clusterName> \
                            --name <nodegroupName>
    
  • EKSクラスタを削除する
  • eksctl delete cluster <clusterName>
    

    RESOURCES: https://github.com/stacksimplify/aws-eks-kubernetes-masterclass