| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- Git
- kubernetes
- tool
- 맛집
- it
- Gradle
- Spring Boot
- jenkins
- MySQL
- php
- ubuntu
- laravel
- Design Patterns
- devops
- ReactJS
- JVM
- 요리
- docker
- Spring
- db
- java
- k8s
- javascript
- Container
- springboot
- linux
- elasticsearch
- IntelliJ
- AWS
- jsp
- Today
- Total
목록docker (27)
아무거나
여기선 대표적으로 프로메테우스, 로키, 그라파나를 진행할건데 각각 용도는 아래와 같습니다.Prometheus: 메트릭 수집기Grafana: 데이터 시각화Loki: 로그 수집기 쿠버네티스 메트릭 서버 (Metrics-server)쿠버네티스에서 오토 스케일링을 해주는 Horizontal Pod Autoscaler가 존재하며 해당 기능은 시스템 관련 지표를 확인하여 스케일링을 해주는데 시스템 관련 지표를 확인할 수 있게 메트릭 서버(Metric-Server)라는 오픈소스가 존재합니다. (매트릭이란 시스템 성능을 나타내는 지표입니다.) 메트릭 서버 설치$ mkdir metric-server$ cd metric-server$ helm repo add metrics-server https://kubernetes-s..
github actionGitHub Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD(연속 통합 및 지속적인 업데이트) 플랫폼입니다. git 설치$ sudo apt install git-all$ git config --global user.name {이름}$ git config --global user.email {이메일주소}$ mkdir work$ cd work$ git init github actiongithub repository를 생성합니다. (github-actions-test 이름으로 생성)상단의 Actions 클릭 > set up a workflow yourself 클릭 > main.yml 작성name: HelloWorld # 워크플로 이름on: [push]..
Postgresql 설치기존 실습에서 해당 DB와 연동한 코드가 있으므로 설치하고 진행하자.// myserver01 에 postgresql 설치$ sudo apt install postgresql postgresql-contrib dockerhub login// dockerhub 로그인을 합니다.$ docker login -u {계정} django 이미지 빌드https://github.com/losskatsu/DockerKubernetes/tree/main/work/ch10/ex01/myDjango04 코드 내부에서 빌드합니다.// 빌드$ docker image build . -t mydjango_ch10:0.1// 도커 이미지 태그 생성 (태그: 버전을 구분하기위한 label)$ docker tag m..
Job, Cronjob리눅스의 Crontab 과 유사하며 반복 작업을 스케쥴에 맞추어서 할 때 사용합니다.Job: Pod를 생성하고 지정된 수의 Pod가 성공적으로 종료될 때까지 계속해서 Pod의 실행을 재시도 합니다. 그리고 지정된 수의 성공 완료 횟수에 도달하면 Job이 종료됩니다.Cronjob: 반복 일정에 따라 Job을 만듭니다. (=리눅스 크론탭과 유사합니다.) Job[job-cronjob01.yml]apiVersion: batch/v1kind: Job # Job 으로 설정합니다.metadata: name: job-test01spec: template: spec: containers: - name: nginx-test01 image: nginx:1.25..
Docker & Kubernetes 스터디 - 11 (인그레스)인그레스인그레스(Ingress)란 쿠버네티스 클러스터 외부에서 내부에 존재하는 쿠버네티스 서비스에 접근하기 위해 HTTP/HTTPS를 활용한 라우팅 규칙을 제공하는 오브젝트입니다. 인그레스를 활용하면 클러스터 내부에 존재하는 여러 서비스를 다수의 LoadBalancer 없이도 외부에 노출시킬 수 있는 Production 환경에서 유용하게 사용할 수 있습니다. 상기 이미지처럼 하나의 인그레스에 여러 서비스가 포함 될 수 있습니다. 즉, /test01, /test02 로 각각 접근할 수 있습니다. 헬름(Helm) 이란쿠버네티스를 사용하려면 하나의 애플리케이션을 실행하기 위해 여러 리소스를 사용해야 하며, 다수의 yaml 파일을 관리해야 합니다...
스테이트풀셋(StatefulSet)스테이트풀셋은 Pod들을 관리하는데 사용하는 워크로드(워크로드란 쿠버네티스에서 구동되는 애플리케이션을 의미) API 오브젝트입니다. 디플로이먼트와 유사하며, 다른점은 Pod의 독자성을 유지합니다. 즉, Pod들이 동일한 스펙으로 생성되었어도 서로 교체해서 사용할 수 없습니다. 또한 영구적인 식별자를 가지며 이는 스케쥴링을 다시 할 때도 유지됩니다. 스테이트풀셋이 유용한 상황 안정적이고, 고유한 네트워크 식별자 안정적인 Persistent Storage 순차적인 원활한 배포(Graceful Deployment)와 스케일링 순차적, 자동 롤링 업데이트 헤드리스 서비스헤드리스 서비스(Headless Service)는 Pod들의 개별 네트워..
서비스(Service)쿠버네티스의 서비스란 클라이언트와 Pod의 연결을 담당합니다. 종류는 아래와 같습니다.ClusterIPNodePortLoadBalancerExternalName 서비스 구조만약 Client 가 Pod 에 IP 요청을 하는데, 각 Pod 는 개별적인 IP 주소를 갖고 있습니다.그런데 Pod 가 죽고 새로운 Pod 가 생기게 되면 Client 가 요청할 Pod 의 IP 가 변경되는데 이럴 경우에 서비스 를 활용하면 해결할 수 있습니다.서비스는 Pod 의 논리적 집합과 그것들에 접근할 수 있는 정책을 정의하는 추상적 개념입니다.이를 위해 외부 트래픽 노출, 로드 밸런싱 및 Pod 들에 대한 서비스 디스커버리를 가능하게 합니다. 서비스 디스커버리(Service Discovery) 란 서비..
쿠버네티스 기본 쿠버네티스 기본 명령 (마스터 노드에서 실행)마스터 노드: 클라이언트의 API 요청을 받고 워커 노드를 다루는 역할워커 노드: 실제 컨테이너를 실행하는 역할// 쿠버네티스 클러스터 정보 확인$ kubectl cluster-info// 쿠버네티스 노드 정보 확인$ kubectl get nodes// Pod 목록 확인$ kubectl get pod// Pod 목록 확인에 -o wide 옵션을 확인하면 더 자세한 정보 확인가능$ kubectl get pod -o wide// Pod 삭제 kubectl delete pod {pod명}$ kubectl delete pod hello-world// hello-world 이미지를 활용한 Pod 실행$ kubectl run hello-world --im..
서버 생성서버를 마스터노드 1개, 워커노드 2개를 생성합니다. 스펙은 아래와 같습니다.CPU: 4개Memory: 8192MBStorage: 100GBOS: Ubuntu 22.04 호스트명 변경각 서버별 호스트명을 변경합니다.// myserver{number} 로 변경 (master node: myserver01, worker node1: myserver02, worker node2: myserver03)$ sudo hostnamectl set-hostname myserver02$ cat /etc/hostname$ sudo reboot now DNS 설정현재 세 대의 서버를 이용해 쿠버네티스 클러스터를 구축하기 위해 각 서버들끼리 서로 통신이 되어야하며 이를 위하여 DNS 를 설정합니다. (sudo vi ..
쿠버네티스 개념쿠버네티스의 어원과 역사쿠버네티스(kubernetes)는 컨테이너화된 애플리케이션의 자동 배포, 확장 및 관리를 해주는 오픈소스 플랫폼입니다. 쿠버네티스의 스펠링은 Kubernetes인데 이는 고대 그리스어로, 배의 조타수를 의미합니다. 그리고 첫 글자인 K와 마지막 글자인 s 사이에 여덟 글자가 있다고 해서 쿠버네티스를 줄여서 k8s라고도 부릅니다.쿠버네티스는 구글에서 시작한 사내 프로젝트로 2014년에 발표되었습니다. 쿠버네티스는 구글 사내에서 사용하는 시스템인 Borg 클러스터 매니저의 영향을 많이 받았습니다. Brog는 수천 개의 서버에서 수백만개의 작업을 실행하고 관리하는 시스템입니다.이후인 2015년엔 쿠버네티스 1.0 버전이 발표되었고, 2016년에는 쿠버네티스 패키지 관리 프..