IT/Kubernetes 7

[Kubernetes] kubectx를 활용해서 멀티 클러스터를 관리하자

Prologue 사내에서 사용하던 클러스터가 1개라 그동안은 멀티 클러스터 관리에 그다지 관심을 두지 않았습니다. 하지만 개발용 클러스터와 실사용 클러스터를 분리하고 제 로컬에 있는 데스크탑 클러스터까지 사용하게 되다보니 이제는 멀티 클러스터 관리의 필요성을 절실히 느끼게 됐는데요. 로컬에서 작업을 할 때 빈번히 클러스터의 전환이 필요했고 더불어 네임스페이스의 전환도 필요했습니다. 매번 -n blahblahblah 를 타이핑하는 건 수고로운 일이니까요. 오늘 포스트에서는 kubectx를 이용한 클러스터 간 전환을 간편하게 만들어보는 작업을 해보겠습니다. kubectx kubectx는 클러스터 간의 전환을 쉽고 빠르게 할 수 있게 해주는 플러그인입니다. v0.9.0 이전까지는 bash를 이용해 구현되었고,..

IT/Kubernetes 2021.06.13

[Kubernetes] Kubernetes 인증서가 만료되었을 때 해결 방법

Prologue 언제나처럼 kubectl 을 사용하려는데 다음과 같은 에러가 발생했습니다. '어이쿠 인증서 문제네...' 하면서 생각해보니, 이 클러스터를 구축해둔지 벌써 1년이라는 시간이 지났더군요. 갱신을 한 번은 해줬어야 했는데 깜빡하고 있던게 화근이었습니다. Unable to authenticate the request due to an error: x509: certificate has expired or is not yet valid 인증서 만료일 확인 $ cd /etc/kubernetes/pki $ openssl x509 -in apiserver.crt -noout -dates $ openssl x509 -in apiserver-kubelet-client.crt -noout -..

IT/Kubernetes 2021.06.07

[Kubernetes/Harbor] Docker-Compose를 이용해 Harbor 배포하기(HTTPS 지원)

Prologue 사내에서 자체적으로 운용할 Private Container Registry가 필요해서 초기에는 간단하게 Docker에 docker-registry 이미지를 이용해 아주 간단한 형태로 배포해서 사용하고 있었는데요. UI를 붙여보았지만, 너무 심하게 단순한 정보만을 제공하고 있었고, 무엇보다도 유저 관리가 불가능했습니다. 이렇다 보니, 외부 개발자 분들과 소통할 때, Registry 접근을 위해 사내에서만 사용하는 계정 정보가 쉽게 노출되는 등의 문제가 많았습니다. 이런 불편함을 해소하기 위해 이것 저것 조사하다, 가장 활발하게 발전하고 있는 이 프로젝트를 발견했습니다. Harbor Harbor는 기존 docker-registry와는 달리 policy와 role 기반으로 access를 제어(..

IT/Kubernetes 2021.05.27

[Kubernetes] Helm으로 Statefulset의 spec upgrade가 안 되는 경우

[Kubernetes] Helm으로 Statefulset의 spec upgrade가 안 되는 경우 Helm으로 배포한 패키지에 statefulset이 있으면, helm upgrade 명령을 사용했을 때 오류가 날 가능성이 있습니다. 특정 파드의 리소스 제한을 걸지 않아서, 배포 이후에 제한을 걸기 위해 values.yaml을 업데이트 하고 helm upgrade를 수행했는데, statefulset이 지원하지 않는 업데이트라는 에러를 뿜뿜하더군요. 분명 자원은 spec.template.containers.resources에 있으니까, 이걸 수정한다고 해서 statefulset이 업데이트 할 수 없다고 나오는 건 분명히 버그였습니다. 수소문 해보니 저와 같은 현상을 겪었던 분들이 많이들 계셨고, 찾아낸 해법..

IT/Kubernetes 2021.05.12

[Kubernetes] CKA (Certified Kubernetes Administrator) (v1.19 기준) 시험 후기

3줄 TL;DR - 시험 구매는 할인을 많이 할 때.. - 시험공부는 Udemy에서... - Imperative 명령어는 사드세요... 제발... 후기 및 시험 준비 과정 지난 20년 12월 31일, 작년의 마지막을 Kubernetes와 함께 하겠다는 마음가짐으로 CKA 시험을 치르게 되었다. 비싼 시험 비용을 지불했기 때문에 꼭 붙어야 한다는 생각이 컸다. 특히 시험의 기준 버전이 v1.18에서 v1.19로 올라 v1.18에서 쓰인 후기들은 많이 봤지만 v1.19 후기가 별로 없어 v1.20으로 오르기 전에 빨리 쳐야 할 것 같은 압박감 아닌 압박감을 느끼고 있던 중이었다. 내 경우, 20년 블랙 프라이데이가 끝나고 찾아온 Cyber Monday 때 할인을 받아, CKA+LF Training cours..

IT/Kubernetes 2021.01.16 (5)

[Kubernetes] Kubernetes와 Docker (Kubernetes v1.20)

Kubernetes가 v1.20 업데이트 이후로 Docker를 Deprecate 하기로 결정했다. (출처 : https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#deprecation) Deprecate Dockershim #94624 정확히 말하자면, Kubelet에서 Dockershim의 지원이 Deprecation 된 것이다. Kubernetes는 CRI (Container Runtime Interface) 인터페이스를 통해 컨테이너 런타임과 통신한다. CRI는 컨테이너 런타임과의 인터페이스 표준(API)을 정의한 것으로, Kubernetes CRI를 지원하면, 엔드 유저 입장에선 지금까지 써오던 Kubern..

IT/Kubernetes 2020.12.22

[Kubernetes] Kubernetes Plugin Manager - Krew

쿠버네티스 플러그인 관리자 Krew 쿠버네티스를 사용하다보면 다양한 정보를 확인하기 위해 kubectl 명령어를 잘 활용해야 합니다. 또, 특정 인자를 반복적으로 넘겨주어야 하는 때도 있습니다. 대표적으로 특정 네임스페이스에 속한 자원을 관리할 때 사용하는 -n 인자가 있겠네요. 이렇듯 같은 행동을 진부하게 반복하게 되니 영 불편합니다. 이런 문제는 어떻게 해소할 수 있을까 열심히 구글링을 한 결과, 역시 저 말고도 이런 문제에 불편함을 느끼고 이를 해결하기 위해 이미 플러그인을 개발하신 형님들이 계셨습니다. 예를 들어 방금 전에 소개한 불편함은 프롬프트를 특정 네임스페이스를 가리키도록 설정해놓고 네임스패이스의 변경이 필요할 때만 해당 플러그인을 통해 변경하면 되는 식으로 해결할 수 있더군요. 이처럼 우..

IT/Kubernetes 2020.07.23
반응형