본문 바로가기

Devops

(28)
[Docker] windows wsl 2 설치하기 우선 터미털 입력을 편리하게 하기 위해 Windows Store에서 Terminal 앱을 설치한다. 설치한 후 Terminal을 실행하고 wsl (Windows Subsystem for Linux) 명령어를 실행하고 버전 확인을 위해 wsl -l -v를 입력해본다. PS C:\Users\kms> wsl -l -v Copyright (c) Microsoft Corporation. All rights reserved. 사용법: wsl.exe [인수] 인수: --install Linux용 Windows 하위 시스템 기능을 설치합니다. 옵션을 지정하지 않으면 권장 기능은 기본 배포와 함께 설치됩니다. 기본 배포 및 다른 유효한 배포 목록을 보려면 'wsl --list --online'을 사용하세요. 옵션: --..
[Docker] Oracle DB 설치하기 (Oracle 12c) Docker를 사용해 Oracle 12c 버전 설치하는 방법을 살펴보기로 한다. 설치는 Synology Nas 718+에서 진행하였다. 1. Docker Login Oracle 이미지를 다운로드 받기 위해서는 Docker hub에 로그인이 되어있어야 한다. 본인이 사용하고 있는 Docker Hub 계정으로 로그인을 진행한다. root@MyFriends-svc:~# docker --version Docker version 20.10.3, build b455053 root@MyFriends-svc:~# docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head ..
[Gitlab] Gitlab backup, restore Gitlab container에 터미널 접속 root@MyFriends:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d0a1cac82f0f gitlab/gitlab-ce:latest "/assets/wrapper" 3 months ago Up 3 hours (healthy) 0.0.0.0:40002->22/tcp, 0.0.0.0:40000->80/tcp, 0.0.0.0:40001->443/tcp gitlab-gitlab-ce1 root@MyFriends:~# docker exec -it gitlab-gitlab-ce1 bash root@gitlab-gitlab-ce1:/# gitlab 버전 12.2 이상 gitlab-backup ..
[Kubernetes] 쿠버네티스 Service 개념 - ClusterIP, NodePort 서비스(Service) 가 필요한 이유 파드는 일회성이다. 노드에서 파드가 제거되면 새로운 파드가 생성되거나, 클러스터의 노드에 장애가 발생되면 다른 노드로 이동된다. 쿠버네티스의 파드는 노드에 스케쥴된 후 시작하기 전에 IP 주소를 할당하기 때문에 미리 파드의 IP 주소를 알기 어렵다. Scale-out(HPA) 는 여러 파드가 같은 서비스를 제공하는 것을 의미하는데 각 파드는 개별 IP 주소를 가지게 된다. 클라이언트는 서비스를 제공하는 파드의 수와 IP를 신경 쓸 필요가 없어야 한다. -> 서비스 (Service)를 사용하면 파드가 클러스터 안 어디에 있던 고정 IP 주소 (Endpoint IP Address)를 통해서 접근할 수 있다. CluserIP 기본 서비스 타입으로 클러스터 내부에서 사용이..
[Kubernetes] Controller - Replicaset 레플리카셋(Replicaset)의 3가지 구성 요소 label selector 레플리카셋에 의해 관리될 파드를 선택할 레이블 정의 .spec.template.labels의 필드와 spec.selector.matchLabels가 같아야 한다. 레이블을 기준으로 파드가 관리되므로 실행 중인 파드를 중단하거나 재시작하지 않고 레플리케이션 컨트롤러가 관리하는 파드 변경 가능 replicas 유지할 파드의 수 기본 값은 1 pod template 레플리카셋이 실행할 파드의 정의 레플리카셋에 의해서 실행할 파드의 컨테이너 이미지, 포트, 이름등의 구체적 명세 레플리카셋 yml 예제 (rs-nginx.yaml) apiVersion: apps/v1 kind: ReplicaSet metadata: name: rs-ngi..
[Kubernetes] 네임스페이스(Namespace) 살펴보기 네임스페이스 동일한 물리 클러스트를 기반으로 하는 논리적으로 구분된 가상 클러스터를 네임스페이스라고 한다. 여러개의 팀이나 많은 사용자가 있는 경우, 클러스터안에서 여러개의 어플리케이션을 실행해야 하는 경우 사용 root@master:~# kubectl get namespace NAME STATUS AGE default Active 10d kube-node-lease Active 10d kube-public Active 10d kube-system Active 10d root@master:~# kubectl get deploy No resources found in default namespace. root@master:~# kubectl get deploy -n kube-system NAME READY..
[Kubernetes] 쿠버네티스 Architecture와 기본 동작 Kubernetes Clustering Architecture 1. 로컬에서 이미지를 생성해서 Push를 수행한다. 2. Push된 이미지가 Docker Hub에 업로드 된다. 3. 4. kubectl 명령어를 실행해 Kubernets API 서버로 REST HTTP 요청을 전달하고 클러스터에 새로운 레플리케이션 컨트롤러 오브젝트 생성 5. 레플리케이션 컨트롤러는 새 파드를 생성하고 스케쥴러(Scheduler)가 워커 노드 중 하나에 스케쥴링 6. 해당 워커 노드의 Kubelet은 파드가 스케쥴링 된 것을 확인 7. 이미지가 로컬에 없기 때문에 Docker에게 레지스트리에서 특정 이미지를 Pull 하도록 지시 8. 이미지 다운 후 Docker는 컨테이너를 생성하고 실행 Master Node의 Schedu..
[Kubernetes] 쿠버네티스 설치(kubeadm) 및 cluster 구성하기 쿠버네티스를 공부하기 위해서는 제일 처음으로 할일이 여러 노드에 kubernates패키지를 설치하고 master 노드와 worker노드간의 연결을 설정하는 일이다. 집에 있는 Synology 718+의 VMM 으로 VM을 3개 만들어 그들간에 cluster를 구성해보려고 한다. 시작하기 전에 호환 되는 Linux는 Debian 및 Red Hat 기반 Linux 배포판. 머신당 2GB 이상의 RAM. 2 CPU 이상. 클러스터의 모든 시스템 간의 전체 네트워크 연결(공용 또는 사설 네트워크). 모든 노드에 대한 고유한 호스트 이름, MAC 주소 및 product_uuid. kubelet 위해서는 스왑을 사용하지 않도록 설정함. 마스터 노드 (Master Node) 노드들의 상태를 제어하고 관리 쿠버네티스의..