전체 103

[AWS] EKS Service Account -> IAM role assume을 위한 configuration 파일 설정

EKS에 띄운 Pod 내에서 여러 role을 ~/.aws/config 파일에 설정하고 profile을 변경하며 작업을 하고 싶어 설정을 해봤습니다. 1. IAM role 생성   - role-service-account   - role-assumed (타 계정) 2. Trust Policy 설정      2-1. role-service-account : OIDC Provider Trust Policy 설정 추가           참고 : https://aws.amazon.com/ko/premiumsupport/knowledge-center/eks-pods-iam-role-service-accounts/      2-2. role-assumed : role-service-account role Trust ..

Cloud & DevOps/AWS 2023.01.03

[Gitlab] Private registry에 등록된 Docker image 사용 방법

Gitlab에서 Public이 아닌 Private registry에 등록된 docker image를 사용할 때가 있습니다. 이때 Gitlab CI/CD 변수 설정을 통해 image를 받아올 수 있습니다. 1. Docker registry 'username:password' Base64 인코딩 echo username:password | base64 2. Gitlab CI/CD 변수 설정 Gitlab repo -> Settings -> CI/CD -> Variable 추가 Key : DOCKER_AUTH_CONFIG Value : { "auths": { "Private Registry URL": { "auth": "(Base64 인코딩 값)" }, "Private Registry 2 URL": { "aut..

Cloud & DevOps/CICD 2023.01.03

[AWS] S3에 대한 권한은 어떻게 얻을까?

S3에 대해 접근 권한을 설정할 때 IAM, Bucket Policy 등 다양한 설정을 활용할 수 있습니다. 여러가지 제어 방법을 동시에 사용할 때 최종적으로 S3에 대한 권한은 어떻게 설정되는지 알아보겠습니다. S3 버킷 접근 권한 고려 요소 IAM IAM role, user, group 권한 Bucket Policy 특정 user, role, IP 접근 및 public access 설정 등 S3 Block Public Access Account 레벨 AWS Config (s3-account-level-public-access-blocks 등) Bucket 레벨 ACL (미권장) Bucket ACL Object ACL VPC Endpoint Policy S3 접근을 위해 VPC Endpoint를 사용하..

Cloud & DevOps/AWS 2022.10.26

Terraform 기타 명령어

terraform fmt terraform 파일 포멧을 컨벤션에 맞게 정제 tflint 오류 탐지 예) 존재하지 않는 EC2 타입 기재 탐지 deprecated syntax, 사용하지 않는 선언에 대한 경고 네이밍 컨벤션 강제 적용 각 CSP 별 ruleset 제공 terraform validate 문법적 유효성 및 내부적 일관성 확인 remote state는 참고하지 않음 참고) pre-commit commit 전 pre-commit을 활용하여 tf 파일을 정제할 수 있음

EKS Node의 최대 Pod 수

개요EKS Node에 배포 가능한 최대 pod 수는 ENI에 할당 가능한 IP 수와 EC2에 부착 가능한 최대 ENI 수에 따라 결정됩니다. 따라서 Node의 인스턴스 타입 별로 다른 최대 pod 수를 갖게 됩니다.참고로 pod 수 계산식의 +2 는 hostNetwork 모드로 실행되는 pod(VPC CNI, kube-proxy)가 반영된 부분입니다.Node에 배치된 pod 수에 모든 pod가 포함되므로, 추가적으로 hostNetwork를 사용하는 pod가 있다면, 조정하여 더 많은 pod를 배치할 수 있습니다. 참조. 인스턴스 타입 별 Max Pod 수하지만 VPC CNI add-on의 prefix 할당 모드를 사용하면서 더 많은 수의 pod를 Node에 배포할 수 있게 되었습니다. VPC CNI Pr..

Kubernetes 2022.08.01

Docker Machine deprecated에 따른 gitlab 오류 현상

[현상] 운영 중인 Gitlab 서버의 runner 세팅 과정에서 docker image 다운로드 시 에러가 발생했습니다. [해결방안] 해당 Gitlab runner에서는 Docker Machine을 사용하고 있었고, Docker에서 Docker Machine을 deprecate함에 따라 url 변경이 필요한 것으로 확인됐습니다. 아래와 같이 config.toml 파일에 아래 config를 추가하고 gitlab runner 컨테이너를 재기동 하는 것으로 해결했습니다. [runners.machine] ... MachineOptions = [ "engine-install-url=https://releases.rancher.com/install-docker/19.03.9.sh", ... ] 추후 Gitlab ..

Cloud & DevOps/CICD 2022.07.11

EFS 권장 옵션을 포함한 EKS 내 PV 생성

noresvport EFS에서의 noresvport 마운트 옵션은 네트워크 연결이 다시 설정될 때 NFS 클라이언트가 새로운 소스 포트를 사용하도록 합니다. 네트워크 복구 후에도 EFS 파일시스템을 중단 없이 사용하기 위해 적용하는 옵션입니다. 해당 옵션을 적용하여 TCP 재연결 시에 Linux NFS 클라이언트가 TCP 소스 포트를 재사용을 시도하는 것을 막아 지연 현상을 방지할 수 있습니다. pv에 적용하기 pv를 생성하는 yaml에 아래와 같이 mount option을 추가하여 noresvport 옵션을 적용할 수 있습니다. apiVersion: v1 kind: PersistentVolume metadata: name: pv-efs spec: capacity: storage: 5Gi volumeMo..

Kubernetes 2022.06.24

[Medium] FibFrog

[문제] 개구리가 피보나치 수 만큼 뛰어 강 반대편으로 넘어갈 때 최소 점프 수를 구하는 문제 (넘어가지 못한다면 -1을 반환) FibFrog coding task - Learn to Code - Codility Count the minimum number of jumps required for a frog to get to the other side of a river. app.codility.com [코드] 시간복잡도 : O(N*log(N)) 피보나치수를 구한 다음 특정 나뭇잎에 도달할 수 있는지 체크하고 마지막으로 강 건너편에 도달할 수 있는지 체크 (코드가 깔끔하지 않아 개선의 여지가 있음) def solution(A): # write your code in Python 3.6 fib = [0 f..

기타/Codility 2022.06.11
반응형