'데이터 엔지니어'로 성장하기

정리하는 걸 좋아하고, 남이 읽으면 더 좋아함

기타/K8S

Kubernetes) prometheus-statefulset 삭제 안됨 이슈_prom-operator

MightyTedKim 2022. 3. 16. 15:30
728x90
반응형

가끔 pod,pvc,ns 등이 제대로 지워지지 않을때가 있다.

 

pod는 --force로 지우면 되고 ns는 curl로 지우면 된다. pvc는 finalization을 주석하면 된다.


근데 prometheus 테스트할때, statefulset은 아무리 지워도 안지워진다.

$ kubectl delete statefulsets prometheus-prometheus -n monitoring --force --grace-period=0 --cascade=false

이렇게 지원도 자꾸 살아난다.

https://stackoverflow.com/questions/45965247/cant-delete-a-stateful-set-in-kubernetes 

 

Can't delete a Stateful Set in Kubernetes

I can't delete this Stateful Set in Kubernetes, even with --cascade=false so it doesn't delete the Pods managed by it. kubectl get statefulsets NAME DESIRED CURRENT AGE

stackoverflow.com

k get event -w 로 봐도 로그가 찍히지 않는다.

---

테스트계라고 ns 없이 만든 누군가.. 왜 그러셨나요. 뭔짓을 해도 안지워짐 ㅜㅜ

$ k get all
NAME                          READY   STATUS             RESTARTS   AGE
pod/prometheus-prometheus-0   2/3     ImagePullBackOff   1          15m
pod/prometheus-prometheus-1   2/3     ImagePullBackOff   1          15m

NAME                          TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
service/kubernetes            ClusterIP   10.233.0.1           443/TCP    190d
service/prometheus-operated   ClusterIP   None                 9090/TCP   15m

NAME                                     READY   AGE
statefulset.apps/prometheus-prometheus   0/2     15m

그러다가 찾음. 서비스로 prometheus-operated 가 자동으로 생성됨, 다른 ns에 prometheus-operated 가있지 않을까?

$ k get all -A | grep prometheus-operat
default                        service/prometheus-operated                       ClusterIP      None            <none>        9090/TCP                                                                     20m
kubesphere-monitoring-system   service/prometheus-operator                       ClusterIP      None            <none>        8443/TCP                                                                     190d
kubesphere-monitoring-system   deployment.apps/prometheus-operator               0/0     0            0           190d
kubesphere-monitoring-system   replicaset.apps/prometheus-operator-d7fdfccbf                0         0         0       190d

있다. 있어. 기존에 돌던걸 잠시 멈쳐주고 지움

k delete statefulset.apps/prometheus-prometheus 

지워짐. 왜 지워졌을까

$ k describe pod/prometheus-prometheus-0
Name:         prometheus-prometheus-0
Namespace:    default
Priority:     0
Node:         ***04/172.17*.**.***
Start Time:   Wed, 16 Mar 2022 14:51:32 +0900
Labels:       app=prometheus
              controller-revision-hash=prometheus-prometheus-5dc87bf8c5
              prometheus=prometheus
              statefulset.kubernetes.io/pod-name=prometheus-prometheus-0

프로메테우스 오퍼레이터가 뭔지 먼저 살펴봤다.

 

https://devocean.sk.com/search/techBoardDetail.do?ID=163168 

 

Prometheus Operator 로 설치하기(1)

 

devocean.sk.com

prometheus 띄워주는 아이라는거는 알았고, 다른 ns에 접근을 어떻게 했지.. role을 찾아보기로 함

$ k get sa
NAME                           SECRETS   AGE
prometheus                     1         137d
prometheus-operator            1         137d

$ k describe clusterrolebinding prometheus-operator
Name:         prometheus-operator
Labels:       app.kubernetes.io/component=controller
              app.kubernetes.io/name=prometheus-operator
              app.kubernetes.io/version=0.51.2
Annotations:  <none>
Role:
  Kind:  ClusterRole
  Name:  prometheus-operator
Subjects:
  Kind            Name                 Namespace
  ----            ----                 ---------
  ServiceAccount  prometheus-operator  default

우씨. clusterrole에 넣어놨네. 이거 때문이라고 추정.

ns default에 있는 모든 sa 지워줌, ns가 default로 되어있는 것도 지워줌. 

아마 k8s 공부할 때 내가 그냥 clusterrole, ns default에 막 만든것 같다.

 

728x90
반응형