Index
- Docker
- Container Orchestration
- Provisioning
대시보드 UI
대시보드는 웹 기반 쿠버네티스 유저 인터페이스입니다. 대시보드를 통해 컨테이너화 된 애플리케이션을 쿠버네티스 클러스터에 배포할 수 있고, 컨테이너화 된 애플리케이션을 트러블슈팅 할 수 있으며, 클러스터 리소스들을 관리할 수 있습니다.
1. 설치
대시보드 UI는 기본으로 설치되지 않습니다. 설치하려면 다음 커맨드를 이용하면 됩니다.
1 | kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml |
2. 설치확인
1 | kubectl get pods --all-namespaces |
3. 접속
접속 방법은 총 3가지 입니다.
- Proxy를 이용하기
- NodePort 이용하기
- API Server 이용하기
여기서는 API Server를 이용해서 진행할 예정입니다.
3.1 API Server 이용하기
- kube-apiserver 접근하기 위한 인증서 생성
- 클라이언트 브라우저에 인증서 적용하기
kube-apiserver 접근하기 위한 인증서 생성
- 인증서 생성하기
1
2grep '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 - 다음으로 생성한 키를 기반으로 p12 인증서 파일을 생성합니다. (
password는 기억해둬야 합니다.
)1
openssl pkcs12 -export -clcerts -inkey kubecfg.key -in kubecfg.crt -out kubecfg.p12 -name "kubernetes-admin"
- 인증서 생성하기
클라이언트 브라우저에 인증서 적용하기
생성된 인증서 클라이언트로 Download
생성된
kubecfg.p12
파일과/etc/kubernetes/pki/ca.crt
인증서를 사용하려는 PC에 다운받습니다.다운로드한 인증서를 클라이언트에 적용합니다.
1
certutil.exe -addstore "Root" D:\...\00_Project\ca.crt
p12 파일 적용시 아래와같은 인증서 설치 여부를 묻게되며 ‘예’를 선택하면 됩니다.
1
certutil.exe -p [password] -user -importPFX D:\...\00_Project\kubecfg.p12
4. 접속확인
ui dashboard 에 접속해 봅니다.
1 | https://[server_ip]:6443/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login |
접근시 다음과 같이 인증서 적용 여부를 확인하게 됩니다.
dashboard 접속
4.1 Token 키 생성해서 인증하기
service 계정 생성
1
2
3
4
5
6
7cat <<EOF | kubectl create -f -
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system
EOF- ClusterRoleBinding
1
2
3
4
5
6
7
8
9
10
11
12
13
14cat <<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
Token 가져오기
1
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
Token 값을 이용해 인증하기
참고
https://kubernetes.io/ko/docs/tasks/access-application-cluster/web-ui-dashboard/
https://github.com/kubernetes/dashboard
https://crystalcube.co.kr/199
https://waspro.tistory.com/516