Kubernetesに基づくEKS環境構成、Webサービス構築
6285 ワード
2021. 08. 02.
PROJECT
仮想クライアントシステムの構築と実行
SI
SM
EFKスタックを構築して
Slackに
Work
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
# eksctl delete cluster --region ap-northeast-2 --name=mission-cluster
Reference
この問題について(Kubernetesに基づくEKS環境構成、Webサービス構築), 我々は、より多くの情報をここで見つけました https://velog.io/@chchaeun/Kubernetes-기반-EKS-환경-구성-웹-서비스-구축テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol