DevOps 14

쿠버네티스 객체의 종류 : deployment, service, configmap, secret, replicaset

Deployment (배포): 여러 개의 Pod를 생성하고 관리하는 객체, 애플리케이션의 스케일링과 롤링 업데이트들을 관리한다. 2. Service (서비스): 네트워크 경로를 Pod 집합에 노출시키는 추상화 객체로, 여러 Pod에 대한 로드 밸런싱과 서비스 디스커버리를 제공한다. yamlCopy code apiVersion: v1 kind: Service metadata: name: nginx-service spec: selector: app: nginx ports: - protocol: TCP port: 80 # 포트 설정 targetPort: 80 3. ConfigMap (구성 맵): 애플리케이션에 필요한 구성 데이터를 저장하는 객체로, 환경 변수, 설정 파일 등을 관리한다. YAML 파일에 키-값..

DevOps/Kubernetes 2023.07.14

파드(Pod)와 YAML 파일

Pod란? Pod: Kubernetes 모델의 기본 구성요소로, 배포 가능한 가장 작은 Kubernetes 객체다. 가장 작은 Kubernetes 객체는 컨테이너라고 생각하셨던 분들 말이죠. 하지만 그렇지 않다. .YAML 파일 Kubernetes Pod 객체를 생성하기 위한 YAML 구성 파일로 Pod: Kubernetes 생태계에서 가장 작고 가장 간단한 단위로, 클러스터에서 실행 중인 단일 프로세스 인스턴스다. apiVersion: v1 **kind: Pod** **# 고유한 객체 이름** **metadata**: **# Pod 속성 정의** **name:** nginx uid: 4dd474fn-f389-11f8-b38c-42010a8009z7 # 객체 고유식별자 할당 labels: app: ngi..

DevOps/Kubernetes 2023.07.14

docker ps, iconfig

docker ps 정지되지 않은 컨테이너만 출력 docker ps 명령어 출력 목록 CONTAKINER ID: 컨테이너에게 자동으로 할당되는 고유 ID IMAGE: 컨테이너를 생성할 때 사용된 이미지 COMMAND: 컨테이너가 시작될 때 실행될 명령어 CREATED: 컨테이너가 생성되고 난 뒤 흐른 시간 STATUS: 컨테이너의 상태. 컨테이너가 실행 중이면 ‘Up’, 종료된 상태이면 ‘Exit’, 일시 중지된 상태이면 ‘Pause’로 표시한다. PORTS: 컨테이너가 개방한 포트와 호스트에 연결한 포트를 나열한다 NAMES: 컨테이너의 고유한 이름. 컨테이너를 생성할 때 —name 옵션으로 이름을 설정하지 않으면 도커 엔진이 임의로 형용사와 명사를 무작위로 조합해서 이름을 설정한다. docker ren..

DevOps/Docker 2023.07.14

컨테이너 실행 단계, 도커 컨테이너와 도커 볼륨 생성하기, 도커 네트워크 이해하기

컨테이너 실행 단계 컨테이너 이미지 작성: 도커(Docker) 이미지가 가장 일반적으로 사용된다. 필요한 경우, Dockerfile을 작성해서 이미지를 빌드한다. 컨테이너 오케스트레이션 플랫폼(Kubernetes) 설정으로 컨테이너 자동 확장 및 배포 설정 Ex) GKE 컨테이너 클러스터 구성 컨테이너 배포: 이미지를 사용해서 애플리케이션 클러스터에 배포 모니터링: 컨테이너 실행되면 오케스트레이션 플랫폼으로 컨테이너 상태, 로그, 성능 등을 모니터리하고 관리한다. 도커 컨테이너와 도커 이미지 이미지: 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것이다. 여러 개의 계층으로 된 바이너리 파일로 존재하고, 컨테이너를 생성하고 실행할 때 읽기 전용으로 사용된다. 도커 이미지는 컨테이너를 실행하기 위..

DevOps/Docker 2023.07.14

도커 컨테이너 생성하기

다음 명령어를 순서대로 입력한다. # 설치된 도커 엔진 버전 확인 docker -v docker run -it ubuntu: # 도커 허브에서 이미지를 내려받는다 # 파일 시스템 확인 ls exit # 이미지 다운 확인 docker pull # 도커 엔진 이미지 목록 출력 docker images # 컨테이너 이름을 지정하여 생성 # docker -i -t: 컨테이너 내부로 진입하도록 attach 가능한 상태 및 표준 입출력이 활성화되어 상호작용이 가능한 셸 환경 설정 # docker -: Detached 모드(컨테이너를 백그라운드에서 동작)로 실행. 입출력이 없는 상태로 컨테이너를 실행 docker create -it --name # 컨테이너 시작 docker start # 컨테이너 내부로 들어감 do..

DevOps/Docker 2023.07.14

도커를 터미널에서 설치하기

1. 다음 명령어를 순서대로 입력한다. # root 사용자로 변경 sudo su - # 원격 Git 저장소를 로컬에 복제 git clone https://github.com/Kyeongrok/docker_minikube_kubectl_install cd docker_minikube_kubectl_install/ sh docker_install.sh cd git clone [https://github.com/](https://github.com/kny3037/spring-boot)[아이디]/[레포지토리] cd spring-boot # repository에 새로 추가된 패키지를 업데이트 apt update apt install maven # maven 패키지 설치 vim Dockerfile # vim: te..

DevOps/Docker 2023.07.14

[Kubernetes] 컨트롤러와 객체

바라는 상태(Desired State) 쿠버네티스는 사용자 요청에 따라 현재 상태가 바라는 상태와 동일해지도록 사전 정의된 작업을 수행한다. 따라서 쿠버네티스에 장애가 발생해서 애플리케이션이 죽더라고 Desired State에 의해서 배포 상태를 되살릴 수 있다. (자가 치유) 에어컨 시스템에 비유하면 현재 온도를 사용자가 바라는 희망온도에 따라 변경시키기 위해 에어컨(쿠버네티스)이 작동한다. 쿠버네티스에서는 YAML 형식을 이용해서 선언형 명령을 내린다. 사용자는 쿠버네티스에 명령을 전달할 때 YAML 파일에 프로퍼티(property)를 추가 또는 수정한다. 컨트롤러(Controller) 컨트롤러는 루프를 돌며 오브젝트들을 지속적으로 모니터링한다. 쿠버네티스에는 바라는 상태라는 개념이 있는데, 사용자가..

DevOps/Kubernetes 2023.07.14

[Kubernetes] 쿠버네티스와 도커 : 쿠버네티스와 도커의 차이점, 클러스터 운영체제, 쿠버네티스를 사용하는 이유

쿠버네티스(Kubernets, k8s) 여러 서버로 구성된 클러스터 환경에서 여러 개의 컨테이너들을 자동화 배포, 확장, 스케줄링으로 관리하기 위한 컨테이너 오케스트레이션 플랫폼이다. *오케스트레이션이란 여러 개의 서버 위에서 컨테이너의 라이프사이클을 관리하는 것이다. 여러 노드에 여러 개의 컨테이너를 분산해서 배치하거나, 문제가 생긴 컨테이너를 교체하고 환경 변수를 설정 등을 통해 컨테이너를 관리한다. 컨테이너들을 여러 서버에 걸쳐 여러 개를 실행시키기 위해 오케스트레이션을 통해 관리한다. 쿠버네티스의 기능 하드웨어 추상화 컨테이너의 실행 및 배포 컨테이너 이중화와 가용성 보장 컨테이너의 오토스케일링 컨테이너의 스케줄링 컨테이너의 네트워크 설정 관리 컨테이너의 health 상태 모니터링 컨테이너의 설정..

DevOps/Kubernetes 2023.07.13

도커(Docker)와 컨테이너(Container) : 컨테이너를 사용하는 이유, 컨테이너와 가상머신의 차이

도커와 컨테이너는 무엇일까? 최근 클라우드 컴퓨팅에서는 컨테이너 기반 가상화가 기존의 하이퍼바이저 기반의 가상화 기술을 대체하며 각광받고 있다. 특히 구글은 Gmail, Google Drive를 포함한 모든 서비스를 컨테이너로 제공한다고 발표하였으며, 현재 자사의 컨테이너 플랫폼인 ‘쿠버네티스(Kubernetes)’를 통해 2014년부터 매주 20억 개 이상의 컨테이너를 구동하고 있다. 도커 플랫폼이 설치되면 컨테이너로 묶인 애플리케이션을 어디서든 독립적으로 실행할 수 있다는 장점을 가진다. 클라우드 컴퓨팅 기술이 등장하면서 빠르게 인프라를 구축할 수 있게 되었다. 따라서 서비스를 빠르게 배포할 수 있게 되는 기술인 도커가 등장했다. 도커(Docker) 도커(Docker)는 가상실행 환경을 제공해 주는 ..

DevOps/Docker 2023.07.13

쿠버네티스 실행 명령어 정리

# 포드에서 컨테이너 실행 kubectl run # 포드에서 실행 중인 포드 목록 출력 kubectl get pods # 배포 확장 kubectl scale # 배포 확인 kubectl get deployments # 업데이트된 구성 파일 사용 kubectl apply –f nginx-deployment.yaml # Endpoint 검색 (서비스의 외부 IP를 가져오고 클라이언트에서 공개 IP에 접속하면 엔드포인트에 연결할 수 있음) kubectl get services # GKE 클러스터에서 쿠버네티스 시작 gcloud container clusters create k1

DevOps/Kubernetes 2023.04.21