반응형
EKS 1.23 정보
EKS 새로운 버전은 평균 3개월 마다 업데이트 됩니다.
각 버전은 릴리즈 되고 1년동안 지원을 됩니다.
지원 종료 60일 전부터 알람으로 알려줍니다.
(AWS Health Dashboard)지원 기간이 끝나면 그 이후에는 자동으로 버전이 올라갑니다.
(AWS에서는 보안을 가장 중요하게 생각하기 때문에 CVE 패치 릴리즈가 끝나면 강제로 버전을 올립니다.)
🛠️ EKS 1.22 버전은 2023년 05월까지 업그레이드 필요합니다.
EKS 1.23 공식 릴리즈 발표 :
https://kubernetes.io/blog/2021/12/07/kubernetes-1-23-release-announcement/
AWS EKS 1.23 정보 :
https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html#kubernetes-1.23
EKS 버전 정보
1.23 버전 중요사항
kubernetes 1.23 부터 EBS볼륨을 사용하는 드라이버가 변경되었습니다.
In-Tree(gp2) → EBS-CSI 드라이버로 변경이 필요합니다.
1.23 버전을 업그레이드하기 전에 EBS-CSI 드라이버를 설치가 필요합니다.
설치하지 않을 경우, 1.23으로 클러스터를 버전업그레이드 후 워크로드(POD)가 중단될 수 있습니다.
In-Tree, EBS-CSI 관련된 리소스 : StorageClass, PersistentVolume및 PersistentVolumeClaim
⚠️ EBS-CSI 드라이버를 사용하는 서비스 : airflow, dataflow, keycloak, cypress, redis, ESEBS-CSI 기능 : 메트릭 수집 기능이 좋아짐 끝.?
EBS-CSI FAQ : https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi-migration-faq.html
EBS-CSI : https://kubernetes.io/blog/2021/12/10/storage-in-tree-to-csi-migration-status-update/
EBS-CSI 드라이버 설치
EBS-CSI 설치 가이드 : https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html
Role 생성
1. 현재 EKS OIDC 정보 추출
aws eks describe-cluster \
--name my-cluster \
--query "cluster.identity.oidc.issuer" \
--output text
결과값 : https://oidc.eks.region-code.amazonaws.com/id/xxx
2. vi aws-ebs-csi-driver-trust-policy.json 파일 생성
vi aws-ebs-csi-driver-trust-policy.json # 파일 생성
정보 입력
Replace 111122223333 with your account ID,
region-code with your AWS Region,
and EXAMPLED539D4633E53DE1B71EXAMPLE
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com",
"oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:ebs-csi-controller-sa"
}
}
}
]
}
3. Create Role 생성
aws iam create-role \
--role-name AmazonEKS_EBS_CSI_DriverRole \
--assume-role-policy-document file://"aws-ebs-csi-driver-trust-policy.json"
4. attach-role 연결
aws iam attach-role-policy \
--policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \
--role-name AmazonEKS_EBS_CSI_DriverRole
EBS-CSI Add-on 설치
- EKS > EKS Cluster > 추가 기능 > 새로 추가 클릭
2. EBS-CSI 드라이버 추가
3. EBS-CSI 드라이버 설치 확인
- AWS CLI 명령어 확인
aws eks list-addons --cluster-name "EKS이름"
- AWS Console 확인
4. AWS-EBS-CSI StorageClass 배포
- StorageClass.yaml 파일 생성
vi storageclass.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ebs-sc
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: ebs.csi.aws.com
volumeBindingMode: WaitForFirstConsumer
- StorageClass.yaml 배포
kubectl apply -f storageclass.yaml
5. EBS-CSI Default 변경
kubectl edit storageclass ebs-sc
annotations:
storageclass.kubernetes.io/is-default-class: "true" # 내용 확인
kubectl edit storageclass gp2
annotations:
storageclass.kubernetes.io/is-default-class: "true" # 내용 삭제
default 내용 확인
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
ebs-sc (default) ebs.csi.aws.com Delete WaitForFirstConsumer false 14h
gp2 kubernetes.io/aws-ebs Delete WaitForFirstConsumer false 17d
6. pv, pvc 재배포
- StorageClass ebs-sc으로 변경될 수 있도록 재배포
> PVC 삭제 후 재배포해야지 StorageClass가 변경됩니다. - kubectl get pv, vpc -A
pv가 삭제되면 그동안 설정된 내용이 다 날라갑니다.
ex) keycloak에 설정된 내용들이 날라갑니다.
EBS-CSI 드라이버를 사용하는 서비스(POD) : airflow, dataflow, keycloak, cypress, redis, ES
gp2 → EBS-CSI 드라이버를 변경시 데이터 유실 발생
EKS 1.23 버전 업그레이드
- EKS > 버전 업그레이드할 EKS > “1.22 지금 업데이트” 클릭
- EKS 버전 확인
kubectl version --short
Client Version: v1.24.3
Server Version: v1.23.7-eks-4721010
반응형
'인프라 > 시스템 구축' 카테고리의 다른 글
[ EKS ] Aws LoadBalancer Controller (0) | 2023.03.31 |
---|---|
[ AWS ] VPN + TGW (0) | 2023.02.14 |
[ AWS ] NTH(Node Termination Handler) (0) | 2023.02.13 |
[ AWS ] TGW(Transit GateWay) (0) | 2023.02.13 |
EKS (0) | 2022.05.03 |