Kubernetes

Kubernetes 인증서 업데이트

오랫동안 쿠버네티스를 사용하지 않아, 쿠버네티스(Kubernetes) 가 사용 불능상태에 있었다. 원인은 인증서 만료 때문이었는데, 어떻게 다시 인증서를 업데이트하고 사용가능 상태로 만드는지 기록해 둔다. 증상 증상은 다음과 같다. kube-apiserver 의 로그는 다음과 같다. 해결책 마스터 노드 복구 인증서를 갱신해주면 된다. 다음과 같이 확인과 갱신을 할 수 있다. 이걸로 끝이 아니다. K8S 는 각종 설정 파일에 인증서를 포함시켜놨다. 그래서 이 설정 파일들도 재 생성을 해야 한다. 이제 kubectl 명령어가 사용하는 config 파일을 갱신해준다. 마스터 노드의 기존 PKI 캐시 정리 및 Kubelet 재시작해줘야 한다. […]

Kubernetes

Kubernetes 1.37 바뀐 것

쿠버네티스(Kubernetes) 1.37 이 지난 2026년 8월 26일에 릴리즈됐다. 간단히 바뀐 것에 대해서 알아 본다. cgroup v1 영구 퇴출 이제 cgroup v1 이 영구 퇴출 됐다. 이 환경에서 kubelet 을 구동하면 ‘Refuse to Start’ 메시지를 보게 된다. 이 제약 조건은 결국 리눅스 OS 배포판 최소버전을 정의하게 된다. 쿠버네티스 1.37 을 쓰기 위한 최소 리눅스 배포판은 다음과 같다. RHEL 8 에서도 사용이 가능하지만, 커널 패치를 하면 가능해 지지만 커널 패치라는게 아무나 가능하지 않다. 그래서 RHEL 9를 쓰는게 마음편하다. RHEL 7 은 답이 […]

Kubernetes

쿠버네티스 Config 알아보기

쿠버네티스를 사용하면서 가장 중요하지만 잘 모르는 부분이 config 내용이다. 이 내용에 대해서 알아보자. kubeconfig 쿠버네티스를 설치하면 다음과 같은 파일이 설치된다. 이 파일은 이제 쿠버네티스에 설정을 담은 파일이다. 이 파일에는 쿠버네티스를 사용하기 위한 kube-apiserver 접속 주소와 인증 정보를 가지고 있다. 이 파일만 있으면 어떤 계정에서도 접속하는데 사용할 수 있다. 일반 계정에서 kubectl 사용하기 kubectl 명령어는 이 파일을 참조 하는데, 일반계정에서 사용하기 위해서는 다음과 같이 해주면 된다. 로그인 시에 자동으로 적용하기 위해서 .bashrc 파일에 다음과 같이 추가해준다. 쿠버네티스 정보 확인 쿠버네티스 정보를 […]

Kubernetes

Ingress-Nginx 설치

Kubernetes 에서 인기있는 Ingress Controller 로 Nginx 가 있다. 설치는 Helm 을 이용하면 된다. 설치 명령어를 보면, 여러가지 파라메터가 보이는데 kube-prometheus-stack 으로 설치한 prometheus 까지 고려한 것이다. 관련 명령어나 파라메터는 다음의 주소에 매우 잘 설명되어 있어서 별도로 추가설명은 하지 않는다.

Kubernetes

kube-prometheus-stack 설치

기존에 prometheus 설치를 했었는데, 버전을 올릴겸해서 다시 설치를 했다. 설치는 Helm 을 이용했고, 기존에 설치된 버전을 삭제 처리 했다. 환경 K8S 환경이 매우 중요하다. 필자의 환경은 Handy way 방법으로 설치를 진행한 상황이기 때문에 etcd, apiserver, scheduler 가 OS 데몬으로 운영되고 있다. 따라서 Master, Worker 노드의 IP 를 필요로 한다. 만일 kubeadm 으로 설치했다면 selector 를 이용해서 라벨을 선택해주면 된다. 삭제 Helm 을 이용해서 설치했기 때문에 Helm 으로 삭제를 해야 한다. 여기서 한가지 주의해야 하는 것이 있는데, Helm 으로 삭제를 하여도 […]

Kubernetes

K8S dnstools 사용하기

K8S 를 사용하다보면 여러가지 검증을 위해 Pod 를 필요로 하는 경우가 있는데, dnstools 이 유용하다. 다음과 같이 사용할 수 있다. Pod 가 생성되면서 dnstools 컨테이너에 진입하게 되고 exit 를 하게 되면 Pod 는 삭제된다. 혹은 curl 이미지를 이용하는 방법도 있다.

Kubernetes

Metallb v0.14.9 설치

과거 Metallb 의 버전이 0.10 이였고 K8S 버전도 1.32 이여서 최신 버전으로 다시 설치를 해봤다. 환경 K8S 환경에서 설치를 하지만 CNI 등을 고려해 설치를 진행해야 한다. 내가 설치한 환경은 좀 더 특이한데, K8S 를 Hand Way 방법으로 설치한 상태다. Hand Way 로 설치를 하게 되면 Kube-apiserver, controller, kubelet, kube-scheduler, kube-proxy 같은 것을 컨테이너 방법이 아닌 OS 프로그램 방법으로 설치를 하게 된다. K8S 에서 사용하는 인증서도 수동으로 해줘야 한다. 요약하면 다음과 같다. 다운로드 다운로드는 CURL 이나 WGET 명령어를 이용하면 된다. 설치 […]

Kubernetes

kubeadm join 시 discovery-file 이용하기

새로운 Worker 노드를 추가하기 위한 문법은 대략 다음과 같다. 그런데, token 값은 시간이 지나면 만료되 사용할 수 없게 된다. 설사 token 을 알아도 ca-cert-hash 값을 알아야 한다. 이를 위해서 K8S 의 루트 CA 인증서를 이용해 hash 값을 알아내는 명령어를 사용한다. Discovery-file 만들기 하지만 이 방법외에도 discovery-file 을 이용하는 방법도 있다. 이는 kube-public 네임스페이스에 ConfigMap 에서 cluster-info 의 정보를 가지고 오면 된다. 다음과 같다. 위 파일을 추가하고자 하는 새로운 Worker 노드에 복사해준다. Discovery-file 을 이용한 새로운 Worker 노드 추가 이제 discovery-file […]

Kubernetes

쿠버네티스, 새로운 Worker 노드 Join 시 토큰 값 확인하기

쿠버네티스(Kubernetes) 를 운영하다가 새로운 Worker 노드를 추가할때에 kubeadm 명령어와 함께 join 옵션을 함께 쓴다. 이때 token 값과 hash 값을 줘야 하는데, 최초 설치할때에 값을 출력해주지만 시간이 지나서 잃어버리면 어떻게 해야 할까.. Token 확인 불행하게도 Token 값은 영구적이지 않다. 어디다 잘 적어놨어도 시간이 지나면 자동으로 폐기되도록 되어 있다. 아무것도 안나온다. 이는 자동 폐기 됐기 때문이다. Token 생성 Token 값을 확인할 수 없다면 새로운 worker 노드를 추가할 수 없다. 아니, 정확하게는 Token 값을 이용해 추가할 수 없다. Token 값을 이용하기 위해서는 새로운 […]

Kubernetes

Kubernetes 관련 기술 스택..

쿠버네티스 관련된 기술들이 워낙 많다보니 뭘 어디서부터 손대야할지 모를때도 있고 하다보면 어디에 서 있는지도 모를때가 있다. 더 나가 쿠버네티스를 시작하려고할때에 이게 어디에 있는건지를 알고 싶을때가 종종 있는데, 웹 서핑을 하다가 주운걸 기록해본다. 딱봐도 채용공고에 내용인데, 굵직하게 정리가 되어서 긁어왔다. 여기서 한가지 추가해야 한다면 IaC 부분인데, 요새는 쿠버네티스에 뭔가를 설치할때는 다음과 같은 걸 많이 사용한다. ArgoCD 도 있지만 이것은 사실 애플리케이션 배포에 쓰인다고 보면 된다. 요새 하도 공부를 하지 않아서 잃어버리는 기억도 많고 이제는 쓰지 않는 기술들도 많은데, 슬슬 다시 공부를해야 […]