Skip to content

Commit 1695a23

Browse files
committed
README Update
1 parent 579c5e8 commit 1695a23

1 file changed

Lines changed: 0 additions & 101 deletions

File tree

README.md

Lines changed: 0 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -64,109 +64,8 @@ EKS 운영 시 필수적으로 점검해야 할 항목들을 정리한 가이드
6464
- **보안 (Security)**: IAM 정책, 인증 및 권한 설정 등 보안 설정을 점검하여 클러스터가 안전하게 운영되고 있는지 확인합니다.
6565
- **안정성 (Reliability)**: 클러스터의 안정성을 위한 백업, 모니터링 및 로깅 설정이 제대로 되어 있는지 점검합니다.
6666

67-
## 필수 조건
68-
EKS-Checklist를 사용하기 전에 다음 항목들이 설치되고 올바르게 설정되어 있어야 합니다.
69-
1. **AWS CLI**: AWS CLI가 설치되어 있고 적절한 권한으로 설정되어 있어야 합니다. 설치 및 설정 방법은 [여기](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)를 참고하세요.
70-
2. **AWS EKS 클러스터 접근 권한**: EKS-Checklist는 AWS EKS 클러스터에 접근할 수 있는 권한을 필요로 합니다.
71-
7267
## 설치 방법
7368
EKS-Checklist는 GitHub의 릴리즈 페이지에서 원하는 버전을 다운로드하여 사용할 수 있습니다.
7469
### GitHub Releases에서 다운로드
7570
1. [GitHub Releases](https://github.com/fitcloud/eks-checklist/releases) 페이지로 이동합니다.
7671
2. 운영 체제에 맞는 바이너리를 다운로드합니다.
77-
78-
## 사용법
79-
### 실행 방법
80-
```bash
81-
{바이너리 파일명} {--flags}
82-
예: eks-checklist --help
83-
```
84-
- `--context` : 사용할 kubeconfig 컨텍스트 이름
85-
- `--kubeconfig` : 사용할 kubeconfig 파일 경로 (기본값: `"C:\\Users\\사용자이름\\.kube\\config"`)
86-
- `--filter` : 출력 결과 필터링 옵션 (`all`, `pass`, `fail`, `manual`)
87-
- `--output` : 출력 형식 지정 (`text`, `html`) — 기본값: `text`
88-
- `--profile` : 사용할 AWS CLI 프로파일 이름
89-
- `--sort` : 결과를 상태별(PASS / FAIL / MANUAL)로 정렬
90-
- `-h`, `--help` : 도움말 출력
91-
### macOS (Darwin)
92-
1. [Releases 페이지](https://github.com/fitcloud/eks-checklist/releases)에서 macOS용 바이너리를 다운로드
93-
예: `eks-checklist-darwin-amd64`
94-
2. 실행 권한 부여 및 설치:
95-
```bash
96-
chmod +x eks-checklist-darwin-amd64
97-
sudo mv eks-checklist-darwin-amd64 /usr/local/bin/eks-checklist
98-
```
99-
3. 실행 예시:
100-
```bash
101-
eks-checklist
102-
```
103-
### Linux
104-
1. [Releases 페이지](https://github.com/fitcloud/eks-checklist/releases)에서 Linux용 바이너리 다운로드
105-
예: `eks-checklist-linux-amd64`
106-
2. 실행 권한 부여 및 설치:
107-
```bash
108-
chmod +x eks-checklist-linux-amd64
109-
sudo mv eks-checklist-linux-amd64 /usr/local/bin/eks-checklist
110-
```
111-
3. 실행 예시:
112-
```bash
113-
eks-checklist
114-
```
115-
### Windows
116-
1. [Releases 페이지](https://github.com/fitcloud/eks-checklist/releases)에서 `.exe` 파일 다운로드
117-
예: `eks-checklist-windows-amd64.exe`
118-
2. 적절한 폴더에 저장 (예: `C:\\Program Files\\EKS-Checklist\\`)
119-
3. 명령 프롬프트 또는 PowerShell에서 실행:
120-
```bash
121-
eks-checklist.exe
122-
```
123-
### Docker
124-
**다음 세 디렉토리를 마운트하여 사용합니다**:
125-
- `~/.kube` : kubeconfig file 디렉터리
126-
- `~/.aws` : AWS credentials 디렉터리
127-
- `./output` : 옵션에 따른 레포트 결과물이 저장되는 디텍토리
128-
129-
1. EKS-Checklist Public Image로 docker 실행:
130-
```bash
131-
docker run -v ~/.kube:/root/.kube -v ~/.aws:/root/.aws -v ./output:/output public.ecr.aws/x5b3c7k0/eks-checklist:latest
132-
```
133-
실행 시 결과물이 바로 나타나며 종료됩니다 --detach 옵션 사용 시 docker logs 명령어를 사용해 결과물을 확인 할 수 있습니다.
134-
135-
### EKS Pod
136-
**조건**: EC2, VPC, EKS 등 AWS 리소스를 조회하기 때문에 IAM Role 권한이 필요합니다.
137-
여기서는 **eksctl을 활용해 IRSA(ServiceAccount)로 Pod에 IAM Role을 주입**하여 사용합니다.
138-
139-
**예) eksctl**: 기본 namespace(default)에 "eks-checklist-sa" 이름의 ServiceAccount를 만들고 권한을 부여합니다
140-
141-
1. IAM Policy 생성:
142-
```bash
143-
curl -sSL https://raw.githubusercontent.com/fitcloud/eks-checklist/refs/heads/main/policy/minimum-policy.json -o minimum-policy.json
144-
POLICY_ARN=$(aws iam create-policy --policy-name eks-checklist-access --policy-document file://minimum-policy.json --query 'Policy.Arn' --output text)
145-
echo $POLICY_ARN
146-
```
147-
2. IAM ServiceAccount 생성 (IRSA):
148-
--cluster의 값을 자신의 클러스터 명으로 수정합니다
149-
```bash
150-
eksctl create iamserviceaccount \
151-
--name eks-checklist-sa \
152-
--namespace default \
153-
--cluster eks-checklist \
154-
--attach-policy-arn $POLICY_ARN \
155-
--approve \
156-
--override-existing-serviceaccounts
157-
```
158-
3. HTML 보고서 추출 Job 배포:
159-
```bash
160-
kubectl apply -f https://raw.githubusercontent.com/fitcloud/eks-checklist/refs/heads/main/manifest/output-html-job.yaml
161-
```
162-
4. 결과물 가져오기:
163-
- Job Pod는 보고서를 Copy할 수 있도록 5분동안 정지되어 있습니다
164-
```bash
165-
POD_NAME=$(kubectl get pod -l job-name=eks-checklist-job -o jsonpath="{.items[0].metadata.name}")
166-
kubectl cp $POD_NAME:/output ./output
167-
```
168-
5. 정리 (리소스 삭제):
169-
```bash
170-
eksctl delete iamserviceaccount --cluster eks-checklist --name eks-checklist-sa
171-
kubectl delete -f https://raw.githubusercontent.com/fitcloud/eks-checklist/refs/heads/main/manifest/output-html-job.yaml
172-
```

0 commit comments

Comments
 (0)