k8s ui tools

# k8s 컴포넌트별 UI 툴(모니터링/수정등)
https://github.com/evildecay/etcdkeeper 로 etcd data 를 웹 UI 로 불 수 있고, 수정도 가능하다.
# 위 사이트 최신 릴리즈 tar.gz 를 받아 압축을 풀면 etcdkeeper 바이너리가 나온다.
# etcd pod 하나를 포트포워딩
kubectl -n kube-system port-forward etcd-master-1 2379:2379
# etcdkeepr 를 실행 후
./etcdkeeper
# 접속
http://localhost:8080/etcdkeeper/ 으로 접속

# 만약 etcd server tls(--listen-client-urls=https://0.0.0.0:2379등의 설정)로 띄워져 있따면 접속시 인증석 필요하다.
# 노드에 접근할 수 있다면 노드에서 다음 파일을 가져오면 된다.
/etc/apiserver-etcd-client.crt
/etc/apiserver-etcd-client.key
/etc/etcd-ca.crt

# 노드에 접근할 수 없고 k8s secret 로 있다면 다음처럼 파일로 저장하자.
kubectl get secret etcd-client-cert -n kube-system -o jsonpath='{.data.tls\.crt}' | base64 -d > etcd-client.crt
kubectl get secret etcd-client-cert -n kube-system -o jsonpath='{.data.tls\.key}' | base64 -d > etcd-client.key
kubectl get secret etcd-client-cert -n kube-system -o jsonpath='{.data.ca\.crt}' | base64 -d > etcd-ca.crt

# etcdkeeper 에서 다음과 같이 인증서 파일을 명시하면 된다.
./etcdkeeper \
  -usetls \
  -cacert ./etcd-ca.crt \
  -cert ./etcd-client.crt \
  -key ./etcd-client.key

# 참고로 etcdctl 사용시 다음과 같이 인증서 파일을 명시하면 된다.
etcdctl \
  --endpoints="https://localhost:2379" \
  --cacert="./etcd-ca.crt" \
  --cert="./etcd-client.crt" \
  --key="./etcd-client.key" \
 member list

#####

# helm 으로 설치
helm repo add kafka-ui https://provectus.github.io/kafka-ui-charts
helm install kafka-ui kafka-ui/kafka-ui
# 접속
http://{kafka-endpoint}:9092

#####

# k8s 에서 cilium 네트워크를 사용하면 hubble 로 컴포넌트별 트랙픽을 웹 UI 로 확인할 수 있다.
# cilium 에서 huble 이 활성화 되어 있어야 한다.
cilium hubble enable
# helm 으로 설치
helm upgrade cilium cilium/cilium --namespace kube-system --reuse-values \
  --set hubble.relay.enabled=true \
  --set hubble.ui.enabled=true
# hubble-ui 서비스 포트포워딩
kubectl -n kube-system port-forward svc/hubble-ui 12000:80
# 이제 접속하면 namespace 별로 트래픽이 어떻게 전달되는지 파악할 수 있다.
http://localhost:12000

comments:

댓글 쓰기