kubernetes cluster를 만들면, 모든 관리를 CLI를 통해서만 해야하나?
UI가 없을까?를 먼저 생각이 들게 됩니다.
따라서, kubernetes 대시보드를 설치합니다.
위의 대시보드를 열어보는 가장 쉬운방법은 kube-proxy를 사용하는 방법이지만,
kubectl proxy를 이용하는 방법은 Localhost 에서 밖에 접근이 안된다.
따라서, 내가 UI를 다른사람들에게도 제공하려고 하면, API Server를 이용해야한다.
[대시보드 UI 배포]
# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
recommended.yaml 파일을 직접 다운로드 받아서 실행해보면 아래와 같다.
[kubectl proxy를 이용하는 방법]
# kubectl proxy
kubectl은 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ 를 통해 대시보드에 접속할 수 있게 해줄 것이다.
UI는 오직 커맨드가 실행된 머신에서만 접근 가능하다. 상세 내용은 kubectl proxy --help 옵션을 확인한다.
[API Server 활용 방법(kube-apiserver를 통해 접근하는 방식)]
- Step1 : kube-apiserver 접근하기 위한 인증서 생성
- Step2 : 인증서 클라이언트에 적용
[Step1 - 인증서 생성]
.kube/config 파일의 client certificate와 client key를 추출하여 각각 kubecfg.crt와 kubecfg.key 파일 생성
# grep 'client-certificate-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.crt
# grep 'client-key-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.key
Key를 포함한 p12 인증서 생성
# openssl pkcs12 -export -clcerts -inkey kubecfg.key -in kubecfg.crt -out kubecfg.p12 -name "kubernetes-admin"
"kubecfg.p12" 와 "/etc/kubernetes/pki/kubecfg.crt" 파일은 클라이언트PC에 다운로드
[Step2 - 인증서 클라이언트에 적용]
다운로드 받은 인증서를 클라이언트PC에 설치한다.
kubecfg.crt는 신뢰할 수 있는 루트 인증 기관 인증서에 설치 | Kubecfg.p12는 개인용인증서 설치 |
[대시보드 로그인 시도]
오... 로그인 하려면 Token(토큰)이 필요하네.
사용자 계정 admin-user 토큰 생성 방법은?
계정 생성 및 Role Binding
# cat <<EOF | kubectl create -f -
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system
EOF
serviceaccount/admin-user created
==================================================================
# 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: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kube-system
EOF
clusterrolebinding.rbac.authorization.k8s.io/admin-user created
토큰값 확인
# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
토큰값을 획득했다!!
그럼 다시 로그인 시도
대시보드 로그인 성공!
그러나, 계속 이렇게 토큰으로 로그인할수는 없다.
쉽고 간편하게 로그할 수 있는 방법이 필요하다!!
'IT Knowledge > Kubernetes' 카테고리의 다른 글
컨테이너 런타임 (containerd) 설치 및 구성 (0) | 2024.05.17 |
---|---|
CentOS NFS Server 설치 및 설정 (0) | 2022.05.17 |
Kubernetes Cluster의 구성요소 (2) | 2022.04.08 |
kubernetes의 namespace 소개 및 사용법 (3) | 2022.04.04 |
Minikube 설치시 오류(Docker) (2) | 2022.03.29 |
댓글