
Docker 컨테이너 가볍게 빌드하기. Docker는 컨테이너 툴은 현재 가장 많이 사용되고 있는 도구이다. 컨테이너 이미지를 작성할때, 어떻게 작성하느냐에 따라서 컨테이너 빌드 속도와, 빌드 후 이미지 크기에 영향을 주며, 이러한 영향은 프로젝트 개발 라이프 사이클에서 어느정도 영향을 주게 된다. 필자의 경우 Docker Build 시 Dockerfile 을 비효율적으로 작성하는 바람에 빌드 시간이 30분이 소요된 경우도 있었다. 이런 이유는 Docker Build 레이어를 사용한다는 사실을 모른채 Dockerfile을 작성했었고, 매번 빌드시마다 의존성 파일을 다운로드하는 비효율적인 빌드를 수행했었기 때문에 발생했었다. 이번 아티클은 Golang 으로 웹 어플리케이션을 간단히 작성해보고, Docker..

ArgoCD 사용하기. 사전 확인하기. 우선 Kubernetes 가 설치되고, kubectl 을 이용할 수 있는지 우선 확인하자. kubectl cluster-info Kubernetes master is running at https://172.16.10.100:6443 KubeDNS is running at https://172.16.10.100:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. 필자의 경우 로컬에 VM을 이용하여 multer master kubernetes cluster 를 우선..

간단한 웹 프로그래밍 개발 및 DockerHub 업로드 이제는 간단한 Hello World 웹 어플리케이션을 만들어 보자. 우리 예제는 go gin 을 이용하여 개발해 볼 것이다. go module 설치 go mod init com.github.schooldevops.go.gin go: creating new go.mod: module com.github.schooldevops.go.gin Gin 의존성 가져오기 go get -u github.com/gin-gonic/gin ... 위와 같이 필요한 모듈을 가져왔다. 간단한 샘플 작성하기. main.go 파일을 열어 다음 내용을 추가한다. package main import ( "bufio" "net/http" "os" "strings" "github.c..

ArgoCD 디플로이 이제는 ArgoCD 를 이용하여 kubernetes 에 배포를 수행할 것이다. 그러기 위해서는 기본적으로 2가지 작업을 수행해 주어야한다. Deployment: Kubernetes 에 어플리케이션을 배포하기 위해서는 Deployment 를 통해서 배포를 수행하게 된다. 버전관리 등 다양한 이점이 있다. Service: Service 는 외부 접속을 위한 연결 정의를 수행하는 매니페스트이다. Deployment 작성하기. greetweb-deploy.yml 파일을 다음과 같이 작성한다. apiVersion: apps/v1 kind: Deployment metadata: labels: app: greet name: greet spec: replicas: 2 selector: matchL..
POD 실습하기. 현재 기본 네임스페이스의 pod 목록 보기. kubectl get pods nginx pod 실행하기. kubectl run nginx --image=nginx nginx pod/nginx created 현재 수행하는 pod 상세 정보 보기. kubectl describe pod newpods-1234 Name: newpods-1234 Namespace: default Priority: 0 Node: node01/172.17.0.26 Start Time: Wed, 10 Mar 2021 04:46:05 +0000 Labels: tier=busybox Annotations: Status: Running IP: 10.244.1.3 IPs: IP: 10.244.1.3 Controlled By:..
ReplicaSet 살펴보기 리플리카 셋이 없는경우 kubectl get rs No resources found in default namespace. 리플리카 셋이 있는경우 kubectl get rs NAME DESIRED CURRENT READY AGE replica-set 4 4 0 25s DESIRED: 원하는 POD의 개수 CURRENT: 현재 존재하는 POD의 개수 READY: 운영 상태가 된 POD수 (위 상태를 보면 현재 요청한 POD와 현재 POD는 4개이나, 정상적으로 서비스 되는 것은 0개이다.) 리플리카 셋 상세보기. kubectl get rs -o wide NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR replica-set ..
Deployment 살펴보기 Deployment 확인하기. kubectl get deploy or kubectl get deployment NAME READY UP-TO-DATE AVAILABLE AGE my-deployment 0/4 4 0 7s Deoloyment 상세보기 kubectl describe deploy frontend-deployment Name: frontend-deployment Namespace: default CreationTimestamp: Fri, 12 Mar 2021 00:41:31 +0000 Labels: Annotations: deployment.kubernetes.io/revision: 1 Selector: name=busybox-pod Replicas: 4 desire..
Service 살펴보기 Service 확인하기. kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 443/TCP 2m57s 서비스 상세 보기. kubectl describe svc kubernetes Name: kubernetes Namespace: default Labels: component=apiserver provider=kubernetes Annotations: Selector: Type: ClusterIP IP: 10.96.0.1 Port: https 443/TCP TargetPort: 6443/TCP Endpoints: 172.17.0.15:6443 Session Affinity..
명령형 및 선언적 사용 POD 생성하기. kubectl run nginx-pod --image=nginx:alpine pod/nginx-pod created kubectl get pods NAME READY STATUS RESTARTS AGE nginx-pod 1/1 Running 0 92s 매니페스트 생성하기. kubectl run redis --image=redis:alpine --dry-run=client -o yaml apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: redis name: redis spec: containers: - image: redis:alpine name: redis resources: {} dn..
- Total
- Today
- Yesterday
- java
- Gorilla
- mapping
- mongo
- MySQL
- CI
- kafka-springboot
- docker-compose
- jpa
- docker
- Kafka
- Database
- Terraform
- kubernetes
- MongoDB
- Spring
- D3
- Golang
- tfsec
- CD
- kubectl
- declative
- deploy
- argocd
- go
- springboot
- NodeSelector
- jenkins
- AWS
- gitops
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |