본문 바로가기

⭐ Kubernetes & EKS

(140)
pod 내부 접근 에러 : The repository 'http://security.debian.org/debian-security stretch/updates Release' does not have a Release file. # pod 내부로 접근하여 apt update 등 명령어 실행시 아래의 오류가 발생함 The repository 'http://security.debian.org/debian-security stretch/updates Release' does not have a Release file. - 해결방법 Commands: I used these bash commands to make the replacement: replace deb.debian.org with archive.debian.org: sudo sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list replace security.debian.org with archive.debian..
EKS 콘솔 수동 업데이트 해보기 # EKS 콘솔 수동 업데이트 - 수동으로 콘솔에서 업데이트를 진행해보자. 1. 1.24 → 1.25 업데이트 - 현재 상태는 EKS 버전 1.24이고 노드 그룹도 같은 1.24버전이다. - 업데이트 후 상태를 확인하자. - EKS 1.24 → 1.25는 문제없이 업데이트가 완료! - NodeGroup도 같이 업데이트 - 여기서 잠깐 노드그룹이 버전을 업데이트 과정을 살펴보면 아래와 같다. - 일단 기존 2개의 노드에서 신규로 2개의 노드를 추가로 만든 후 신규로 만든 노드 버전을 업데이트 한다. 그 후 신규노드에서 업데이트가 완료가 되면 기존 노드를 삭제하는 방식이다. - 노드그룹의 노드도 정상적으로 업데이트 되었다. 2. 1.25 → 1.26 으로 EKS 버전 업데이트 문제없이 없데이트 완료 - 노드..
EKS 1.24 이후 버전부터 ServiceAccount 수동 생성 # EKS 1.24 버전 이후부터 ServiceAccount 생성방법 변경 EKS 1.24가 되면서, SA(Service Account 이하 SA)의 생성 및 활용하는 방법이 변경되었다. 원래 Account만 생성되면 자동으로 Secret(token)도 함께 생성이 되었었는데, 변경이 되었다. 예제를 통해서 알아보자. 1. ServiceAccount를 생성한다. apiVersion: v1 kind: ServiceAccount metadata: name: jenkins-user-role namespace: jenkins 2. secret으로 type: service-account-token을 생성한다. apiVersion: v1 kind: Secret metadata: name: jenkins-secret..
AWS Load Balancer Controller installation v2.6 The AWS Load Balancer controller (LBC) provisions AWS Network Load Balancer (NLB) and Application Load Balancer (ALB) resources. The LBC watches for new service or ingress Kubernetes resources and configures AWS resources. The LBC is supported by AWS. Some clusters may be using the legacy "in-tree" functionality to provision AWS load balancers. The AWS Load Balancer Controller should be installe..
CoreDNS란? 그리고 역할은? # CoreDNS란 무엇인가? 1. 사족 네이버에서 검색해보니 책이 한권 있더라... 그만큼 내용이 방대하다? 라는 뜻이겠지... - 목차를 잠시 봤는데 음... 목차 내용들이 매우 심오하다. 간단하게 알고 넘어가쟈~ 2. CoreDNS란 무엇인가? - 나는 주로 클라우드 환경에서 그리고 EKS에서 CoreDNS와 접하는 경우가 많다. 뭐 특별히 CoreDNS와 작업을 하거나 그런건 아니고, (RBAC 처럼 Config 파일에 사용자 정보나 Role을 만들고 바인딩하는) 그냥 kubectl get pod -A 로 조회 했을때 항상 아래와 같이 조회가 되곤 해서 항상 궁금했다. kube-system coredns-556f6dffc4-784rd 1/1 Running 0 13d kube-system cored..
IRSA를 활용하여 Pod에 특정 사용자만 접근 하도록 설정하기 # IRSA (IAM Roles for Service Accounts)를 활용한 pod 접근 권한 관리 - IRSA는 pod에 특정 IAM Accounts를 매핑하여 특정 사용자만이 해당 pod에 접근이 가능하도록 구성하는 작업 이다. 설정은 간단하다 아래의 샘플을 보면 확인이 가능하다. - IAM Open ID Connect provider를 추가한다. eksctl utils associate-iam-oidc-provider --region=ap-northeast-2 --cluster={cluster_name} --approve - 결과 - ServiceAccount를 생성한다. (default 네임스페이스에만 접근가능) eksctl create iamserviceaccount --cluster={cl..
클러스터 접근을 위한 사용자 생성 및 특정 NameSpace에 접근하도록 설정하기 # 클러스터 User 생성 및 특정 NamaSpace에만 접근하도록 설정하기 1. 유저 확인 및 롤 확인하기 - 일단 기본 템플릿은 아래와 같다. apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: default name: pod-reader rules: - apiGroups: [""] # "" indicates the core API group resources: ["pods"] verbs: ["get", "watch", "list"] - 특정 user에 대한 접근 템플릿 apiVersion: rbac.authorization.k8s.io/v1 # This role binding allows "dave" to read sec..
RBAC 권한의 종류 # RBAC 권한의 종류 - RBAC 권한의 종류는 아래와 같다. - cluster-admin : system:masters group - admin : None - edit : None - view : None 위와 같이 총 4개의 권한을 부여 할 수 있다. 그리고 권한을 아래와 같이 만들수도 있다. (특정 네임스페이스에 대해서 적용 가능한 항목들이다. "*" 를 부여하면 전체 권한이 부여된다.) kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: dev-was namespace: dev-was rules: - apiGroups: ["", "extensions", "apps"] resources: ["deployments", "rep..