Kubernetes/version upgrade
EBS CSI Driver 설치 방법
babbeolicoding
2023. 5. 28. 16:49
1. IAM 역할 생성
1. 해당 EKS의 정보확인
aws eks describe-cluster \
--name {cluster_name} \
--query "cluster.identity.oidc.issuer" \
--output text
output 값
= > https://oidc.eks.{region}.amazonaws.com/id/{key}
2. json 파일 생성
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::{ID}:oidc-provider/oidc.eks.{region}.amazonaws.com/id/{key}"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"oidc.eks.{region}.amazonaws.com/id/{key}:aud": "sts.amazonaws.com",
"oidc.eks.{region}.amazonaws.com/id/{key}:sub": "system:serviceaccount:kube-system:ebs-csi-controller-sa"
}
}
}
]
}
3. IAM 역할 생성
aws iam create-role \
--role-name {EBS_CSI_DRIVER_ROLE_NAME} \
--assume-role-policy-document file://"aws-ebs-csi-driver-trust-policy.json"
2. IAM 정책 연결
role에 policy 연결
aws iam attach-role-policy \
--policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \
--role-name {EBS_CSI_DRIVER_ROLE_NAME}
3-1. EBS CSI Driver 설치(Addon 사용)
aws eks create-addon --cluster-name {cluster_name} --addon-name aws-ebs-csi-driver \
--service-account-role-arn arn:aws:iam::{계정ID}:role/{EBS_CSI_Driver_ROLE_NAME}
3-2. EBS CSI Driver 설치(Helm 사용)
$ helm repo add aws-ebs-csi-driver https://kubernetes-sigs.github.io/aws-ebs-csi-driver
$ helm repo update
$ helm upgrade --install aws-ebs-csi-driver \
--namespace kube-system \
aws-ebs-csi-driver/aws-ebs-csi-driver
4. EBS CSI Driver 버전 확인
aws eks describe-addon --cluster-name {cluster_name} --addon-name aws-ebs-csi-driver --query "addon.addonVersion" --output text
추가사항
- EBS CSI Driver가 정상적으로 작동하는지 확인할 수 있는 샘플 application이 있다
- 아래 스크립트를 실행하면 pv, pvc, pod가 생성되는데 3가지가 정상적으로 실행이 완료되면 정상적인 경우고
pv가 생성되지 않고 pod가 pending 상태로 남아있다면 EBS CSI Driver가 정상적이지 않은 상태다.
git clone https://github.com/kubernetes-sigs/aws-ebs-csi-driver.git
cd aws-ebs-csi-driver/examples/kubernetes/dynamic-provisioning/
kubectl apply -f manifests/
kubectl exec -it app -- cat /data/out.txt