목록배포 (53)
개발놀이터
쿠버네티스는 쿠버네티스와 관련된 명령어를 사용할 때 마스터 노드에 존재하는 API Server를 지나가게 되어있습니다. 하지만 어떤 곳에서든 kubectl같은 명령어를 사용할 수 있다면 이는 보안적으로 좋지 못하겠죠? 이번 포스팅에선 쿠버네티스가 어떤 인증 체계를 가지고 있으며 어떻게 권한에 접근하게 하는지에 대해서 공부한 내용을 정리해보도록 하겠습니다. Kubernetes API Server쿠버네티스의 API Server에 접근하기 위해서는 HTTPS로 접근해서 인증서가 존재하는 경우에만 접근하게 할 수 도 있고, 마스터 노드에서 사용할 수 있는 kubectl에 프록시를 연결해서 HTTP로 연결하는 방법도 있습니다. 만약 쿠버네티스 클러스터를 여러개 운영하고 있다면 모든 쿠버네티스 API Serve..
이번 포스팅은 쿠버네티스의 저장소 볼륨입니다. 파드가 컨테이너를 가지고 애플리케이션을 구동한다면 볼륨은 그 애플리케이션이 사용할 각종 파일들이나 정보들을 저장해놓는 공간입니다. 파드, 서비스만 하더라도 굉장히 굵직한 기능이었는데 다른 기술이었으면 파드와 서비스로 실서비스를 할 수 있는 정도일겁니다. 그런데 쿠버네티스 이놈은 이런 오브젝트들이 수십개가 있습니다. 정말 미X놈이 아닐 수가 없습니다. 이번 포스팅에선 그 중에서 볼륨에 대해서 공부하고 정리해보겠습니다. Volume (볼륨) 볼륨에는 EmptyDir, HostPath, PV / PVC 이렇게 세가지가 존재합니다. 하나씩 한번 살펴보도록 하겠습니다. EmptyDirEmptyDir은 파드 안에서 각각의 컨테이너가 공통으로 바라보는 저장소로서 ..
이번 포스팅은 쿠버네티스의 꽃인 파드와 짝을 이루는 서비스입니다. 서비스는 파드를 외부로 노출시켜주는 역할을 하게 되는데, 앞선 쿠버네티스 이론 : 파드 편에서 잠시 언급했지만 라벨을 이용해서 파드와 연결합니다. 이는 노드에 들어있는 파드들 중에 노출되면 안되는 파드도 있기 때문에 (e.g. 데이터베이스) 보안상 지정된 파드만 외부와 연결할 수 있습니다. 서비스에는 크게 Cluster IP, Node Port, LoadBalancer 이렇게 세 가지 타입이 있습니다. 각 타입은 특징이 뚜렷해서 어느 것이 어떤 상황에서 쓸지 명확하게 구분할 수 있습니다. 그럼 본격적으로 시작해보죠! Service (서비스)서비스에는 Cluster IP, Node Port, LoadBalancer 이렇게 세 가지 타입..
이번 포스팅에는 파드에 대해서 더 자세히 알아보도록 하겠습니다. 이번 포스팅은 생명주기, Probe, QoS class에 대해서 정리해봤습니다. 파드의 생명주기파드의 상태에는 파드의 전체적인 상태를 나타내는 Phase가 있고 세부적인 상태를 나타내는 Condition이 있습니다. 그리고 파드안에는 컨테이너가 여러개 들어가있고 이 컨테이너들의 상태를 볼 수 있는 State라는 속성이 있습니다. 파드의 전체적인 상태를 나타내는 Phase에는 Pending, Running, Succeeded, Failed, Unkown 이렇게 다섯가지가 있습니다. Pending : Pending은 파드의 최초 상태입니다. 이때 파드를 구동하기위해 필요한 작업을 진행합니다. 1. 컨테이너의 초기 상태를 세팅하기 위해 in..
이번 포스팅에선 쿠버네티스의 파드에 대해서 공부한 내용을 정리해보도록 하겠습니다. 파드 (Pod)파드란 쿠버네티스가 관리하는 최소 배포 단위입니다. 최소 배포 단위라는 것은 파드를 기준으로 애플리케이션을 구동한다는 의미입니다. 파드 안에는 여러개의 컨테이너가 들어갈 수 있고 이 컨테이너 하나하나가 애플리케이션이 됩니다. 쿠버네티스가 파드를 이용해서 컨테이너를 묶음으로 관리하는 것은 사용자의 니즈를 파악한게 아닐까 싶네요. 어떤 애플리케이션이던 혼자서 단독으로 돌아가는 애플리케이션은 실 사용 서비스에선 있을 수 없는 일이죠. 하다못해 스프링부트만 하더라도 단독으로 내장톰캣을 이용해서 사용할 수 있지만 결국 HTTPS를 사용하려면 NGINX같은 웹서버가 있어야하고 정상적인 서비스라면 데이터베이스와 연..
이번에 공부한 것은 AWS SQS인데 SQS를 공부하려면 SNS도 같이 공부할 수 밖에 없더라구요. 이번 포스팅에선 AWS SQS와 SNS를 전체적으로 훑어보면서 다른 메세지 브로커와 어떤 점이 다른지 공부해보고 정리했습니다. AWS SQS만 가지는 강력한 특징SQS는 Simple Queueing Service (이하 SQS) 의 약자로 메세지를 큐에 담아서 보내는 여타 메세지 브로커와 비슷합니다. 하지만 SQS가 메세지 브로커냐? 하면 SQS만으로는 메세지 브로커라고 하기 조금 애매할 것 같습니다. 왜냐하면 SQS는 정말 말 그대로 메세지 큐잉 서비스이기 때문입니다. 여타 전통적인 메세지 브로커들처럼 Pub/Sub 구조를 가지고 있지 않다는 얘기입니다. 이게 왜 메세지 브로커와 다르냐면 SQS는..
클라우드는 지난 10년동안 개발자들의 삶에 깊숙히 녹아들었습니다. 이번 포스팅에선 클라우드로 개발되지 않은 환경을 찾는게 힘들게 될 정도로 깊숙히 자리잡은 배경에 대해서 공부한 내용을 공유해보고자합니다. 클라우드의 특징클라우드의 특징은 크게 성능, 확장성, 가용성, 같은 클라우드 서비스간 통합 이렇게 네가지 키워드로 정리해볼 수 있을 것 같습니다. 하나씩 살펴볼까요? 성능클라우드가 성능을 논하는게 이상하다고 느끼실 수도 있을 것 같습니다. 보통 클라우드를 떠올리면 확장성과 가용성을 먼저 떠올리곤 하니까요. 하지만 클라우드를 이용함으로써 일반적으로 따로 구성하는 것 보다 더 높은 성능을 끌어올릴 수 있습니다. 1. 하드웨어 최적화클라우드는 하드웨어를 관리해주다보니 해당 서비스에 최적화된 하드웨어를 ..
리눅스에선 rm 명령어를 이용해서 파일이나 폴더를 삭제합니다. rm -f deploy.sh파일 삭제rm -rf deploy폴더 삭제 근데 문제는 이제 진짜 컴퓨터에서 완전히 삭제된다는 것입니다. 개인적으로 너무 위험해보여서 윈도우처럼 휴지통으로 이동하는 기능이 있으면 좋겠다싶었습니다. 찾아보니까 alias라고 별칭을 만들어주는 기능이 있어서 그 기능을 이용해서 그 기능을 한번 적용해서 안전장치를 하나 둬보겠습니다. Alias리눅스에선 자신이 많이 사용하는 명령어를 alias로 만들 수 있습니다. alias를 사용하는 방법은 두가지 방법이 있습니다. 현재 사용자만 alias 등록모든 사용자의 alias 등록먼저 현재 사용자의 alias를 등록해보겠습니다. 현재 사용자 alias 등록현재 사용자..
리눅스에는 파일 혹은 폴더에 권한을 부여하고 관리할 수 있습니다. 정확히는 유닉스라고 해야겠네요. 이번 포스팅에선 파일 혹은 폴더에 권한을 부여하고 관리하는 방법에 대해서 공부한 내용을 정리해보도록 하겠습니다. 파일, 폴더 권한 부여파일, 폴더에 권한을 부여하는 방법에는 두가지 방법이 있습니다. 777과 같이 숫자로 부여하는 방법과 u+x와같이 문자로 부여하는 방법입니다. 먼저 숫자로 부여하는 방법에 대해서 알아보도록 하겠습니다. 기본적으로 파일이나 폴더를 만들면 상태는 rwxr-xr-x입니다. 폴더를 소유한 ec2-user와 폴더를 소유한 그룹인 ec2-user는 이 파일에 대한 권한을 나눠받습니다. 소유자인 ec2-user는 읽고, 쓰고, 실행할 권한이 있고, 그룹인 ec2-user는 읽고..
저는 현재 소규모 스타트업에서 일하고 있는데요. 회사에서 큼직하지 않은 잡다한 인프라 담당을 겸하고 있습니다. 사용자 권한 관리하고 서버 내리고 올리고 라우팅이나 포트 관리하고 이런 서버관리 업무가 제 업무에 포함되어있습니다. 그러다보니 평소에 안그래도 부족했던 리눅스관련 지식이 더 티가 잘나더군요... 그래서 이번 기회에 리눅스 명령어부터 리눅스 커널에 대해서 좀 공부를 할 생각입니다. 평소의 제 방식처럼 일단 사용법부터 들이박아보고 이론은 조금 시간이 지나고 배워보도록 하겠습니다. 리눅스 사용자 추가서버 컴퓨터는 대부분 리눅스로 되어있습니다. 보통 제가 프로젝트를 할 때는 AWS에서 제공해주는 기본 사용자를 사용하곤 했었죠. 회사에선 개발전용 사용자가 있고 루트 사용자가 있더군요. 이 사용..