본문 바로가기

전체 글

(148)
AWS CLI - Query 옵션 활용하기 Jenkins Pipeline에서와 같이 배포할 때, 특정 값을 가져와서 입력해야 하는 경우가 많다. 이럴때 CLI를 통해 가져온 후, 그 값을 바로 넣으면 편한데 --query라는 옵션을 통해 정말 원하는 조건에 해당하는 값을 가져올 수 있다. 아래의 문법을 따르기 때문에 직접 독스를 읽어보는것도 좋다. jmespath.org/ JMESPath — JMESPath Libraries in Multiple Languages Each JMESPath library passes a complete suite of compliance tests to ensure they work as intended. There are libraries in multiple languages including python, p..
EKS LoadBalancer - 4. Nginx Ingress (NLB) Helm을 통해 Nginx Ingress를 설치해보도록 하겠습니다. Helm3를 설치해주시고, nginx-ingress namespace를 만들어주세요 그리고 아래와 같이 values.yaml을 만들어주도록 하겠습니다. 여기서 중요하게 봐야하는 부분이 ingressClass입니다. Nginx Ingress를 하나만 두지 않고 여러개를 두어 통신하게 구성할 수 있는데, 이때 ingressClass로 어떤 nginx ingress에서 트래픽을 받을 것인지 정하기 때문입니다. 저는 일단 외부에서 퍼블릭하게 할 수 있도록 구성할 것인데 ext-nginx-ingress라 칭하겠습니다. 만약 저 처럼, 특정 Node에 배포하실게 아니라면 affinity는 빼주시면 됩니다. controller: ingressClas..
Ansible - 4. Sonarqube 설치하기 먼저 제가 설치한 방법에 대해서 전체 플로우를 설명해드리도록 하겠습니다. 소나큐브 7.2까지는 Java1.8로 가능하지만 이후에는 더 높은 자바버전이 필요합니다. 저는 Jenkins 서버등 Java1.8을 사용하고 있기 때문에 해당 버전을 사용하기로 하였으며, 따라서 variable.yaml에 해당 url을 적어놓고 다운받아 설치하였습니다. 소나큐브를 사용하기 위한 DB가 필요합니다. 하지만 많이 사용하지는 않기 때문에 로컬에 설치하여 구동하기로 했고, 따라서 mysql을 설치하는 코드도 같이 작성되어있습니다. mysql을 처음 세팅하게 되면 임시 패스워드가 로그에 저장되게 되는데, 이를 따로 명령어로 뽑아 ansible의 변수로 사용해보려 했으나, 잘 되지 않아 python으로 해당 패스워드를 파일로 ..
Ansible - 3. 서버 기본 세팅 & CICD 저는 아래와 같이 구성하여 EC2서버들에 대해 기본세팅을 구성합니다. 1. ansible.cfg [defaults] host_key_checking = False command_warnings = False 2. inventory.ini [node:vars] ansible_ssh_private_key_file=/var/lib/jenkins/key/abcd.pem ansible_user=ec2-user [node] 10.0.1.150 10.0.1.155 3. playbook.yaml 필요한 패키지가 더 있다면, 맨 아래의 telnet을 설치하는 부분에 이어서 작성하여 사용하시면 됩니다. --- - name: set up hosts: node become_user: root become: yes tasks:..
Ansible - 2. 구성요소 Ansible은 4가지 파일로 구성하여 사용한다고 볼 수 있습니다. (저는 그렇습니다..ㅎㅎ) 1. ansible.cfg config 파일 입니다. docs.ansible.com/ansible/latest/reference_appendices/config.html Ansible Configuration Settings — Ansible Documentation Default:[‘bud-frogs’, ‘bunny’, ‘cheese’, ‘daemon’, ‘default’, ‘dragon’, ‘elephant-in-snake’, ‘elephant’, ‘eyes’, ‘hellokitty’, ‘kitty’, ‘luke-koala’, ‘meow’, ‘milk’, ‘moofasa’, ‘moose’, ‘ren docs..
Ansible - 1. Intro Ansible이 무엇인지 알아보도록 하겠습니다. 워낙 정리가 잘 되어있는 글들이 많아서, 링크 먼저 달아놓도록 하겠습니다. blog.naver.com/alice_k106/221333208746 143. [Ansible] Ansible (앤서블) 개념, 사용 환경 구성, 기초 사용법 정리 이번 포스트에서는 Ansible(이하 앤서블)의 환경 구성, 기초 사용법에 대해서 다룬다. 1. 들어가기 전. 앤... blog.naver.com www.slideshare.net/ienvyou/ansible-132635149 [오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육 Ansible 소개, 구성요소, 설치, 환경 설정과 패키지/패스워드 관리에 대한 실습을 진행하는 교육 자료 공유합니다. 오픈스택 기반 환경..
EKS CICD Automation - 4. ArgoCD Blue/Green Deployment 공식 다큐는 아래와 같습니다. argoproj.github.io/argo-rollouts/features/bluegreen/ BlueGreen - Argo Rollouts - Kubernetes Progressive Delivery Controller BlueGreen Deployment Strategy A Blue Green Deployment allows users to reduce the amount of time multiple versions running at the same time. Overview In addition to managing ReplicaSets, the rollout controller will modify a Service resource during the BlueG ..
Kubernetes - Affinity & NodeSelector 사용하기 클러스터를 운영하다 보면 노드의 부하, Zombie Pod 이슈등 많은 이유로 인해 노드가 뻗을 수 있습니다. 이때, 뻗은 노드에 어떤 서비스들이 올라가 있는지 파악되지 않아 대처에 오토스케일링만을 기다리다가는 트러블 슈팅의 시간이 너무 오래걸릴 수 도 있으며, 리소스를 너무 많이 잡아먹거나 특별하게 따로 관리해야 하는 서비스인 경우 노드를 선택하여 파드를 띄울 필요성이 있습니다. 이러한 부분을 해결하기 위한 것이 NodeSelector와 Affinity입니다. NodeSelector는 차후 사용되지 않을 예정이기 때문에, Affinity를 사용하여 진행해 주셔야합니다. 쿠버네티스 Docs는 상당히 정리가 잘 되어있기 때문에, Docs링크를 먼저 공유드립니다. kubernetes.io/ko/docs/ta..