1. SMTP란 다른 메일 서버로 메일을 보내거나, 다른 메일 서버로부터 메일을 받을 때 이용되는 프로토콜 기본적으로 TCP 포트 25를 사용 2. 기본구성 출발지 - MUA - MTA - MDA - MUA - 목적지 MUA(mail user agent) : 이메일 클라이언트, 사용자가 메일을 보내기 위해 사용하는 프로그램 ex. gmail, outlook MTA(mail/message transfer agent) : 메일을 SMTP를 이용해 다른 메일 서버로 전달하는 프로그램 ex. sendmail, qmail, postfix, ms exchange server 3. Sendmail a) 버전 확인 echo \$Z | /usr/sbin/sendmail -bt -d0 b) 연결 테스트 /usr/lib/s..
1. Replication 상태 확인 show slave status ---- Slave_IO_Running Yes Slave_SQL_Running No2. Replication 에러 사례 Error 'Unknown or incorrect time zone: 'Asia/Seoul'' on query. Default database: '*****'. Column 6 of table '*****' cannot be converted from type 'varchar(120)' to type 'varchar(14)’ DB의 timezone 값이 Master와 같지 않거나 기존 데이터 타입에서 차이가 있었을 경우 등, Replica ..
1. 개요 1) Devops란 무엇인가 Devops는 소프트웨어를 서비스 시의 고통과 책임감을 공유하는 것이다. 기존 개발자는 빨리, 많은 새 기능을 추가하길 원하고 운영자는 리스크에 대한 부담때문에 가능한 적은 수의 새 기능을 원한다. 이런 불일치로 인해 Devops가 탄생하였다. 목표는 소스코드로부터 소프트웨어 제품까지에 이르는 디지털 파이프라인 구축하는 것이다. [필요한 기본 기술 (평생 학습해야 하지만)] Linux Python AWS 2. Configure 코드를 실행시킬 인프라스트럭쳐를 빌드하는 단계이다. 이 단계에서 필요한 것은 IaC이다. 대시보드를 이용한 버튼클릭에 비해 IaC가 가지는 장점은 아래와 같다. 실수 방지 (휴먼 에러) 버전 관리 가능 재사용 가능 validation 가능 T..
1. 소개 네임스페이스는 쿠버네티스의 리소스들을 분리하기 위해 사용하는 방법이다. 쿠버네티스를 설치하면 기본적으로 default 네임스페이스, 쿠버네티스 시스템 자원들이 있는 kube-system, 모든 사용자가 접속할 수 있는 kube-public의 3가지 네임스페이스가 생성된다. 유저가 중요한 내부 객체를 건드리는 것을 막기 위해 시스템 자원들을 별도의 네임스페이스로 구분한 것이다. 네임스페이스로 얻을 수 있는 또 다른 이점은 자원 리밋 지정이다. 네임스페이스 별로 자원들의 최대 할당량을 지정하여 다른 네임스페이스에 영향을 끼치지 않도록 할 수 있다. LimitRange 오브젝트로 네임스페이스에 실행되는 단일 컨테이너에 대한 리소스 요청량, 상한크기의 기본값(default)이나 최소, 최대 제한값을 ..
쿠버네티스를 접근하는 사용자는 관리자, 개발자, 서드파티 프로그램들로 분류할 수 있다. (어플리케이션 엔드유저에 대한 인증은 어플리케이션 단에서 수행한다) 쿠버네티스에서는 자체적인 사용자 인증 기능은 제공하지 않고 파일을 이용하거나 LDAP 등 별도 계정 기능을 이용해야 한다. 단 외부 서비스들이 사용하는 '서비스 계정(sa)'은 생성하는 기능을 제공한다. 아래 파일 기반으로 한 인증 방식은 보안에 취약하므로 권장하지 않는 방식이다. 1. File 파일을 이용한 인증 방법은 csv형태로 패스워드, 계정, uid, group 을 담은 파일을 생성 후 kube-apiserver 정의 파일에 옵션으로 파일을 지정하는 것이다. —basic-auth-file=user-details.csv apiVersion: v..
쿠버네티스의 파드도 컨테이너와 마찬가지로 삭제/생성을 반복하므로 데이터를 별도 볼륨에 저장할 필요가 있다. 1. Volumes & Mounts 가장 간단하게 호스트 디렉터리를 마운트하는 방법 spec: containers: - image: alpine name: alpine volumeMounts: - mountPath: /opt name: data-volume volumes: - name: data-volume hostPath: path: /data type: Directory위와 같은 방법으로는 여러 노드의 클러스터 구성에서 사용이 불가능하다. 각 호스트마다 데이터가 공유되지 않기 떄문이다. 실제 클러스터 환경에서 운영하려면 스토리지 솔루션을 사용해야 한다. NFS GlusterFS AWS EBS v..