목록DevOps & Infra (159)
오늘도 한 뼘 더

# 배경 AWS ECR에 이미지를 올릴 때 계속 구성에 들어가서 이미지 태그를 바꿨는데 이를 파라미터 값으로 받아서 자동화하고 싶다. # Parameter로 값 받기 String Parameter를 매개변수로 추가하여서 받을 수 있도록 한다. # Pipeline에 적용하기 파라미터 값을 적용할 때 파라미터 값이 들어갈 부분을 큰따옴표(")로 감싸주는 것이 포인트다! node { parameters { string(name: 'TAG', defaultValue: 'latest', description: 'tag') } stage('Build image') { app = docker.build(":${params.TAG}") sh 'docker image prune -f' } }

# 배경 VPC 설정을 하다가 갑자기 배포된 VPC의 모든 리소스에 대한 접근이 막힌 상황이 발생하였다. 원인과 해결방법을 모두 기록하자. # 원인 VPC에 대한 리소스를 외부에서 네트워크로 접근을 하고자 하면 이에 대한 설정이 필요하다. 인터넷 게이트웨이가 연결되어있지 않으면 VPC안의 리소스들이 배포가 되어도 접근이 되지 않는다. # 해결방법 AWS VPC > 라우팅 테이블 퍼블릭 라우팅 테이블을 선택하여 라우팅 편집을 클릭한다. 어디서든 허용을 한다는 "0.0.0.0/0"에 대하여 인터넷 게이트웨이를 선택하여 넣어준다. (연결하고자 하는 VPC 선택)

# 배경 $ curl -X GET {registry_url}/v2/_cataglog Docker Registry에 올라간 이미지를 삭제해야 하는데 이미지 조회가 되지 않고 301 에러가 발생 # 원인 및 해결 방법 Registry를 조회할 때 https로는 조회가 되지 않는 문제이다. url이 https로 리다이렉트 되는 설정을 해제하거나 로컬 주소에서 5000번 포트로 보는 방법이 있다. $ curl -X GET localhost:5000/v2/_catalog

# deployment.yaml 작성 deployment-test.yaml apiVersion: apps/v1 kind: Deployment metadata: name: deployment-test-service spec: replicas: 1 selector: matchLabels: app: test-service template: metadata: name: dev-test-service labels: app: test-service spec: containers: - name: test-service image: ${image-url} ports: - containerPort: 1000 env: - name: TZ value: Asia/Seoul replica : 몇 개를 올릴 것인지 설정 app ..

# AWS Load Balancer Controller 쿠버네티스 클러스터의 AWS Elastic Load Balancer를 관리한다. https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/aws-load-balancer-controller.html AWS Load Balancer Controller 추가 기능 설치 - Amazon EKS 배포된 차트는 보안 업데이트를 자동으로 수신하지 않습니다. 새 차트가 사용 가능해지면 수동으로 업그레이드해야 합니다. 업그레이드 시 이전 명령에서 install을 upgrade로 변경하되, 이전 명령 docs.aws.amazon.com # IAM 정책 생성하기 한국 리전 IAM 정책 다운로드하기 curl -o iam_poli..

# 환경 변수 추가 $ export DB_PASSWORD="123456" # 비밀번호 123456 선언 # 환경변수 삭제 $ unset DB_PASSWORD # 환경변수 확인 $ env # 전체 환경변수 $ env | grep # 원하는 조건으로 찾기 $ export # 선언된 전체 환경변수 확인

# 관리형 노드 그룹 이란? EKS의 관리형 노드 그룹은 사용자를 위해 EC2 인스턴스를 생성하고 관리해준다. https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/managed-node-groups.html 관리형 노드 그룹 - Amazon EKS 이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오. docs.aws.amazon.com # 관리형 노드 그룹 생성하기 $ eksctl create nodegroup \ --cluster ${cluster-name} \ --region ap-northeast-2 \ --name ${nodegroup-name..

# 배경 개발계와 운영계에 대한 Cluster를 분류하였다. 연결되어있는 설정이 두 개인데 이를 번갈아가면서 사용하고 싶다. # 다중 클러스터 접근 ## 클러스터 확인(전체) $ kubectl config get-contexts ## 현재 사용 중인 클러스터 확인 $ kubectl config current-context ## 클러스터 변경 $ kubectl config use-context ${context-name}

# eksctl EKS의 클러스터를 관리하는 CLI 툴이다. https://eksctl.io/ eksctl eksctl - The official CLI for Amazon EKS sponsored by and built by on New for 2022 eksctl now supports creating clusters and nodegroups on AWS Outposts. eksctl is a simple CLI tool for creating and managing clusters on EKS - Amazon's managed Kubernetes ser eksctl.io # eksctl 설치 $ choco install -y eksctl # eksctl 사용하여 Cluster 생성하기 $ eksc..

home의 .kube 폴더에 들어가면 config 파일이 생성되어있다. 해당 파일에 cluster에 대한 정보를 업데이트해야 로컬에서 kubectl 명령어로 cluster에 접근할 수 있다. # Cluster 설정하기 Cluster이름을 통해 config를 업데이트한다. $ aws eks --region ap-northeast-2 \ update-kubeconfig \ --name ${cluster name} Cluster에 pods를 조회하면 아무것도 없다 뜬다. 만든 게 없어 이렇게 뜨는 게 Cluster접근을 정상적으로 했다는 것을 의미