티스토리 뷰

Cloud/Cloud Native

kubernetes troubleshooting

jacobbaek Jacob_baek 2019. 11. 14. 17:00

log 확인

아래 명령을 통해 log를 확인해볼수 있으며

kubectl logs [pod_name]

tail -f 와 같은 지속적인 log확인이 필요한 경우 아래와 같이 수행하여 log를 확인한다.

kubectl logs --follow [pod_name]

 

bash로 연결

실제 동작중인 pod에 연결해서 확인이 필요한 부분이 있을 경우 bash로 연결하는 방법이다.

kubectl exec -it nexus-866ddcf974-ngkfg /bin/bash

 

yaml형태로 출력

아래와 같이 단순히 pod의 이름만이 출력된다. 

jacob@JACOB-DESKTOP:~$ kubectl get pod nexus-866ddcf974-ngkfg
NAME                     READY   STATUS    RESTARTS   AGE
nexus-866ddcf974-ngkfg   1/1     Running   0          33h

관련 yaml 파일을 상세히 보기 위해서는 아래와 같이 -o yaml 옵션을 추가하여 실행한다.

jacob@JACOB-DESKTOP:~$ kubectl get pod nexus-866ddcf974-ngkfg -o yaml
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: "2019-11-09T01:56:53Z"
  generateName: nexus-866ddcf974-
  ...

 

 

Service 확인

아래는 metallb를 사용하는 환경이다.

만약 특정한 port가 connection refuse 현상이 발생될 경우 아래와 같은 명령을 통해 현재 bind된 port 정보를 확인할 수 있다.

jacob@JACOB-DESKTOP:~$ kubectl get svc nexus-service
NAME            TYPE           CLUSTER-IP      EXTERNAL-IP       PORT(S)                         AGE
nexus-service   LoadBalancer   10.233.35.176   192.168.1.129   8081:32251/TCP,5000:32015/TCP   33h

변경을 원한다면 다음 명령을 통해 직접 수정 혹은 추가한다.

jacob@JACOB-DESKTOP:~$ kubectl edit svc nexus-service

 

port listen여부 확인방법

container로 동작시킨경우 일반적으로 netstat, lsof 등 port 확인에 도움이 되는 명령어가 설치되어 있지 않아 디버깅이 어려운 경우가 있다. 이와 같은 경우 아래의 명령을 통해 listen 여부를 확인해볼수 있다.

우선 listen 되야할 port number의 HEX 값을 계산기를 통해 확인해본다.

예로 8081의 경우 1F91 이며 이를 아래 명령을 통해 검색해본다.

이후 아래 명령을 grep을 통해 수행해보면 listen여부를 확인해볼수 있다.

root@tomcat-zswkp:/usr/local/tomcat# cat /proc/net/tcp | head -1 ; cat /proc/net/tcp | grep 1F91
  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode

   2: 00000000:1F91 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 85269119 1 ffff9a6be7b00000 100 0 0 10 0

만약 linux bc command가 존재한다면 다음과 같이 확인해볼수도 있다.

jacob@JACOB-DESKTOP:~$ echo "ibase=16;1F91" | bc
8081

 

'Cloud > Cloud Native' 카테고리의 다른 글

Accident for deleting pvc  (0) 2020.06.23
minikube start in WSL2  (0) 2019.12.07
kubernetes troubleshooting  (0) 2019.11.14
Multi configured kubectl  (0) 2019.10.28
python application deploy with minikube  (0) 2019.09.28
Docker in centos  (0) 2019.06.07
댓글
댓글쓰기 폼