인프라/시스템 구축

[ EKS ] 1.23 version upgrade

김붕어87 2023. 2. 9. 14:51
반응형

 

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 설치

  1. 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