Kubernetes(14)
-
Kuberenetes 자격증 CKA 합격 후기
2022년 4월 16일 오후 4시 30분에 CKA 시험을 보고 80점으로 합격했다. 공부를 시작한 것은 올해 2월 말이고 모든 사람이 참고했다는 그 전설의 강의 마샴 하메드의 Udemy 강의를 들었다. 이전에 쿠버네티스를 사용해본 경험은 딱히 없고 Udemy에서 도커 강의를 한 개 들었다. 도커에 대해서도 자세히는 알지 못하지만 간단하게 이미지 만드는 방법, 돌아가는 원리 등에 대해서 얕은 수준의 개념을 알고 있었다. 쿠버네티스를 회사에서 사용하는데 너무나 아는게 없어 벽을 느껴서 자격증을 따야겠다는 결심을 하게 되었다. 마샴 하메드의 Udemy 강의를 들어보면 생각보다 그렇게 어려운 내용이 많지는 않다는 것을 알 수 있는데, 여러 번 반복하다보면 손에 익는다는 것을 알 수 있다. Role, RoleBi..
2022.04.25 -
Kubernetes - Network Policy
쿠버네티스를 공부하다 보면 네트워크를 관리 하기 위해서 Network Policy라는 Object를 사용할 때가 있다. 기본적인 Object 들을 생각해보면 Network Policy는 상당히 생소한 Object이다. Network Policy는 내부 Pod, Service들 끼리 통신하는데 규칙을 정하는 것이다. Network Policy는 OSI 3계층, 4계층에서 트래픽을 통제할 수 있다. 크게는 Ingress, Egress로 나눠져 있고 어느 pod에서 어느 pod으로는 통신이 가능하고 pod에서 pod으로는 통신이 불가능할지 설정할 수 있다. 또 같은 포트이지만 내부에서는 외부로 못나가고 외부에서 내부로 들어올 수 있게 설정할 수도 있다. 좀 더 안전하게 내부 통신을 하기 위해서 default ..
2022.04.09 -
Kubernetes - Resource Limit
쿠버네티스도 물리서버 위에 결국에는 올라가는 것이기 때문에 리소스에 제한이 있다. 이를 위해 Pod에 컨테이너가 필요한만큼의 리소스를 제한할 수 있다. 가장 흔하게 제한하는 리소스 종류는 CPU, Memory, Disk이다. 리소스 제한에는 Request와 Limit이라는 용어가 있다. Request는 컨테이너가 필요한 최소한의 리소스를 의미한다. 예를 들어 Memory Requestf를 500mb로 설정한다면 최소 500mb는 보장 받고 그 이상의 메모리를 사용할 수 있게 된다. 여기다가 Limit을 걸어주면 그만큼만 딱 사용할 수 있게 되는 것이다. Kubelet이 container를 지켜보면서 limit을 넘지 않게 컨트롤한다. 만약 메모리를 Limit 이상으로 사용하려고 하면 Out of memo..
2022.04.08 -
Kubernetes - Node Affinity
지난 포스팅에서는 Taints와 Toleration에 대해서 알아보았다. Taints & Toleration은 Taints를 버텨낼 수 있는 Pod만 해당 Node에 스케쥴 될 수 있고 나머지는 다 다른 Node에 스케쥴 되기 때문에 방어적인 성격을 가지고 있었다. 이와 반대라고 하기 까지는 애매하지만 Node Affinity는 특정 label을 가진 Node로 스케쥴 되기 때문에 상대적으로 공격적인 성향?을 가지고 있다고 봐도 좋을 것 같다. 상대적으로 본다는 가정하에 말이다. 공식 문서에 따르면 다음과 같은 방법으로 NodeAffinity를 사용할 수 있다. Label을 노드에 설정하고 Pod에서 해당 Label을 찾아서 스케쥴되는 형식이다. Taints와 다르게 상당히 깊은 depth의 설정을 가지..
2022.04.07 -
Kubernetes - Node 업그레이드 방법
쿠버네티스를 사용하다보면 노드를 최신버전으로 업그레이드가 필요할 때가 있다. 사실 필요할 때 라기보다는 소프트웨어를 최신버전으로 업데이트 하는 것이 보안적으로도 좋고 다양한 이점이 있다. 물론 업그레이드를 했다가 버전 충돌이 나서 다시 롤백하는 경우도 있긴 하지만,, 어쨌든 오늘은 쿠버네티스 노드들을 업데이트하는 방법에 대해서 알아보고자한다. 다른 소프트웨어들은 현재 버전이 v1.0이고 최신 버전이 v3.3이라면 바로 v3.3으로 업데이트를 하는 방법을 많이 사용한다. 그런데 쿠버네티스는 v1.0 -> v2.0 -> v3.0으로 순차적인 순서로 업데이트 하는 것을 권장하고 있다. 사실 권장이라기보다는 이렇게 해야하는 것 같다. 그 이유는 정확히는 모르겠지만 업데이트 할 때 기존 코드와 충돌이 날 가능성이..
2022.04.02 -
Kubernetes - Taints and Toleration
K8S를 공부하다보면 이런 기능들이 있었어라는 기능들이 있다. 그 중에 하나가 이름부터 뭔가 처음보는 영어인 Taints 그리고 많이 봤지만 뭘 견뎌낸다는 건지 가늠할 수 없는 Toleration이 있다. 처음 이 기능들의 이름을 보고 쫄았지만 사실 알고보니 크게 어려운 개념은 아니었다. Taints는 한국말로 오염되다, 더러운 같은 뜻이다. Toleration은 인내, 관용 같은 뭔가를 참아낸다는 뜻이다. Taints와 Toleration은 Kubernetes에서는 Pod의 스케쥴링에서 사용되는 개념이다. 위 사진을 보면 3개의 노드가 있고 각각의 노드는 빨강, 노랑, 파랑으로 taint 되어있다. 즉, 각각의 색깔별로 오염이 돼있다는 뜻이다. Pod을 보면 빨강색에 Toleration을 가지고 있다...
2022.03.31