Devops50 Jenkins X v3 란 무엇인가? - 1 목차 들어가기 전에 GitOps란? Jenkins X란? jx-git-operator namespace jx namespace Lighthouse Secret이란? Secret-infra 마무리하며 Reference 들어가기 전에 GitOps에 대한 간단한 설명과 최근에 베타 버전이 릴리즈 된 Jenkins X version 3에 대한 구조 및 개념에 대해 알아보도록 하겠습니다. Minikube 환경에서 실습도 같이 진행하려고 준비해보았으나 베타 버전이라 그런지 참고자료가 많지않아 어려움을 겪고 있어 다음 편에서 실습 할 수 있는 환경을 구축해보도록 하겠습니다. GitOps란? GitOps란 Weaveworks라는 회사에서 처음 쓰기 시작하였고 Ci/CD 파이프라인 중 특별히 Delivery 초점을 가지.. Devops 2021. 2. 21. Minikube에서 Local Docker의 이미지가 안받아 질 때 발단 로컬에서 빌드한 Docker image를 Minikube 환경에서 Helm 차트를 이용하여 Kubernetes 파드를 생성하려고 하였으나 docker login을 하라는 오류와 함께 파드가 이미지를 Pull 받지 못하였습니다. 해결 아래 링크를 통해 해결하였으며 문제는 minikube start 시에 --driver docker 라는 옵션을 주어 스타트하는데 여기서 driver docker가 네임스페이스가 다른(?) 도커여서 내가 업로드한 이미지가 여기에는 존재하지 않았습니다. eval $(minikube docker-env) docker build -t my-image . imagePullPolicy 를 Never로 설정해줍니다. https://stackoverflow.com/questions/4.. Devops/Kubernetes 2021. 2. 18. 주니어 개발자의 Argo Workflow, Events 사용기 - 2 2021/01/09 - [study/Devops] - Argo Workflow 란 무엇인가? - 1 Argo Workflow 란 무엇인가? - 1 목차 들어가기 전에 Argo Workflow란 무엇인가? Kubernetes란 Installation minikube kubectl Argo Workflow 실습 hello-world Dag & Step 들어가기 전에 Python&Django 주니어 개발자인 글쓴이가 구축해본 인.. newbiecs.tistory.com 지난번 포스팅에서는 간단하게 Argo Workflow에 대해 알아보았습니다. Argo Workflow를 처음 접하시는 분들은 위 글을 참고해주시면 감사하겠습니다. 이 글에서는 직접 Argo Workflow를 구현하면서 사용했던 것들을 정리해보는.. Devops 2021. 2. 7. Argo Workflow 란 무엇인가? - 1 목차 들어가기 전에 Argo Workflow란 무엇인가? Kubernetes란 Installation minikube kubectl Argo Workflow 실습 hello-world Dag & Step 들어가기 전에 Python&Django 주니어 개발자인 글쓴이가 구축해본 인프라 경험이라곤 AWS 사용 경험과 CI를 구축해본 경험 밖에 없는 상태에서 회사에서 새로운 프로젝트를 맡으면서 인프라 서브를 담당하게 되었고, Docker의 깊은 이해도 없는 상태에서 Kubernetes, Helm, Argo Workflow를 사용해야 되는 상황이 닥쳤고, 오늘은 그 중에서 Argo Workflow와 minikube를 사용한 간단한 실습을 진행하고 Argo Workflow에 대해 알아보도록 하겠습니다. 본격적으로.. Devops 2021. 1. 9. [AWS STS] error: You must be logged in to the server (Unauthorized) 삽질일기 들어가기 전 사실 이 일은 처음 겪었던 것이 아니다. 전에도 겪었지만 어찌어찌(어떻게 해결된지모르게) 넘어간 케이스였다.. 그 때의 상황은 회사 프로젝트 EKS 만 사용하다가 외주 프로젝트 EKS 를 연결하여 사용해야되는 상황이였다. AWS profile 에 외주 프로젝트에 접근할 수 있는 키들을 입력해두었고, 외주 프로젝트 EKS 에 붙으려고하니 arn 관련 오류가 발생했었다. 그 때 확실하게 알고 넘어갔다면 오늘 이러한 실수를 반복하지 않았겠지.. 오늘 겪은 상황도 위와 케이스가 비슷하다 외주프로젝트를 연결하여 사용하다가 개인프로젝트를 AWS 에 등록하고나서 발생한 문제다. 에러가 뭔데? 1) An error occurred (AccessDenied) when calling the AssumeRole.. Devops 2020. 10. 21. Docker Ubuntu18.04 java (jdk, jre)설치 및 오류해결 안녕하세요. jdk 8버전을 설치하면서 아래와 같은 오류가 발생하여 해결하는 법과 설치법은 간단하게 포스팅하겠습니다. E: Unable to locate package openjdk-8-jdk Dockerfile RUN mkdir -p /usr/share/man/man1 RUN apt-get update && \ apt-get install -y --no-install-recommends default-jre default-jdk RUN java -version 감사합니다. Reference - https://github.com/phusion/baseimage-docker/issues/319 [16.04] debconf: delaying package configuration, since apt-util.. Devops 2020. 8. 13. Argo Workflow failed to save outputs: Failed to establish pod watch: unknown (get pods) Error failed to save outputs: Failed to establish pod watch: unknown (get pods) Error kubernetes 클러스터에서 argo namespace 에 대한 권한과 관련 된 문제입니다. argo 를 설치하였다면 argo serviceaccount 는 생성되어 있는 상태입니다. 하지만 권한이 부여 된 상태는 아닌거 같습니다. kubectl create rolebinding default-admin --clusterrole=admin --serviceaccount=argo:default -n argo 위 명령어로 serviceaccount argo 에 default-admin 권한을 부여할 수 있습니다. Reference - https://github.c.. Devops 2020. 7. 23. istio 정리 개념 2017년 5월에 Google, Lyft, IBM에서 내놓은 서비스 메쉬 솔루션입니다. Istio는 마이크로서비스 간 데이터 공유를 제어하는 기반을 제공하는 오픈소스 서비스 메쉬 플랫폼입니다. 여기에는 Istio를 모든 로깅 플랫폼, 텔레메트리 또는 정책 시스템으로 통합하도록 지원하는 API가 포함되빈다. Istio는 온프레미스, 클라우드 호스팅, 쿠버네티스 컨테이너, 가상 머신에서 실행되는 서비스 등 다양한 환경에서 구동되도록 설계되었습니다. 서비스 메쉬는 MSA 구조에서 각 서비스들간의 트래픽을 제어하는 역할을 합니다. 서비스 메쉬란 애플리케이션의 다양한 부분들이 서로 데이터를 공유하는 방식을 제어하는 방법입니다. 서비스 간 커뮤니케이션을 관리하는 다른 시스템들과 달리, 서비스 메쉬는 애플리케이.. Devops 2020. 6. 8. Kubernetes - Controller (DaemonSet, Job, CronJob) DeamonSet 노드들이 있고, 자원이 다르게 남아 있는 상태에서 ReplicaSet을 이용하여 팟을 생성하게 되면 노드들 중에서 자원이 여유로운 노드에 팟을 생성하게 됩니다. 자원이 별로 없다면 팟을 배치를 안할 수도 있습니다. 데몬셋은 자원 상태와 상관없이 모든 노드에 한 개의 팟을 생성하게 되어 있습니다. 자원이 부족한 노드에도 생성할 정도면 정말 필요한 기능을 가진 팟인가 봅니다. 데몬셋으로 생성하는 것들은 대표적으로 1. 성능 수집(Prometheus) 2. 로그 수집(Fluentd) 3. Storage(GlusterFS) selector와 template가 있어서 모든 노드에 템플릿으로 팟을 만들고, 셀렉터와 라벨로 데몬셋과 연결됩니다. nodeSelector로 특정 노드의 지정한 라벨에만 .. Devops/Kubernetes 2020. 5. 27. Kubernetes IBM - Sai Vennam '쿠버네티스란?' Kubernetes Master Cluster - API-Server Worker Node - kubelet - Container - Pod yaml kind: (Pod, Deployment, Service, ConfigMap, ReplicaSet) image: (Docker Hub, AWS ECR . . . PATH) labels: key: value ex) kind: Pod image: 2044smile/hello-node labels: a: f 사용자는 kubectl 명령을 이용하여 yaml(명세가 적힌 파일)을 생성하게 됩니다. kubectl -> API-Server -> Worker Node 안에 명세에 적힌 내용을 토대로 오브젝트를 생성합니다. nodeSelector를 이용하여 원하는 노드에 .. Devops/Kubernetes 2020. 5. 20. Kubernetes - Controller: Deployment Deployment 현재 한 서비스가 운영중이라고 가정하고, 기능 업데이트가 있어 배포를 해야할 때 도움을 주는 컨트롤러입니다. ReCreate v1 파드들을 삭제합니다. 서비스에 다운타임 발생 v2 파드들을 생성합니다. Rolling Update v2의 파드를 생성, v1의 한개의 파드를 삭제 반복 배포 중간에 추가적인 자원을 요구하지만 큰 장점은 다운타임이 없다는 것 입니다. Blue/Green ReplicaSet를 이용하여 새로운 컨트롤러를 만들어서 셀렉터로 연결 새로운 컨트롤러는 서비스에 연결하고, 기존의 컨트롤러를 제거 다운타임이 없습니다. 상당히 많이 사용하고, 단점은 자원이 더 필요하다는 것 입니다. Canary Canary라는 새에서 유래가 되었습니다. 실험체를 통해서 위험을 검증하고, 위.. Devops/Kubernetes 2020. 5. 20. Kubernetes - Controller: Auto Healing, Software Update, Auto Scaling, Job Auto Healing Node_1 안에 있는 Pod_1가 죽거나 Node_1이 죽게되는 경우 Controller가 모니터링하고 있다가 죽은 Pod_1을 정상작동하는 Node_2 안으로 옮겨준다. 정확히 말하면 리스타트되면서 정상작동하는 노드로 들어간다. ReplicationController(Deprecated) ReplicaSet Template Service와 Pod처럼 라벨과 셀렉터로 연결이 된다. 컨트롤러를 만들 때 Template으로 Pod를 명세합니다. Template를 Update하면 새로운 Pod가 생성되게 됩니다. Replicas replicas의 수 만큼 Pod가 생성됩니다. 개 수 만큼 Pod가 유지된다고 생각하면 됩니다. Selector ReplicationController의 S.. Devops/Kubernetes 2020. 5. 20. 이전 1 2 3 4 5 다음 💲 추천 글