본문 바로가기

분류 전체보기63

Chapter 17. Best practices for developing apps 주요 내용 Kubernetes 리소스에 대한 전반적인 이해 Pod lifecycle hooks and init containers 17.1 Bringing everything together 일반적인 어플리케이션이 Kubernetes 위에서 배포될 때 어떤 형태로 하는지, 지금까지 살펴본 것들을 종합하여 알아본다. 일반적으로 어플리케이션을 배포할 때는 Deployment 또는 StatefulSet 을 반드시 사용하게 된다. 이들은 pod template 를 들고 있으며, 거기에는 liveness/readiness probe 가 모두 정의되어 있다. Service 를 이용해서 외부에서 pod 로 요청을 보낼 수 있도록 하고, 이 Service 는 LoadBalancer 또는 NodePort 타입이나 Ing.. 2021. 8. 15.
Chapter 16. Advanced scheduling 주요 내용 노드의 taint 와 pod tolerations Node affinity rules 사용 Pod affinity, anti-affinity 사용 16.1 Using taints and tolerations to repel pods from certain nodes Pod 가 특정 노드에 schedule 되기 위해서는 그 노드의 taint 를 tolerate 할 수 있어야 한다. 16.1.1 Introducing taints and tolerations Taint 는 key, value, effect 로 이루어져 있고, =: 로 표현된다. kubectl describe node [NODE_NAME] 을 해보면 Taints 항목에서 확인할 수 있다. 예를 들어 node-role.kubernete.. 2021. 8. 15.
Chapter 15. Automatic scaling of pods and cluster nodes 주요 내용 HPA 리소스 이해하고 사용하기 클러스터 노드의 automatic scaling 수동으로 scaling (수평) 을 하는 경우 ReplicationController, ReplicaSet, Deployment 등에서 replicas field 를 고쳐줘야 했다. 이번 장에서는 pod 나 노드의 상태에 따라 자동으로 scaling 하는 방법을 알아본다. 15.1 Horizontal pod autoscaling Horizontal pod autoscaling 은 Horizontal controller 가 pod 의 replica 수를 알아서 조절하는 것이다. 이 controller 는 HorizontalPodAutoscaler(HPA) 리소스를 생성하면 활성화 되며, 주기적으로 pod 의 metr.. 2021. 7. 18.
Chapter 14. Managing pods' computational resources 주요 내용 Pod requests/limits 설정, 동작 방식 및 scheduling 에 미치는 영향 Pod requests/limits 과 QoS class LimitRange resource, ResourceQuota object 각 pod 가 어느 정도의 자원(CPU/메모리)을 소모할지 파악하고, 이를 적절히 제한하는 것은 pod 정의에서 굉장히 중요한 부분이다. 14.1 Requesting resources for a pod's containers Pod 를 생성할 때 requests 와 limits 를 정할 수 있다. requests: 컨테이너가 필요로 하는 CPU와 메모리 양을 설정 limits: 컨테이너가 최대로 사용할 수 있는 CPU와 메모리를 설정 이는 각 컨테이너 별로 설정할 수 있으.. 2021. 7. 11.
2021 June 이 글을 쓴다는 것은 6월이 지났다는 것이고, 6월이 지났다는 것은 2021년이 벌써 절반 지났음을 의미한다. 우선 세웠던 이번 달 목표들의 달성률을 확인해야 한다. 6월 목표 🖥️ Computer Science: 전공 챙기기 Kubernetes in Action 스터디로 할 때에는 진짜 매주 한 챕터씩 읽었는데, 스터디가 마무리되고 다른 주제 (Golang) 로 넘어가면서 강제성이 사라지니까 안 보게 되었다. 그래도 1달 동안 3 챕터 정도는 보겠지 했는데, 2 챕터밖에 못 봤다 ㅋㅋ 업무에 계속 사용할 예정이니 계속 보긴 할 예정이다. Go 언어 스터디 Kubernetes 를 열심히 공부하지 못했던 주원인. 원래 Kubernetes 를 매주 했는데 이번 달에는 매주 Golang 을 보게 되었다. 얘는.. 2021. 7. 5.
Chapter 13. Securing cluster nodes and the network 주요 내용 노드의 default Linux namespace 사용하기 컨테이너/Pod 단위로 권한 및 네트워크를 제어하여 보안 수준 높이기 컨테이너는 독립적인 환경을 제공한다고 하긴 했지만, 공격자가 API server 에 접근하게 되면 컨테이너에 무엇이든 집어넣고 악의적인 코드를 실행할 수 있고, 이는 실행 중인 다른 컨테이너에 영향을 줄 수도 있다! 13.1 Using the host node's namespaces in a pod 컨테이너는 별도의 linux namespace 에서 실행된다고 했었다. 13.1.1 Using the node's network namespace in a pod 시스템과 관련된 작업 (노드 레벨의 자원을 확인/수정하는 등) 을 하는 pod 의 경우 노드의 default .. 2021. 6. 29.
Chapter 12. Securing the Kubernetes API server 주요 내용 Authentication 과 ServiceAccount 에 대한 이해 RBAC plugin, Role/RoleBinding, ClusterRole/ClusterRoleBinding 에 대한 이해 12.1 Understanding authentication API server 가 요청을 받게 되면, authentication plugin 을 거치며 요청을 보낸 주체가 누구인지 분석한다. Plugin 을 거치게 되면 username, user ID, 클라이언트가 속하는 group 등의 정보가 API server 에게 전달된다. 12.1.1 Users and groups Understanding users Kubernetes 에서는 API server 에 연결하는 주체를 2가지로 분류한다. 사람 .. 2021. 6. 6.
Chapter 11. Understanding Kubernetes internals 주요 내용 Kubernetes 클러스터를 구성하는 컴포넌트의 기능과 역할에 대한 이해 Pod 생성시 일어나는 일에 대한 이해 Kubernetes 내부 네트워크와 Service 의 동작 방식 이해 Kubernetes 리소스들이 어떻게 구현되었는지 살펴보자! 11.1 Understanding the architecture Kubernetes 클러스터는 다음과 같이 구성되어 있음을 1장에서 배웠다! Kubernetes Control Plane: 클러스터의 상태를 저장하고 관리한다 etcd distributed persistent storage API server Scheduler Controller Manager (Worker) Node(s): 실제로 컨테이너를 동작하게 한다 Kubelet Kubernetes.. 2021. 5. 30.
2021 April ~ May 거짓말같이 4~5월이 지나가 버렸다. 벌써 6월이라는 게 믿기지 않을 정도다. 얼마 전에 2021년이 40%가 지나갔다는 소식을 들었는데, 정말 충격적이다. 이번에도 회고가 2달치가 밀려버렸는데, 2~3월 때와는 달리 매일 기록을 남겨두지 않아서 무슨 일이 있었는지 상세히 기억이 나지는 않는다. 그저 회사에서 열심히 일을 했고, 피아노를 치러 다녔고, 개인적으로 공부도 좀 한 게 전부인 것처럼 느껴진다. 근데 피아노를 제외하고 나면 회사 일 하는 것과 공부하는 것은 패시브이기 때문에... Studies 따로 기록을 남긴 것은 아니지만 일단 무엇을 했는지 궁금하면 얼추 Github 커밋 내역을 보면 히스토리가 나온다. Kubernetes 책으로 Kubernetes 에 대해서 열심히 공부하고 있다. 4~5월.. 2021. 5. 30.