본문 바로가기

분류 전체보기

(15)
NGINX docker - SSL(LET'S ENCRYPT) 설치 하기 - MANUAL 개요 1. nginx에 lets encrypt certbot으로 인증서를 발급 2. nginx에 ssl을 연결 환경 - docker - docker-compose - dns - dns와 연결된 서버 - ubuntu 1. 인증서 발급 cert bot 설치 1. certbot 설치 sudo snap install --classic certbot 2. 인증서 발급 dns가 명령어를 실행하는 서버와 80포트로 연결이 되어 있어야 함 sudo certbot certonly --standalone 인증서 발급시에 나머지는 y를 누르고 이메일 주소와 dns를 묻는 화면에서 이메일과 dns를 입력한다. /etc/letsencrypt/live/YOUR_DOMAIN_ADDRESS 에 발급되었다는 말과 함께 발급이 완료 된..
쿠버네티스 nginx lb 패턴 개요 쿠버네티스에서 nginx를 load balancer로 사용 하다 path에 따라 서버를 달리 해야 할 경우 매핑 하는 규칙 1. nginx.ingress.kubernetes.io/use-regex: "true" 이 옵션을 사용 하는 경우 정규식 패턴과 일치 하는 경우 해당 서버로 이동 시킨다. 해당 lb에 같이 있는 모든 lb에 대하여 정규식 패턴 매칭 형태로 매핑 된다. 우선 순위 첫 번째 매칭 우선 순위 인데, nginx에 경로를 작성 할때 긴 경로 순으로 정렬 되고 첫번째 일치 되는 것을 우선 한다. 정확한 패스와 매칭 되는 정규식이 있는 경우 정규식이 우선 하는 듯 하다. (실제 테스트 결과) 더보기 A request to test.com/foo/bar/bar would match the ^..
Kubernetes rancher ha 서버 설치 - rke 구성 환경 서버: 우분투 20.04 x 3ea 1. docker 설치 (server 1, 2, 3) sudo apt-get install docker.io -y sudo usermod -aG docker ${username} 2. rke cli 설치 (server 1) wget https://github.com/rancher/rke/releases/download/v1.3.4/rke_linux-amd64 chmod +x rke* sudo cp rke* /usr/local/bin/rke rke --help 3. 클러스터 노드에 접속 할 수 있도록 ssh 키 등록 및 생성 서버1에서 서버2, 3에 접속 할 수 있도록 키를 등록 server2: ssh-keygen server2: cat ~/.ssh/id_rs..
쿠버네티스에서 db backup cronjob 개요 크론잡으로 시간이 되면 실행중인 파일을 카피하여 registry에 등록 필요 요건 conjob 실행 관련 - docker 실행가능한 image 파일 (docker.sock 연결, runAsUser: 0 설정 필요) - Dockerfile 설정: configMap 에 등록 - shell script 필요: configMap 에 등록 - 실행 중인 파일 mount 필요 1. docker build FROM mysql:latest COPY mysql /var/lib/mysql .. 실행 중인 파일은 카피하여 이미지 빌드하는 Dockerfile을 만들어서 configMap에 등록 한다. configMap을 volume으로 workdir에 위치 시킨다. 2. shell script image_name=reg..
쿠버네티스 라이프 사이클 훅 컨테이너가 시작 되거나 종료 될때 event를 잡아서 명령어를 실행 할 수 있다. spec template: spec: containers: ... image: nginx... lifecycle: postStart: httpGet: host: 192.168.0.39 path: "start" port: 8080 scheme: HTTP preStop: httpGet: host: test path: "finish" port: 8080 scheme: HTTP # or postStart: exec: command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"] preStop: exec: command: ["/bin/s..
jenkins on rancher docker.sock 설정(root user) docker 로 jenkins를 돌릴때는 -u root 로 root 권한을 설정 하여 -v /var/run/docker.sock:/var/run/docker.sock 호스트 docker.sock을 사용할 수 있지만, kubernetes에서는 spec: template: spec: securityContext: runAsUser: 0 를 설정 하여 docker.sock 를 사용 할 수 있다.
rancher rest api image update workload 화면 우측의 view in api 에서 work load 주소 획득 https://{rancher api}/v3/project/{projectId}/workloads/deployment:{namespace}:{resourcename} 수정시 put (생성시 post) - url: https://{rancher api}/v3/project/{projectId}/workloads/deployment:{namespace}:{resourcename} payload { "containers": [ { "image": "{imageUrl}", "name": "{containerName}" } ] } Header "Authorization: Basic {token}" or "Authentication..
Spring boot Docker로 배포하기 1. 환경 서버: virtual box, 우분투 19.04 서버 로컬: 우분투 19.04 desktop, openjdk 12, maven 3.6.0, docker 18.09 ...더보기 우분투 기준 설치 방법 virtualbox $sudo apt-get install virtualbox openjdk $sudo apt-get install openjdk-12-jdk maven $sudo apt-get install maven docker $sudo apt-get install docker.io * docker 실행시 sudo 없애기 $sudo usermod -aG docker hsoo 2. Spring boot app 만들기 만들어볼 Web app 은 spring boot를 이용하여 "/" -> "hel..