DevOps

    [EKS] alb-ingress-controller 사용해보기

    [EKS] alb-ingress-controller 사용해보기

    주의 사항 2022.08.10 수정 해당 블로그에서 설치하는 AWS ALB Ingress Controller는 v1.1 버전으로 deprecated 상태입니다. 최신 버전인 AWS Load Balancer Controller v2.4를 설치하는 것이 권장됩니다. https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.4/ 테스트 순서 EKS 클러스터 생성합니다 worker node 역할에 추가로 정책을 붙입니다 alb-ingress-controller 배포합니다 ingress, deployment, service 배포합니다 host에 따라 웹페이지가 바뀌는지 확인합니다 1. EKS 클러스터 생성 1 2 3 4 5 6 eksctl create ..

    [EKS] nginx-ingress-controller, NLB 사용해보기

    [EKS] nginx-ingress-controller, NLB 사용해보기

    테스트 목표 Nginx-ingress-controller 사용하여 AWS NLB 생성합니다 ingress 규칙 사용하여 호스트 foo.bar.com에서 /foo는 nginx-app이 배포된 pod로 요청하고, /bar는 apache-app이 배포된 pod로 요청합니다 service 생성합니다 hostPath 사용하여 node와 pod 간 volume 생성합니다 결과 확인 1. eksctl create cluster 1 2 3 4 eksctl create cluster --name --version 1.18 --region ap-northeast-2 \ --nodegroup-name --nodes 2 \ --ssh-access --ssh-public-key --node-type t3.medium --man..

    쿠버네티스(2) - 컨트롤러 ReplicaSet, Deployments

    쿠버네티스(2) - 컨트롤러 ReplicaSet, Deployments

    실습환경: 마스터 1개 노드 2개 쿠버네티스 환경을 VM으로 구현함 ReplicaSet 프로덕션에서 Naked Pod를 사용하지 않는 이유는 팟이 고장 났을 때 스스로 살려내지 못하기 때문이다. Replica Set은 팟 상위의 개념으로 몇개의 팟이 항상 동작함을 보장 줌으로써 고가용성을 제공한다. 팟이 크래시가 되면 Replica Set은 새로운 팟을 만들고 원하는 상태로 돌려 놓는다. 2개의 레플리카가 클러스터에서 항상 동작하도록 설정 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 # replicaset.yml apiVersion: apps/v1 kind: ReplicaSet # 배포할 오브젝트 종류 metadata: # 배포할 오브젝트의 정보 ..

    Docker로 ubuntu, apache, php 환경의 이미지 만들기

    Docker로 ubuntu, apache, php 환경의 이미지 만들기

    우분투 아파치 설치 방법 래드햇, CentOS -> httpd 데비안, Ubuntu -> apache2 1 2 3 4 5 6 7 8 [root@ip-192-168-0-10 ~]# docker run -it --name ubuntu-test ubuntu Unable to find image 'ubuntu:latest' locally latest: Pulling from library/ubuntu a31c7b29f4ad: Pull complete Digest: sha256:b3e2e47d016c08b3396b5ebe06ab0b711c34e7f37b98c9d37abe794b71cea0a2 Status: Downloaded newer image for ubuntu:latest root@d64fc76ecd1a:/..

    [docker] Failed to get D-Bus connection 에러 해결

    [docker] Failed to get D-Bus connection 에러 해결

    이미지 centos:7를 사용하려고 했더니 systemctl을 사용할 수가 없다 ;; ubuntu에서는 잘 됐던거 같은데 centos은 안되는게 왜케 많은지 모르겠다 [user01@master ~]$ docker run -it centos:7 bash [root@9fa1db10b89c /]# systemctl Failed to get D-Bus connection: Operation not permitted 1. 컨테이너 해결방법 --privileged 옵션과 -d 옵션으로 /sbin/init을 실행한후 exec로 /bin/bash를 실행시켜야 한다 $ docker run --privileged -d --name mycentos centos:7 /sbin/init $ docker exec -it myce..

    쿠버네티스(1) - Pod 배포하는 2가지 방법

    쿠버네티스(1) - Pod 배포하는 2가지 방법

    쿠버네티스란? 도커 환경에서 우리가 다룰수 있는 가장 작은 단위는 컨테이너이다. 쿠버네티스에서는 Pod으로 작업을 한다. 팟은 하나 이상의 컨테이너로 구성된다. 쿠버네티스에서 팟을 배포하지 하지않고서는 어떤 컨테이너도 배포할 수 없다. 컨테이너 운영환경에서, 컨테이너들을 적절하게 매니징하는 여러가지 솔루션이 있다 예를 들어, 서비스 요청이 많아지는 경우 이에 대한 부하를 줄이기 위해 노드 수를 동적으로 늘린다 스케쥴링: 컨테이너별 자원 최적화, 적절한 위치에 배포 정상/비정상 상태 체크 및 재기동 컨테이너 리소스 모니터링 컨테이너 동적으로 삭제 관리 command line 사용 'kubectl run'에 옵션을 지정하면 파드를 디플로이먼트 컨트롤러의 제어하에 실행하는 것이 가능하다. 하지만, 파드를 단독..

    도커와 쿠버네티스 개념 정리

    도커와 쿠버네티스 개념 정리

    Docker란? 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해준다. 기존의 가상 머신(VM)과 컨테이너의 차이점 가상머신은 Host OS 위에 가상화를 시키기 위해서 Hypervisor 엔진 위에 각각의 Guest OS가 설치된 VM을 구동하기 때문에 무겁고 느리다 컨테이너는 Docker Engine 위에 컨테이너를 올려서 Host의 커널을 공유하기 때문에 훨씬 작은 단위로 업무를 수행할 수 있다 가상머신의 크기는 최소 몇 GB이지만, 컨테이너의 경우 Guest OS가 없기에 MB단위의 크기를 가진다 컨테이너는 Linux, Windows, 가상머신, Local PC, Data Cen..

    도커 이미지 레이어(Docker Image Layer)

    도커 이미지 레이어(Docker Image Layer)

    Docker Image Layer 의 구조 Docker 의 이미지를 이용해서 docker run 을 하면 Docker 는 도커가 관리하는 파일 시스템 영역에 이미지를 복사한다. 복사후 docker는 이미지의 최상단에 컨테이너 레이어(Container layer) 라고 불리는 하나의 얇은 레이어를 추가하여 컨테이너를 생성한다. 그리고 사용자에게 유니온 파일 시스템을 이용하여 마치 이러한 여러개의 파일 시스템(Image layer)으로 구성되어 있는 이미지 스택 구조가 하나의 파일 시스템 처럼 보이도록 하게 한다. ▲ Docker run [이미지] 를 통해 이미지로 컨테이너를 생성할 경우 기존의 이미지 레이어들 위에 conatiner layer 가 생성된다. 사용자가 컨테이너 안에서 읽고 쓰는 모든 작업 들..

    docker run 명령어 사용법, 옵션

    docker run 명령어 사용법, 옵션

    컨테이너 일회성 가동 [root@user1-virtual-machine: ~]#docker container run --name test1 ubuntu:latest /bin/echo "HelloWorld" Unable to find image 'ubuntu:latest' locally latest: Pulling from library/ubuntu 345e3491a907: Pull complete 57671312ef6f: Pull complete 5e9250ddb7d0: Pull complete Digest: sha256:cf31af331f38d1d7158470e095b132acd126a7180a54f263d386da88eb681d93 Status: Downloaded newer image for ubu..

    도커 기본 명령어 정리

    도커 기본 명령어 정리

    docker 설치 리눅스 자동 설치 스크립트 $ sudo wget -qO- https://get.docker.com/ | sh $ curl -fsSL https://get.docker.com -o get-docker.sh $ sh get-docker.sh 우분투 $ sudo apt-get update $ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common $ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add $ sudo add-apt-repository "deb [arch=amd64] https://downlo..