본문 바로가기

가상화

(36)
[kubernetes] Kubernetes에서 Ingress 와 Tomcat 연동 개요 구성환경 1. Tomcat 이미지 다운로드 shell> docker pull tomcat:8.5.53 2. 배치 생성 shell> kubectl apply -f tomcatproject1-deployment.yaml - tomcatproject1-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: tomcatproject1-deployment labels: app: tomcatproject1 spec: replicas: 1 selector: matchLabels: app: tomcatproject1 template: metadata: labels: app: tomcatproject1 spec: containers: - name:..
[kubernetes] 노드 유지보수 개요 (커널 업그레이드, libc 업그레이드, 하드웨어 수리 등으로) 한 노드를 리부트해야하는데 다운타임이 짧다면, Kubelet이 재시작할 때 해당 노드에 스케줄된 파드들을 재시작하려고 할 것이다. 만약 리부트가 길게 걸린다면 (컨트롤러 관리자의 --pod-eviction-timeout으로 제어되는 기본 시간은 5분이다.) 노드 컨트롤러는 사용불가한 노드에 묶여져 있는 파드들을 종료 시킬 것이다. 업그레이드 과정을 상세하게 통제할 수 있는 kubectl drain, kubectl 사용방법에 대해 알아보자. 구성환경 Kubernetes v1.17.4, docker-ce 19.03.8 - 노드에 스케줄할 수 없도록 표시하면서 해당 노드 상의 모든 파드들을 자연스럽게 종료하기 위해 kubectl drain을..
[Docker] Priviate registry 구성 #4 - imagePullSecrets 작성 개요 kubernetes cluster 환경에서 private registry에 사용자 인증이 설정되어 있을 경우, 작업 노드(woker node)에서 이미지를 pull 하기 위해서는 배치 파일에 imagePullSecrets 섹션을 설정해야만 이미지를 pull 할수 있다. 여기서는 secret 생성 및 배치에 imagePullSecret 섹션 설정 방법에 대해 알아보도록 한다. 구성환경 kubernetes v1.17.4, docker-ce-19.03.5, registry 2.7.1 1. 기존 존재하는 Docker 자격 증명을 기반으로 Secret 만들기 docker login 명령어를 실행하면 $HOME/.docker/config.json 파일에 자격증명이 만들어 진다. 이 파일을 이용하여 Secret..
[kubernetes] Pod 재시작 개요 Pod를 재시작하는 방법 구성환경 kubernetes v1.17.4, docker-ce 19.03.8 kubernetes Pod 재시작 Usage : kubectl get pod -n -o yaml | kubectl replace --force -f- 문법을 보면 알겠지만 파드(Pod)를 재시작한다라기 보다 삭제하고 다시 만든다고 보는게 맞을것 같다. 예시) web Pod 재시작 shell> kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 443/TCP 10d web ClusterIP 10.105.13.154 8080/TCP 40h web2 ClusterIP 10.105.146.106..
[kubernetes] 인그레스(Ingress)를 사용하여 HTTP(S) 부하 분산기 구성 #2 - HTTPS 부하 분산 개요 이전 시간에는 HTTP 트래픽에 대한 부하 분산기 구성에 대해 알아보았다. 이번 시간에는 HTTPS 트래픽에 대한 부하 분산기 구성에 대해서 알아 보도록 하자. 구성환경 kubernetes v1.17.4, docker-ce 19.03.8, nginx-ingress-controller 0.30.0 구성절차 1. ngninx-ingress-controller 설치 및 서비스 생성 2. 앱 배포 만들기 3. 인증서 및 키 만들기 4. 인그레스에 대한 인증서 지정 5. 부하 분산기 테스트 1. ingress-controller 설치 및 서비스 생성 1.1 nginx-ingress-controller 설치 shell> kubectl apply -f https://raw.githubusercontent.com..
[Docker] 컨테이너와 로컬 파일 시스템간에 파일 / 폴더 복사 개요 로컬파일시스템과 컨테이너간에 파일 및 폴더를 복사하는 방법에 대해서 알아본다. 구성환경 docker 19.03.5 1. 단일 파일 복사 Usage : docker cp CONTAINER: docker cp container: 예시 1) busyboxtest 컨테이너의 /etc/hosts 파일을 로컬 /tmp/hosts로 복사 shell> docker run -it --name busyboxtest busybox:latest shell> docker cp busyboxtest:/etc/hosts /tmp/hosts shell> cat /tmp/hostname shell> cat hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe..
[kubernetes] 인그레스(Ingress)를 사용하여 HTTP(S) 부하 분산기 구성 #1 - HTTP 부하 분산 개요 NGINX Ingress 컨트롤러는 NGINX를 사용하여 Kubernetes 클러스터의 HTTP 서비스에 대한 외부 액세스를 관리하는 Ingress 컨트롤러입니다. kubernetes에서 서비스를 생성하면 -service-node-port-range(default 30000~32767) 범위내에서 서비스에 포트를 할당하게 된다. 이 경우 웹서비스에 접근하기 위해서는 http://{IP}:{NodePort} 형태로 실제로 서비스하기에는 부적접한 url 입니다. NGINX Ingress를 사용하여 일반적인 http://www.doman.com형태로 서비스하는 방법에 대해 알아 보도록 하겠습니다. 구성환경 minikube v1.9.0, kubectl v1.18.0, CentOS 7.6 참고 문서 : ht..
[Docker] docker-compose 활용 개요 docker-compose는 다중 컨테이너 Docker 애플리케이션을 정의하고 실행하기위한 도구입니다. Compose에서는 YAML 파일을 사용하여 애플리케이션 서비스를 구성합니다. 그런 다음 단일 명령으로 구성에서 모든 서비스를 작성하고 시작합니다. 구성환경 docker-19.3 , docker-compse-1.18 Docker-compose 를 사용하기 위해서는 Docker-compose를 설치해야한다. 설치 방법은 아래와 같다. 1. 설치 shell> yum install docker-compose : centos shell > apt install docker-compose : debian/ubuntu Docker-compose를 사용 전후를 한번 비교해보도록 하자. 아래는 docker ru..