인프라/쿠버네티스

쿠버네티스 대시보드를 구축해보자

자바조아! 2024. 2. 9. 12:54

쿠버네티스 대시보드 설치

# 설치 파일 다운로드
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

# 외부에서 접속하기 위한 NodePort 설정
vi recommended.yaml

# 해당 부분 찾아서 추가
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort  # < 이부분 추가하세요
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 31000  # < 이부분 추가하세요
  selector:
    k8s-app: kubernetes-dashboard

# 설치 
kubectl apply -f  recommended.yaml

NodePort 확인

# 쿠버네티스 네임스페이스페이스 서비스 조회
kubectl get svc -n kubernetes-dashboard

위 그림 처럼 노드포트가 열린것을 확인 할 수 있다.

# Woker 노드에서 아래 명령어로 접속 할 수 있다.
curl localhost:31000

외부에서 접속하기 (feat. 버추얼박스)

버추얼박스 포트포워딩 옵션을 추가한다
호스트OS localhost:8000으로 들어오면 WokerNode(10.0.2.20:31000)으로 포트포워딩 한다.

대시보드 화면 확인

# 브라우저에 입력하고 안전하지 않은 사이트 접속하기
https://localhost:8000/#/login

대시보드 관리자 계정 생성

# ClusterRoleBinding
cat <<EOF | kubectl create -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard
EOF

# ServiceAccount
cat <<EOF | kubectl create -f -
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
EOF

토큰 생성

# 토큰 생성
kubectl -n kubernetes-dashboard create token admin-user

# 토큰 복사
eyJhbGciOiJSUzI1NiIsImtpZCI6IkRmZ3pIZzRpNXFkVmhCVEZhWC00NUNpSFJLVHhncGdtd2g2ZTIwY1FDODgifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNzA3NDUyNTgxLCJpYXQiOjE3MDc0NDg5ODEsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJhZG1pbi11c2VyIiwidWlkIjoiNjZhZWQ0YTEtZTUyZi00NmEzLTg2ZDQtMjFkYjZjNDYyODc5In19LCJuYmYiOjE3MDc0NDg5ODEsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDphZG1pbi11c2VyIn0.2QSAYMhf4bHok6FJghArhbWnOte4UCMoSbpAATVNxsr-ZEQqEQFe-cp6zvakZYtdGyptEURvhT2hpWI7EYnAEg4XQtU8w9ACi5PcMYe2en0sOf5mW0upDXCjzOdnyETvi9pAcHOtgUqHyyFTJvdR46CsM49pSM0dvISoUi_d-wD6rCUGNpBPo8HUNb8jqN5mbooLClIx_7mtLzCzQHZcmgiQxbDVar4h-rn7nyx31wyF8ZGHDQEYM-eke-rbnEF6vScyCzDKP9I_1n1aUCuRZdjyn2v22jo1vTsKwU4vL1FWs8CBhKUKVBedVIeCISJtYn76MfyXxGRXYDVvUz5RoA

로그인 하기

위에서 생성한 토근을 복사해서 붙여넣기 하고 로그인