본문 바로가기
네트워크/k8s

[k8s] 33. Kubernetes Dashboard

by Lauren X Ming 2021. 2. 24.

Kubernetes Dashboard

  • 가이드대로 설치했다면 현재 대시보드 버전은 v1.10.1
  • v1.10.1은 근데 보안에 좋지 않음
  • 새로 설치하는 과정을 할 예정

1. AS-IS: v1.10.1

  • Kube-system 네임스페이스에 Deployment로 대시보드 파드가 설치
  • 이 파드는 서비스와 연결됨
  • 설치 시 kubectl 명령어로 proxy를 올려놔서 사용자는 proxy로 보안없이 http로 접속 가능
  • Login 시 SKIP으로 별도의 인증없이 로그인해서 대시보드를 통해 쿠버네티스 오브젝트 조회와 수정이 가능
  • 대시보드 파드가 API 서버에 접근했을 때, 클러스터 자원에 대한 권한을 가지고 있기 때문에 가능했던 것

대시보드 파드는 어떻게 클러스터 자원 권한을 가지고 있을까?

  • 대시보드 파드는 Service Account와 연결되어 있음
  • Service Account는 RoleBinding을 통해서 Role이 연결되어 있음
  • Role에 대한 권한은 네임스페이스 내에서만 사용 가능
  • ClusterRoleBinding을 만들어서 cluster-admin과 ServiceAccount를 연결
    • cluster-admin: 쿠버네티스를 설치하면 기본적으로 설치되는 기본 ClusterRole
  • 대시보드는 cluster-admin 권한으로 API 서버에 접근할 수 있게됨
  • 프록시 서버를 열어놔서 프록시의 아이피와 포트번호만 알면 클러스터에 접근 가능해서 위험
  • 대시보드도 SKIP 버튼이 보안적으로 좋지 않음

2. TO-BE: v2.0.0

  • 프록시를 중간에 두지 않고, API 서버로 바로 접근할 예정
  • kubeconfig에 Client crt, Client key가 필요함
  • 위 두 파일을 합쳐서 client p12파일을 만들어서 PC에 인증서를 만듦
  • 이렇게 하면 https로 Kubernetes API Server에 접속 가능
  • 내부 구조는 v1.10.1과 유사하지만 추가적으로 kubernetes-metrics-scraper 파드가 설치됨
    • 사전에 metrics 서버가 설치된다면, 노드나 파드의 성능정보를 대시보드에 그래프로 표시
    • 이 때 kubernets-dashboard 이름의 ClusterRoleBinding과 ClusterRole가 생김
      • kubernetes-metrics-scraper 파드의 파드, 노드 조회 권한을 주기위한 용도
  • Service Account에 연결된 토큰 값으로 외부 사용자는 대시보드에서 토큰 로그인을 할 수 있음
  • 다른 사람 입장에서는 아이피, 포트정보로 접근 불가, 쿠버네티스 인증서도 있어야 하고, 대시보드에 접속돼도 로그인할 수 있는 토큰값이 필요

출처

인프런 - 대세는 쿠버네티스

'네트워크 > k8s' 카테고리의 다른 글

[k8s] 35. StatefulSet  (0) 2021.02.25
[k8s] 34. Kubernetes Dashboard - 실습  (0) 2021.02.24
[k8s] 32. Authorization - 실습  (0) 2021.02.24
[k8s] 31. Authorization - RBAC, Role, RoleBinding  (0) 2021.02.24
[k8s] 30. Authentication - 실습  (0) 2021.02.24