Bootcamp/AWS

[AWS] eks 사용

K_Hyul 2024. 2. 5. 12:07
728x90
# 1. 제어하기 위한 ec2 인스턴스 생성 
 - t2.small , storage -> 20G 

 - 인스턴스 로그인 

# 2. aws cli 설치 
sudo apt-get install -y unzip
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version 


# 3. aws configure
AWS Access Key ID [None]: 액세스키
AWS Secret Access Key [None]: 비밀_액세스키
Default region name [None]: ap-northeast-2
Default output format [None]: <Enter>

# 확인하기 
aws sts get-caller-identity

## eksctl tool install 
- EKS설치/운영 툴인  eksctl 설치
- https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/eksctl.html
```bash
# for ARM systems, set ARCH to: `arm64`, `armv6` or `armv7`

# 아래부터 입력
ARCH=amd64
PLATFORM=$(uname -s)_$ARCH
curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz"


# (Optional) Verify checksum
curl -sL "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_checksums.txt" | grep $PLATFORM | sha256sum --check
tar -xzf eksctl_$PLATFORM.tar.gz -C /tmp && rm eksctl_$PLATFORM.tar.gz
sudo mv /tmp/eksctl /usr/local/bin
```


# kubectl install
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.27.7/2023-11-14/bin/linux/amd64/kubectl
chmod +x ./kubectl
mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$HOME/bin:$PATH
echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc
kubectl version --short --client


# eks의 k8s 설치 
eksctl create cluster \
    --name k8s-내이름 \
    --region ap-northeast-2 \
    --with-oidc \
    --ssh-access \
    --ssh-public-key key이름 \
    --nodes 3 \
    --node-type t3.medium \
    --node-volume-size=20 \
    --managed


# CloudFormation 이동 




# 권한 
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:*",
	    "eks:*"
            ],
            "Resource": "*"
        }
    ]
}


# kubectl 자동완성 사용하기 
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc


# list
kubectl get pods --all-namespaces

 

 

kubectl create  deployment webtest --image=nginx:1.14 --port=80  --replicas=1

deployment.apps/webtest created

kubectl get pods --all-namespaces

NAMESPACE     NAME                       READY   STATUS    RESTARTS   AGE
default       webtest-64bdd6f5dd-w5wkd   1/1     Running   0          40s
kube-system   aws-node-5vmhq             2/2     Running   0          48m
kube-system   aws-node-jgcg8             2/2     Running   0          48m
kube-system   aws-node-nskwk             2/2     Running   0          48m
kube-system   coredns-6b46bd4fd9-hhd9z   1/1     Running   0          53m
kube-system   coredns-6b46bd4fd9-rp9ql   1/1     Running   0          53m
kube-system   kube-proxy-8ft7m           1/1     Running   0          48m
kube-system   kube-proxy-jjqg6           1/1     Running   0          48m
kube-system   kube-proxy-pshtk           1/1     Running   0          48m


kubectl get pods -o wide
NAME                       READY   STATUS    RESTARTS   AGE   IP              NODE
          NOMINATED NODE   READINESS GATES
webtest-64bdd6f5dd-w5wkd   1/1     Running   0          63s   192.168.89.60   ip-192-168-73-108.ap-northeast-2.compute.internal   <none>           <none>
728x90