본문 바로가기

분류 전체보기63

Chopin: Scherzo No.2 in B♭ minor / 연주회 후기 등록해서 다니고 있는 피아노 연습실에서 얼마 전에 소규모로 연주회를 하게 되었다. 연주를 하겠다고 결정한 순간부터 선곡하고, 연습하고, 또 연주를 마친 그 순간까지의 모든 과정이 쉽게 찾아오지 않을 기회이자 가치 있는 경험이라 생각해 미처 하지 못했던 이야기들을 전부 포함하여 후기를 남기려고 한다. Behind Story 5월에 연주회를 하겠다는 이야기를 아마 2~3월쯤에 들었던 것 같다. 그때는 사실 심각하게 생각하지 않았는데, 열심히 살다 보니 어느새 5월이 되어버렸고, 연주회에 대한 이야기가 다시 나오기 시작했다. 그리고 5월 12일, 연습실 단톡 방에 연주회를 할 예정이라는 공지가 올라왔다. 공지를 보고 이걸 해야 하나 말아야 하나 무척 갈등했지만, 이것도 다 경험이겠지 싶어서 한 번 해보는 게 .. 2021. 5. 23.
Chapter 10. StatefulSets: deploying replicated stateful applications 주요 내용 StatefulSet 에 대한 이해 Stateful application 배포하기 DNS SRV record 를 이용한 peer discovery 10.1 Replicating stateful pods 도입 질문: 각 pod replica 가 하나씩 PV 를 갖게 할 수는 없을까? ReplicaSet 의 pod template 에서 PVC (PersistentVolumeClaim) 를 사용하게 되면, 모든 replica 가 하나의 PV (PersistentVolume) 을 참조하게 된다. 그래서 하나의 ReplicaSet 으로는 distributed data store 를 만들 수 없다. 지금까지 살펴본 API object 만으로는 조금 복잡하다. 10.1.1 Running multiple r.. 2021. 5. 17.
평행선의 성질 지난주, 동생이 내게 질문했다. 형, 엇각이 같으면 두 직선이 평행해? 당연하다. 중학교 때 그렇게 배웠으니까. 하지만 다음 질문은 며칠을 고민하게 만들었다. 왜? ...... 기억이 안 난다. 이유를 배우긴 했나? 이 글에서는 다음을 논증 기하의 방식으로 밝히고자 한다. 직선 \(l\) 이 두 직선 \(m, n\) 과 각각 한 점에서 만날 때, (1) \(m \parallel n\) 일 필요충분조건은 동위각이 같은 것이다. (2) \(m \parallel n\) 일 필요충분조건은 엇각이 같은 것이다. 우선 둘 중 하나가 참이면 나머지 하나는 맞꼭지각의 성질에 의해 자동으로 참이다. 조금 찾아보니, 굉장히 직관에 의존하는 설명들이 많았다. 겹치면 포개진다, 평행하니까 당연히 각이 같을 것이다, 동위각이 .. 2021. 5. 5.
1년 뒤 다시 찾아본 인터넷 편지 사이트 이 글은 작년에 쓴 글 [육군훈련소에서 인터넷 편지 편하게 받기] 이후의 이야기입니다. 육군훈련소에서 인터넷 편지 편하게 받기 2020년 5월 14일부터 6월 11일까지 육군훈련소에서 기초군사훈련을 받았다. 입소하게 되면 인터넷 편지만큼 재미있는 것이 없다던데, 육군훈련소 훈련병에게 인터넷 편지를 보내는 방법은 생각보 calofmijuck.tistory.com 어느새 훈련소를 다녀온지도 1년이 지났다. 인터넷 편지 사이트를 운영했던 서버에 들어가 보니 cron 으로 돌려놓았던 인편 프로그램은 여전히 자신의 본분을 다하며 하루에 한 줄씩 로그를 꾸준하게 찍고 있었다. 그동안 참 많은 일이 있었다. 내가 훈련소에 다시 들어갈 일은 특별히 없을 것이기에, 솔직히 말하면 잊고 지냈던 프로젝트이긴 하다. 급하게 .. 2021. 5. 3.
Chapter 9. Deployments: updating applications declaratively 주요 내용 Deployment 를 사용하여... 무중단 배포를 하는 방법 롤백하는 방법 9.1 Updating applications running in pods 만약 서비스/앱을 업데이트하고 싶다면 2가지 방법이 있다. Pod 를 모두 지운 후, 업데이트 된 pod 로 새롭게 시작 새로운 pod 를 시작한 뒤 새로운 pod 가 요청을 처리할 준비가 되면 기존 pod 를 지운다. 두 방법 모두 장단이 있다. 1번의 경우 잠시 서비스가 중단된다는 문제가 있고, 2번의 경우 배포 중에 2가지 버전의 서비스가 동시에 존재하게 되므로 이를 잘 처리하기 위해서 서비스/앱 단에서 처리해줘야 한다. (하위 호환성) 9.1.1 삭제 후 새롭게 생성 ReplicationController / ReplicaSet 의 경우.. 2021. 4. 30.
Chapter 8. Accessing pod metadata and other resources from applications 주요 내용 Pod 나 컨테이너의 metadata 를 전달하는 방법 컨테이너 안의 앱이 Kubernetes API 와 통신하고 클러스터의 리소스를 생성/수정하는 방법 8.1 Passing metadata through the Downward API 앱의 config data 는 pod 생성 전에 결정되기 때문에 환경 변수나 configMap, secret volume 을 이용해 전달할 수 있었다. 하지만 pod 가 시작 되어야 알 수 있는 정보들도 있다. (Pod IP, 실행 중인 노드의 이름, pod 자체의 이름 등) 이런 정보를 얻기 위해서 Downward API 가 존재하며, 이 API 를 호출하면 pod 나 실행 환경과 관련된 정보를 얻을 수 있다. 얻은 정보는 환경 변수로 전달되거나, downwa.. 2021. 4. 18.
Chapter 7. ConfigMaps and Secrets: configuring applications 거의 대부분의 앱은 설정(configuration)이 필요하다. 개발 서버, 배포 서버의 설정 사항 (접속하려는 DB 서버 주소 등)이 다를 수도 있고, 클라우드 등에 접속하기 위한 access key 가 필요하거나, 데이터를 암호화하는 encryption key 도 설정해야하는 경우가 있다. 이러한 경우에 해당 값들을 도커 이미지 자체에 넣어버리면 보안 상 취약하고, 또 설정 사항을 변경하는 경우 이미지를 다시 빌드해야하는 등 불편함이 따른다. 이번 장에서는 Kubernetes 에서 돌아가는 어플리케이션에 설정 사항을 넘겨주는 방법을 알아본다. 7.1 컨테이너화 된 어플리케이션 설정하기 보통 어플리케이션의 설정 사항을 관리할 때에는 configuration file 이 존재하게 된다. (.propert.. 2021. 4. 18.
Chapter 6. Volumes: attaching disk storage to containers 컨테이너가 재시작되면 기존 작업 내역이 모두 사라지게 될 수 있으므로, 컨테이너의 작업 내역을 저장하고 같은 pod 내의 다른 컨테이너가 함께 사용하는 저장 공간이다. 6.1 Introducing volumes Pod 의 한 구성 부분으로 pod spec 에 정의되어 있다. 또 standalone Kubernetes object 가 아니라서 독립적으로 생성되거나 삭제될 수 없다. Pod 내의 모든 컨테이너로부터 접근이 가능하지만, 그렇게 하려면 mount 해줘야 한다. 6.1.1 Volume 예시 6.1.2 Available volume types 종류가 굉장히 많은데, 다 알지는 않아도 괜찮다고 한다. Volume types emptyDir: 빈 폴더로 일시적인 데이터 저장에 사용 hostPath: 노.. 2021. 4. 7.
Chapter 5. Services: enabling clients to discover and talk to pods 많은 앱들이 request (요청) 을 받아 서비스를 제공하는 형태인데, 이런 요청을 보내려면 IP 주소를 알아야 한다. 한편 Kubernetes 를 사용하게 되면 pod 의 IP 주소를 알아야 하는데, Kubernetes 의 pod 들은 굉장히 동적이므로 이들의 IP 주소를 알아낼 방법이 필요하다. Pod 들은 스케쥴링 되고 스케일링 되기 때문에 IP 주소가 자주 바뀔 수 있으며, pod 가 시작된 후 IP 주소가 할당될 뿐만 아니라, 하나의 서비스를 위해 pod 를 여러 개 사용하는 경우 하나의 IP 를 사용하여 여러 개의 pod 에 접근할 방법이 필요하다. (쿠버네티스를 사용하지 않으면 고정 IP 등을 사용하거나 따로 설정된 주소로 요청이 가도록 했을 것이다) 5.1 Services 소개 Servi.. 2021. 4. 7.