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