Kubernetesに基づくEKS環境構成、Webサービス構築


2021. 08. 02.


PROJECT


仮想クライアントシステムの構築と実行

  • SI
  • AWSクラウド環境構成
  • クーバーネスのEKS環境構成に基づいて、Webサービス
  • を構築する.

  • SM
    EFKスタックを構築して
  • ログ
  • を収集
    Slackに
  • CloudWatch警報を送信ことにより、リアルタイムで
  • を監視する.

    Work

  • EKS環境構成
  • EKSクラスタとノードグループの作成
  • 1.17バージョンの
  • を生成
  • Nginxサービス導入
  • Nginx導入
  • Nginxサービス導入
  •  Nginxとは?


    Nginx
    Webサーバソフトウェア.負荷バランシングをサポートします.
    ふかへいこう
    1つのWebサービスにおけるクライアントがますます多くなる(通信量がますます大きくなる)と、複数のサーバが要求を処理することによって負荷問題を解決するサービス.サーバの負荷率、負荷、速度などの要因を考慮して、適切にサーバを分散処理しなければならない.
    Nginxサービスの導入:
    1. 配置 定義#テイギ# Nginx コンテナ 次の つりかご 飛ばす.
    2. Podを LoadBalancer タイプ サービス に合格 配置する.
    3. 自動 作成済み ELBを に合格 Nginx 配備済み もの で行ないます.

     EKS環境の構成


    1.yumを更新し、awscliバージョンが1.18であることを確認します.
    *yum:RPMベースのパッケージマネージャ.パケット操作を容易かつ安全に実行するためのツール(npmなど).
    # sudo su - ec2-user
    # sudo yum update		// yum update
    # aws --version			// aws-cli/1.18 확인
    2.IAMでEC 2に適したadminロールを作成します.[IAM>ロール>ロールの作成]

    3.[AWSサービス>EC 2]

    4.管理者アクセスを選択した後、タグをスキップします.

    5.名前はmissam-admin-Coleに設定します.

    6.インスタンスに移動し、以前に作成したNATインスタンスを選択し、右クリック>IAMロールの変更

    7.新しく作成したIAMロールをインスタンスに関連付けます.

    8.Basionをkubectlコマンドを実行するワークスペースとして使用します.BasionにKubectlをインストールします.
    # curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl
    // 1.8버전의 kubectl 다운로드
    
    # chmod +x ./kubectl
    //실행권한 추가
    
    # sudo mv ./kubectl /usr/local/bin/kubectl 
    //PATH가 설정된 디렉터리로 변경
    
    # kubectl version --client
    //설치 확인

     EKSクラスタの作成


    1.eksctlをインストールします.eksctlは、EKSクラスタを処理するためのコマンドラインツールです.
    # curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp 
    // eksctl 설치파일 다운로드
    
    # sudo mv /tmp/eksctl /usr/local/bin 
    // PATH가 설정된 디렉터리로 변경
    
    # eksctl version 
    //설치 확인
    2.NodeGroupのsshキーを生成します.EC 2ユーザーを使用する理由はsshのためです. 
    # aws configure set region ap-northeast-2 //region 설정
    # cd .ssh		//.ssh 폴더로 이동
    # ssh-keygen		//키 생성
    // 모두 enter
    3.生成された公開鍵を使用中のEC 2バージョンにアップロードする.
    # aws ec2 import-key-pair --key-name "workernode-key" --public-key-material fileb://~/.ssh/id_rsa.pub
    生成されたワークノード鍵は、EC 2鍵ペアで見つけることができる.

    4.eksctlコマンドを使用してeksクラスタとworkerNodeを生成します.
    # eksctl create cluster --name mission-cluster --version 1.17 --region ap-northeast-2 --nodegroup-name mission-wn --node-type t3.medium --nodes 1 --nodes-min 1 --nodes-max 1 --ssh-access --ssh-public-key workernode-key --managed
    コマンドラインが複雑なので、エラーに注意してください.誤って誤字クラスタが作成された場合は、EKSクラスタで誤って作成されたクラスタを検索し、eksctldeleteコマンドを使用して削除します.削除コマンドの場合、ローはロケーションの最後に保持されます.

    5.kubectl getノードによって生成されたノードを決定します.

     Nginxサービスの導入


    1.Nginx-Deploymentを生成します.
    # cat <<EOF > ~/nginx-deployment.yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-nginx
    spec:
      selector:
        matchLabels:
          run: my-nginx
      replicas: 2
      template:
        metadata:
          labels:
            run: my-nginx
        spec:
          containers:
          - name: my-nginx
            image: nginx
            ports:
            - containerPort: 80
    EOF
    *リリースノート
    割り当てる
    2.Nginxシードを配置します.
    # kubectl apply –f nginx-deployment.yaml	//배포
    # kubectl get pod 				//생성된 파드 확인
    パイド確認

    3.NginxサービスYAMLを生成します.typeはLoadBankです.
    # cat <<EOF > ~/nginx-service.yaml
    apiVersion: v1
    kind: Service
    metadata:
      name: my-nginx
      labels:
        run: my-nginx
    spec:
      ports:
      - port: 80
        protocol: TCP
      selector:
        run: my-nginx
      type: LoadBalancer
    EOF
    4.サービスを導入します.ロード・バランシング・タイプを使用して作成されるため、CLBタイプのELBが生成される.
    # kubectl apply –f nginx-service.yaml 	//배포
    # kubectl get service 			//배포된 서비스 확인
    5.アドレスウィンドウに[EC 2>ロードバランサ>DNS名.comコピー]を貼り付け、Web上でEXTERN-IP:80でNginx接続を検証します.

     クラスタとノードグループの削除


    作業環境では継続しますが、実習以外は有料ではありませんので削除します.
    1.Nginx-serviceとNginx-deploymentを削除します. 
    # kubectl delete –f nginx-service.yaml 	
    # kubectl delete –f nginx-deployment.yaml
  • [EC 2>ロードバランサ]CLBの削除を確認します.
  • 2.EKSクラスタとノードグループの削除
    # eksctl delete cluster --region ap-northeast-2 --name=mission-cluster
  • [EKS>Cluster]クラスタの削除を確認します.
  • [EC 2>Autoscaling Group]ノードグループの削除を確認します.