2022. 5. 23. 14:19ㆍ프로그래밍 개발(Development)/k8s
kubernetes 설치 방법은 아래의 링크를 참조하자.
2022.05.23 - [프로그래밍 개발(Development)/k8s] - 우분투에 Kubernetes 설치하기 (Installing Kubernetes on Ubuntu)
kubernetes Dashboard를 설치할 경우 전체적인 구성을 쉽게 확인 할 수 있고, 추가 삭제 부분에서도 쉽게 접근할 수 있다.
이전에 kubernetes가 ubuntu 20.04 에서 설치 되었기 때문에 이어서 진행을 하겠다.
1. Master Node에서 대시보드를 활성화 한다. (Enable Dashboard on Master Node)
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml
# 실행 결과
namespace/kubernetes-dashboard created
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created
2. Dashboard 관리를 위한 계정을 생성한다. (Add an account for Dashboard management)
$ kubectl create serviceaccount -n kubernetes-dashboard admin-user
3. yaml 파일을 생성하여 meta 정보와 role 정보를 입력한다.
$ vi rbac.yml
# create new
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: kubernetes-dashboard
생성된 yaml 파일을 적용 시킨다.
$ kubectl apply -f rbac.yml
4. 보안을 위한 토큰을 발행한다.
$ kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
# 실행 결과
Name: admin-user-token-mfxbj
Namespace: kubernetes-dashboard
Labels: <none>
Annotations: kubernetes.io/service-account.name: admin-user
kubernetes.io/service-account.uid: 0386627d-61be-4e49-b8a4-565eff4ab6cc
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1025 bytes
namespace: 20 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IlJnSUVrV0ZXUVM5WmpVX0hhbG9UaThaUG9lcGZf.....
5. Dashboard 접속 확인
프록시를 실행하여 접속 (로컬 접속시에 사용)
https://127.0.0.1:8001/ 접속
$ kubectl proxy
Starting to serve on 127.0.0.1:8001
외부 클라이언트에서 접속시에 포트 포워드를 통해서 접속을 한다.
$ kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard --address 0.0.0.0 10443:443
Forwarding from 0.0.0.0:10443 -> 8443
외부 클라이언트에서 https://192.168.102.111:10443/ 접속하면 아래와 같은 화면이 나오며, 토큰 정보를 입력 후 접속하면 된다.
port forward를 사용하지 않고 외부 접속을 허용하려면 Service 등록을 통해서 접속이 가능하다.
# create yaml
$ vi k8s-dashboard-service.yaml
apiVersion: v1
kind: Service
metadata:
name: k8s-dashboard-service
namespace: kubernetes-dashboard
labels:
k8s-app: kubernetes-dashboard
spec:
type: NodePort
ports:
- nodePort: 30900
port: 10443
targetPort: 8443
protocol: TCP
name: http
selector:
k8s-app: kubernetes-dashboard
생성된 yaml 파일을 적용 시킨다.
$ kubectl apply -f k8s-dashboard-service.yaml
https://192.168.102.111:30900/ 로 접속
'프로그래밍 개발(Development) > k8s' 카테고리의 다른 글
쿠버네티스 컨테이너 타임존 설정하기(Setting the Kubernetes container timezone) (0) | 2022.06.17 |
---|---|
Kubernetes에 ELK(Kibana) 구축하기 #3 (2) | 2022.06.17 |
Kubernetes에 ELK(Logstash) 구축하기 #2 (0) | 2022.06.16 |
Kubernetes에 ELK(Elasticsearch) 구축하기 #1 (0) | 2022.06.16 |
우분투에 Kubernetes 설치하기 (Installing Kubernetes on Ubuntu) (0) | 2022.05.23 |