Infra/Kubernetes (9) 썸네일형 리스트형 Docker 명령어 정리 모든 컨테이너 이미지 삭제 sudo docker rm -f `sudo docker ps -a -q` sudo docker rmi -f `sudo docker images` Docker로 파일 복사 $ docker cp hoge.sql [cotaier-id]:/hoge.sql Docker 로그인 $ docker ps $ docker exec -it [container-id] /bin/bash mysql 로그인 $ mysql -u root -p $ show databases; $ use [your_database_name]; $ show tables; SQL 파일 사용 $ source hoge.sql Docker Image 확인 docker images 4. POD 1. 기본 개념 쿠버네티스는 파드라는 단위로 컨테이너를 묶어서 관리한다. 아래와 같이 각 컨테이너마다 역할을 부여하여 관리하는것도 가능하다. 역할 부여의 예 웹 서버 로그 수집기 볼륨 컨테이너 파드하나에 한개의 아이피를 공유하며 각 컨테이너와 통신할때는 포트를 이용하여 접근한다. 2. 파드 설정 파일로 POD 사용하기 pod-sample.yaml apiVersion: v1 kind: Pod metadata: name: kubernetes-simple-pod labels: app: kubernetes-simple-pod spec: containers: - name: kubernetes-simple-pod image: arisu1000/simple-container-app:latest ports: - con.. 3. 쿠버네티스 개념 1. 쿠버네티스 클러스터의 전체 구조 마스터 etcd, kube-apiserver, kube-scheduler, kube-controller-manager, kubelet, kube-proxy, docker 등의 컴포넌트가 실행된다 etcd Key Value 저장소 이자 데이터베이스 역할을 한다. 서버 하나당 프로세스 1개만 사용 가능하다 kube-apiserver 쿠버네티스 클러스터의 API를 사용할 수 있도록 하는 컴포넌트이다. 클러스터로 온 요청이 유효한지 검증 서버 여러 대에 여러개 실행 가능 kube-scheduler 현재 클러스터 안에서 자원 할당이 가능한 노드 중 알맞은 노드를 선택해서 새롭게 만든 파드를 실행한다. kube-controller-manager Pod들을 관리하는 Control.. 2. 쿠버네티스로 컨테이너 실행하기 1. Kubectl https://kubernetes.io/ko/docs/reference/kubectl/cheatsheet/ 설치 방법 공식사이트 참고 기본 사용법 kubectl [command] [TYPE] [NAME] [flags] 2. Kubectl 사용예제 (Echoserver 만들기) Echoserver라는 Pod 생성 kubectl run echoserver --generator=run-pod/v1 --image="k8s.gcr.io/echoserver:1.10" --port=8080 Eschoserver 서비스 생성 (쿠버네티스의 Pod들이 접근할 때 필요함) kubectl expose po echoserver --type=NodePort Pod상태 확인 kubectl get pods Se.. 1. 쿠버네티스 관련 설정 및 설치 1. GCP 설정 Compute Engine 활성화 https://console.cloud.google.com/compute https:// cloud.google.com/compute/docs/?hl=ko (공식문서) Instance 5개 살리기 OS : Ubuntu 16.04 LTS 유저는 SSH를 통해 Instance1에 접속하게 할것이며 나머지 Instance는 Instance1을 통해 접속하게 할것이다 SSH 공개 키 등록 및 접속하기 https://velody.tistory.com/47 Instance에 Key 생성 및 Public Key 등록 ssh-keygen -t rsa cat .ssh/id_rsa.pub을 통해 공개키 복사 Instance 2~5에 public key만들기 설정을 모두 .. 4. 파드와 노드 파드(POD)란 무엇인가? 파드는 하나 또는 그 이상의 애플리케이션 컨테이너 (도커 또는 rkt와 같은)들의 그룹을 나타내는 쿠버네티스의 추상적 개념으로 일부는 컨테이너에 대한 자원을 공유한다. 그 자원은 다음을 포함한다: 볼륨과 같은, 공유 스토리지 클러스터 IP 주소와 같은, 네트워킹 컨테이너 이미지 버전 또는 사용할 특정 포트와 같이, 각 컨테이너가 동작하는 방식에 대한 정보 만약 컨테이너들이 밀접하고 결합되어 있고 디스크와 같은 자원을 공유해야 한다면 오직 하나의 단일 파드에 함께 스케쥴되어져야 한다. 노드(Node)란 무엇인가? 노드는 쿠버네티스에서 워커 머신을 말하며 클러스터에 따라 가상 또는 물리 머신일 수 있다. 파드는 언제나 노드 상에서 동작한다. 각 노드는 마스터에 의해 관리된다. 하나.. 3. Kubectl을 사용해서 디플로이먼트 생성하기 I. Deploy an app 1. Deploy Application kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 2. List Deployments kubectl get deployments 3. Query Version using API kubectl proxy curl http://localhost:8001/version 4. Find the Name of the Pod export POD_NAME=$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}'.. 2. Minikube를 사용해서 클러스터 생성하기 I . 쿠버네티스 클러스터는 두 가지 형태의 자원으로 구성된다. 마스터 - 클러스터 상호조정 노드 - 애플리케이션을 구동하는 작업자 (최소 3대의 노드가 필요) 1. Kubelet - 쿠버네티스 마스터와 통신하는 에이전트 2. Docker 또는 RKT - 컨테이너 운영담당 3. 쿠버네티스 클러스터 - 운영트래픽 처리 쿠버네티스 API를 통해 마스터와 통신 II. Create a Kubernetes Cluster minikube version: Minikube 버전 체크 minikube start: Minikube 시작 kubectl version: Minikube 구동 후 Kubectl 작동확인\ kubectl cluster-info: Cluster내 Node 설정 정보 보기 kubectl get nod.. 이전 1 2 다음