본문 바로가기

devops

(20)
쿠버네티스 관리형 서비스 비교 ( GKE vs EKS vs AKS) 쿠버네티스 관리형 서비스 비교 AKS(Azure) EKS(Amazon) GKE(Google) Kubernetes version 1.15, 1.16(Default) 1.17, 1.18(Preview) 1.14, 1.15, 1.16, 1.17(Default) 1.15(Stable), 1.16(Regular, default), 1.17(Rapid) SLA(Service-Level Agreement) $0.10 per hour: 99.9%(Single zone) 99.95%(with availability zones) 99.95% 99.5%(Zonal) 99.95%(Regional) Bare metal node support No Yes No Contral plane price Free(without SLA) ..
쉘스크립트(Shell Script) 기초 - Hello world 쉘 스크립트로 Hello World 출력해보기 #!/bin/sh echo 'Hello World' 소스코드 설명 #!/bin/sh 는 가장 먼저 작성해야 한다. 쉘 스크립트 기본적으로 #!/bin/sh로 시작해야 합니다. 그리고 개행은 가독성을 위해 줄 바꿈을 하는 것으로 쉘 스크립트에서는 큰 의미를 두지 않습니다. 쉘 스크립트는 개행은 기본적으로 무시하기 때문에 개행하지 않아도 정상 동작합니다. echo명령어는 문자열을 표준 출력으로 출력하는 명령어입니다. 쉘스크립트 실행방법 텍스트 에디터를 이용해서 작성한 스크립트를 파일로 저장합니다. 작성한 파일에 실행 권한을 부여합니다. 스크립트를 실행합니다. $ vi hello.sh $ chmod +x hello.sh $ ./hello.sh Hello World..
쿠버네티스를 터미널에서 유용하게 사용할 수 있는 툴 모음 쿠버네티스(Kubernetes)를 사용할 때 터미널을 사용하여 명령어를 사용하게 됩니다. 쿠버네티스에는 뛰어난 CLI인 kubectl이 있지만, 복잡한 작업을 할 때는 많은 명령어를 타이핑해야 하기 때문에 힘든 경우가 많습니다. 이를 극복하기 위해서 터미널을 이용할때 유용하게 환경을 세팅할 때 필수적으로 필요한 툴들을 소개하도록 하겠습니다. k9s https://github.com/derailed/k9s derailed/k9s 🐶 Kubernetes CLI To Manage Your Clusters In Style! - derailed/k9s github.com 정말 적극적으로 추쳔하고 싶은 툴입니다. 간단하게 키보드의 키를 눌러서 로그보기, 리소스 보기, 리소스 삭제 등이 가능합니다. 쿠버네티스를 사용..
도커 이미지 사이즈 줄이기 - Best Practices 공식 베이스 이미지를 사용하세요. 공식 이미지는 정기적으로 업데이트 되며 안전합니다. Alpine 리눅스를 베이스 이미지로 사용하여 최종이미지를 생성하세요. Apline 이미지는 가볍습니다. apt를 사용하는 경우에는 RUN apt-get update 와 apt-get install을 체인으로 결합하여 사용하세요 패키지는 한 명령어줄에 연결하여 사용하고 알파벳 순서대로 나열하여 레이어 수를 줄이고 Dockerfile을 깔끔하게 정리할 수 있습니다. RUN apt-get update && apt-get install -y \ package-one \ package-two && rm -rf /var/lib/apt/lists/* RUN 명령어 끝에 && rm -rf /var/lib/apt/lists/* 를 포..
도커 빌드 속도를 높히고, 도커 이미지 크기를 줄이는 방법 도커의 빌드 사이클 속도를 높이고 가벼운 도커 이미지를 만드는 방법을 알아보겠습니다.Dockerfile 명령어FROM : 부모 이미지를 지정LABEL : 메타 정보, Maintainer 정보 등을 지정, 자유롭게 사용가능함ENV : 환경변수 지정RUN : 컨테이너에 패키지를 설치하는 등의 명령어를 실행하고 이미지 레이어를 생성COPY : 파일과 디렉토리를 컨테이너에 복사ADD : 파일과 디레토리를 컨테이너에 복사하는 것은 COPY 와 동일하지만 tar파일은 자동으로 언팩함CMD : 실행 컨테이너의 대한 명령어나 인수를 전달함, CMD는 한개만 지정 가능WORKDIR : 작업 디렉토리를 지정함(디렉토리가 없으면 생성함)ARG : 도커 이미지를 빌드할때 Docker에 전달하는 변수를 정의함ENTRYPOINT..
쿠버네티스(kubernetes) 기초 쿠버네티스 (Kubernetes) 쿠버네티스는 어플리케이션을 배포, 관리, 확장(Scale)을 자동화해주는 소프트웨어입니다. 어플리케이션을 컨테이너 단위로 포장하여 동시에 수천 대의 서버에 걸쳐서 확장할 수 있도록 도와줍니다. 쿠버네티스 동장 방식 트래픽이 로드밸런서를 통해 쿠버네티스 내부 클러스터의 노드에 리다이렉션 합니다. 그런 다음 노드의 요청을 처리하고 응답을 다시 전달합니다. 쿠버네티스는 크게 다음과 순서대로 작성합니다. 어플리케이션 개발 어플리케이션 컨테이너화 쿠버네티스 클러스터 생성 컨테이너를 클러스터에 배포 클러스터를 노출(Expose)하고 확장(Scale) 쿠버네티스 실습 예제 1. 어플리케이션 개발 간단한 Node.js 어플리케이션을 작성해봅니다. 어플리케이션은 호스트명과 플랫폼을 문자..
도커 컨테이너 한꺼번에 삭제하는 명령어 모음(정지된 컨테이너만 삭제하는 명령어 포함) 정지된 상태의 모든 도커 컨테이너 삭제하는 방법 도커로 작업을 하면서 docker run 명령어를 사용을 반복하다 보면 정지되어 삭제되지 않은 컨테이너들이 쌓이기 시작합니다. 현재 동작 중인 컨테이너를 제외하고 정지된 컨테이너만 삭제하고 싶을 때는 아래 명령어를 사용하세요. docker rm $(docker ps -a -q -f status=exited) 설명을 추가하자면, status가 exited 된 도커 컨테이너의 ID 값만 출력(-q옵션)하여 삭제 (rm 명령어)하는 명령어 세트입니다. 그냥 모든 도커 컨테이너 삭제하는 방법 추가적으로 한꺼번에 모든 컨테이너를 삭제하는 방법은 아래와 같습니다. docker stop $(docker ps -a -q) docker rm $(docker ps -a -q..
도커 용량 확보하기(사용하지 않는 컨테이너와 이미지 한번에 삭제) 서버가 아닌 노트북(컴퓨터)에서 Docker Desktop 사용하다 보면 항상 용량 문제에 부딪힙니다. 가상으로 잡아놓은 용량이 잦은 빌드와 컨테이너 생성으로 인해 금방 차버리기 때문입니다. 이 문제를 한번에 해결해줄 명령어를 알려드릴게요. docker system prune -af 이 명령어로 현재 실행중인 컨테이너와 사용중인 이미지 이외에는 전부 삭제해줍니다. 단, 저장하지 않은 이미지도 전부 삭제되니까 주의해서 사용하시기 바랍니다.