728x90
반응형

쿠버네티스 대시보드를 통해 쿠버네티스 노드나 파드를 한눈에 볼 수 있다.
하지만 대시보드를 사용하게 되면 모든 권한흘 해제해주어야 하기 때문에
대시보드에서 클러스터의 모든 오브젝트들을 조회, 수정, 삭제가 가능하다.
그래서 보안상 권장하지 않는다고 한다.
이런 점들을 주의하고 대시보드를 설치하고 실행해보자.

> 쿠버네티스 대시보드 documents

https://kubernetes.io/ko/docs/tasks/access-application-cluster/web-ui-dashboard/

 

웹 UI (대시보드)

대시보드는 웹 기반 쿠버네티스 유저 인터페이스이다. 대시보드를 통해 컨테이너화 된 애플리케이션을 쿠버네티스 클러스터에 배포할 수 있고, 컨테이너화 된 애플리케이션을 트러블슈팅할 수

kubernetes.io

> gibhub 대시보드 관련 repository

https://github.com/kubernetes/dashboard

 

GitHub - kubernetes/dashboard: General-purpose web UI for Kubernetes clusters

General-purpose web UI for Kubernetes clusters. Contribute to kubernetes/dashboard development by creating an account on GitHub.

github.com

 

쿠버네티스 클러스터 대시보드 설치 및 설정 요약 정리

1. 대시보드 배포하기

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml

2. 프록시 띄우기

nohup kubectl proxy --port=8001 --address=192.168.1.10 --accept-hosts='^*$' >/dev/null 2>&1 &

3. 대시보드 접속하기

# 서버에서 직접 접속할 경우
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login

# 따로 IP를 할당한 경우
http://[할당된 IP]:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login

# 따로 NAT 네트워크를 통해 포트 포워팅 한 경우 (포트는 마음대로 설정, 10080 제외)
http://localhost:18080/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login

3-1. 토큰을 이용한 접속 방법

- 서비스 어카운트 확인

kubectl get serviceaccounts -A

- 서비스 어카운트 토큰 이름 확인

kubectl describe serviceaccounts default

- default 서비스 어카운트 클러스터 롤 정의

kubectl create clusterrolebinding [default token name] -n [namespace] --clusterrole=cluster-admin --serviceaccount=[그룹:계정]

# default 클러스터 롤 정의
kubectl create clusterrolebinding default-token-mgpxz -n default --clusterrole=cluster-admin --serviceaccount=default:default

- 토큰 확인

 kubectl describe secrets [token name]
 
# default 어카운트 토큰 확인
 kubectl describe secrets default

- 토큰을 사용해 로그인

3-2. 대시보드 yaml 파일을 수정해 인증 건너뛰기

- 대시보드 yaml 파일 다운로드 및 수정 (파일 이름은 마음대로)

curl https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml -o dashboard.yaml

- cluster role 수정 및 로그인 스킵 추가

    155 apiVersion: rbac.authorization.k8s.io/v1
    156 kind: ClusterRoleBinding
    157 metadata:
    158   name: kubernetes-dashboard
    159 roleRef:
    160   apiGroup: rbac.authorization.k8s.io
    161   kind: ClusterRole
    162   name: cluster-admin                  <<<<<<<<<<<<<< 수정한 부분
    163 subjects:
    164   - kind: ServiceAccount
    165     name: kubernetes-dashboard
    166     namespace: kubernetes-dashboard
(...)
	187     spec:
    188       containers:
    189         - name: kubernetes-dashboard
    190           image: kubernetesui/dashboard:v2.3.1
    191           imagePullPolicy: Always
    192           ports:
    193             - containerPort: 8443
    194               protocol: TCP
    195           args:
    196             - --auto-generate-certificates
    197             - --enable-skip-login                   <<<<<<<<<<<<<< 추가한 부분
    198             - --namespace=kubernetes-dashboard
    199             # Uncomment the following line to manually specify Kubernetes API server Host
    200             # If not specified, Dashboard will attempt to auto discover the API server and connect
    201             # to it. Uncomment only if the default does not work.
    202             # - --apiserver-host=http://my-address:port

- 이전 대시보드 삭제 및 수정한 대시보드 배포

# kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
# kubectl apply -f dashboard.yaml

- 다시 대시보드에 접속해 로그인 생략으로 접속해 클러스터 정보 확인


0. 대시보드 접속을 위한 포트 열어주기

기존에 VirtualBox 네트워크 설정으로 각 노드들의 포트 포워딩을 했었는데
이번에도 쿠버네티스 프록시 서버에서 8001 포트를 통해 대시보드에 접속하기 위해서
추가로 포트 포워딩 규칙을 만들어주었다.
마스터노드의 8001 포트를 통해 대시보드에 접속하려면 localhost에서 18080 포트를 통해 접속한다는 것이다.

localhost:18080 -> 10.0.2.10:8001 (k8s-master)

추가로 현재 크롬에서는 10080 포트를 차단한 상태였다.
이 내용은 아래 포스트에서 확인할 수 있었다.

https://itigic.com/ko/chrome-blocks-tcp-port-10080-to-prevent-attacks/

 

Chrome, 공격 방지를 위해 TCP 포트 10080 차단 | ITIGIC

Google 크롬은 의심 할 여지없이 오늘날 가장 인기있는 브라우저입니다. 따라서 개발자는 보안과 성능을 향상시킬 수있는 방법을 지속적으로 찾고 있습니다. 이 기사에서는 NAT Slipstreaming 공격을

itigic.com

 

1. 대시보드 배포하기

만들어진 대시보드 yaml 파일을 가져와 배포한다.
나는 github 에서 제공되는 yaml 파일을 통해 대시보드를 배포했다.

[root@k8s-master ~]# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/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
Warning: spec.template.metadata.annotations[seccomp.security.alpha.kubernetes.io/pod]: deprecated since v1.19; use the "seccompProfile" field instead
deployment.apps/dashboard-metrics-scraper created

 

2. 프록시 띄우기

배포가 끝났으면 프록시 서버를 열어 접속할 수 있게 해주어야 한다.
프록시를 띄울 때 보통 서버 자체에서 띄우기 때문에 아래와 같이 localhost 에 접속해 대시보드를 사용할수 있다.

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

이렇게 접속을 하면 되는데 나는 가상머신으로 만든 마스터노드에서 대시보드를 사용하기 때문에
프록시 서버에 IP 주소를 따로 입력해서 입력한 IP 주소로 대시보드에 접속할 수 있도록 해야 한다.
그래서 proxy 옵션을 사용해 IP 주소를 입력해준다.
만약 따로 IP 를 할당받아 사용한다면 localhost 가 아닌 할당 받은 IP로 접속하면 된다.

[root@k8s-master ~]# kubectl proxy --port=8001 --address=10.0.2.10 --accept-hosts='^*$' &

--port 옵션으로 포트를 정해주고 --address 옵션으로 대시보드에 접속하기 위한 IP, 마스터 노드의 IP를 적어주었다.
--accept-hosts 는 메뉴얼에 프록시가 수락해야하는 호스트의 정규 표현식이라고 설명되어있는데
정규 표현식 ^ * $ 를 사용했는데 ^는 문자열 시작, * 는 0번이상 나오는 문자열, $ 는 문자열 끝 이라고 하는데
쉽게 말해 따로 문자열, 주소 값을 적어주지 않았기 때문에 모든 호스트를 프록시가 수락한다는 말이다.

[root@k8s-master ~]# nohup kubectl proxy --port=8001 --address=10.0.2.10 --accept-hosts='^*$' >/dev/null 2>&1 &

이번에는 다르게 실행해봤는데 proxy 만 사용한 게 아닌 nohub 같이 다른 명령어나 옵션들도 사용되었다.
nohub 이란 리눅스에서 실행 파일을 데몬 형태로 실행시키는 것을 말한다.
쉽게 말해 서비스 형태로 실행되는 것을 말하는데 이렇게 실행하면 터미널 접속이 끊겨도
서버가 살아있다면 proxy 서버가 죽지 않고 실행된다.
마지막에 붙인 "> /dev/null" 은 앞에 실행한 결과를 아무것도 출력하지 않겠다는 말이고
"2>&1" 는 표준에러를 표준 출력으로 리다이렉션하라는 말이다.
즉, "> /dev/null 2>&1" 을 묶어서 보면 출력되는 결과를 null 값으로 만들어라 라는 말이다.
마지막에 붙은 & 는 백그라운드로 프로세스를 실행하라는 말인데 리눅스에서는 포그라운드, 백그라운드 작업이 있다.
포그라운드는 즉 지금 사용하고 있는 터미널에서 눈에 보이게 실행하는 것이고
백그라운드는 터미널에서 보이지 않게 실행하라는 말인데 백그라운드로 실행하면 실행하고 나서 다른 작업을 할 수 있다.

이렇게 프록시를 띄우고 아까 포트 포워딩했기 때문에 localhost의 18080포트로 대시보드에 접속할 수 있다.

 

3. 대시보드 접속하기

이제 프록시를 띄울 때 옵션에 넣어준 IP 주소를 통해 대시보드에 접속할 수 있다.

http://localhost:18080/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login

접속하면 다음과 같이 쿠버네티스 대시보드가 뜨게 된다.

대시보드에 접속하기 위해서는 올바른 인증을 거쳐야 하는데
인증 방법에는 토큰kubeconfig 라는 두 가지 방법있고 인증을 건너뛰는 설정도 있다.
나는 토큰을 사용해서 접속해보려고 한다.

 

3-1. 토큰을 이용한 접속 방법

대시보드에서 확인할 수 있듯이
서비스 어카운트는 시크릿을 가지고 있고 시크릿을 확인해보면 베어러 토큰이 있다고 설명되어있다.
우선 서비스 어카운트를 통해 계정들을 확인할 수 있는데 계정들 중에 대시보드와 관련된 계정을 확인할 수 있다.

[root@k8s-master ~]# k get serviceaccounts -A
NAMESPACE              NAME                                 SECRETS   AGE
default                default                              1         17d
kube-node-lease        default                              1         17d
kube-public            default                              1         17d
kube-system            attachdetach-controller              1         17d
kube-system            bootstrap-signer                     1         17d
kube-system            calico-kube-controllers              1         17d
kube-system            calico-node                          1         17d
kube-system            certificate-controller               1         17d
kube-system            clusterrole-aggregation-controller   1         17d
kube-system            coredns                              1         17d
kube-system            cronjob-controller                   1         17d
kube-system            daemon-set-controller                1         17d
kube-system            default                              1         17d
kube-system            deployment-controller                1         17d
kube-system            disruption-controller                1         17d
kube-system            endpoint-controller                  1         17d
kube-system            endpointslice-controller             1         17d
kube-system            endpointslicemirroring-controller    1         17d
kube-system            ephemeral-volume-controller          1         17d
kube-system            expand-controller                    1         17d
kube-system            generic-garbage-collector            1         17d
kube-system            horizontal-pod-autoscaler            1         17d
kube-system            job-controller                       1         17d
kube-system            kube-proxy                           1         17d
kube-system            namespace-controller                 1         17d
kube-system            node-controller                      1         17d
kube-system            persistent-volume-binder             1         17d
kube-system            pod-garbage-collector                1         17d
kube-system            pv-protection-controller             1         17d
kube-system            pvc-protection-controller            1         17d
kube-system            replicaset-controller                1         17d
kube-system            replication-controller               1         17d
kube-system            resourcequota-controller             1         17d
kube-system            root-ca-cert-publisher               1         17d
kube-system            service-account-controller           1         17d
kube-system            service-controller                   1         17d
kube-system            statefulset-controller               1         17d
kube-system            token-cleaner                        1         17d
kube-system            ttl-after-finished-controller        1         17d
kube-system            ttl-controller                       1         17d
kubernetes-dashboard   default                              1         23m
kubernetes-dashboard   kubernetes-dashboard                 1         23m

마스터 노드에 많은 계정들이 생성되어 있고 맨 아래에 보면 kubernetes-dashboard 라고 되어있는 부분이 있다.
이 부분을 describe 명령으로 자세히 확인해보면 Tokens 를 확인할 수 있다.

[root@k8s-master ~]# k describe serviceaccounts kubernetes-dashboard -n kubernetes-dashboard
Name:                kubernetes-dashboard
Namespace:           kubernetes-dashboard
Labels:              k8s-app=kubernetes-dashboard
Annotations:         <none>
Image pull secrets:  <none>
Mountable secrets:   kubernetes-dashboard-token-ccgb4
Tokens:              kubernetes-dashboard-token-ccgb4
Events:              <none>

이제 이 토큰의 secrets를 확인하면 token 값을 확인할 수 있다.

[root@k8s-master ~]# k describe secrets kubernetes-dashboard-token-ccgb4 -n kubernetes-dashboard
Name:         kubernetes-dashboard-token-ccgb4
Namespace:    kubernetes-dashboard
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: kubernetes-dashboard
              kubernetes.io/service-account.uid: 9e8400c0-4177-4411-8566-90c74238f77e

Type:  kubernetes.io/service-account-token

Data
====
namespace:  20 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IjQxZW1QZzYya2JsdTBLbmxBZUhPMzI1NW13ZjF4WFltbmNsMUF5SFhSVlUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi1jY2diNCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjllODQwMGMwLTQxNzctNDQxMS04NTY2LTkwYzc0MjM4Zjc3ZSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.NkrQir7Aef6rOH87QpAocNCwxvPONt_mHLs8IRI0EeWaf9owari8hYSjStgDzyXBf2Qt9aQjdXwDGLYintr-rQC-cPxtuY5YOU0tpMJVpek_ZhnFjzU_Ie46SCbKS7WAN0-N_d_o8PtWR2SrnTKYKeJt6HHA_ye1QS098G7nvXuf4aNRzNgZfZLpvlBMYNdCCNismMerxX5w3gt53wAjRsIOyD_QIaLsvT-914maUQUXqkBbXu1OnhRL0RVM5T-gkfcebqTdsDNM7JZul0VqfmAPLZayOA8m7BieDh8wOVXnvF53TmWjqZgxdfw3KQnCJaa33JWYEU84meIIgcTphg
ca.crt:     1099 bytes

토큰 값만 가져오고 싶다면 잘라서 가져오면 된다.

[root@k8s-master ~]# k describe secrets kubernetes-dashboard-token-ccgb4 -n kubernetes-dashboard | grep -w token: | awk '{print $2}'
eyJhbGciOiJSUzI1NiIsImtpZCI6IjQxZW1QZzYya2JsdTBLbmxBZUhPMzI1NW13ZjF4WFltbmNsMUF5SFhSVlUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi1jY2diNCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjllODQwMGMwLTQxNzctNDQxMS04NTY2LTkwYzc0MjM4Zjc3ZSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.NkrQir7Aef6rOH87QpAocNCwxvPONt_mHLs8IRI0EeWaf9owari8hYSjStgDzyXBf2Qt9aQjdXwDGLYintr-rQC-cPxtuY5YOU0tpMJVpek_ZhnFjzU_Ie46SCbKS7WAN0-N_d_o8PtWR2SrnTKYKeJt6HHA_ye1QS098G7nvXuf4aNRzNgZfZLpvlBMYNdCCNismMerxX5w3gt53wAjRsIOyD_QIaLsvT-914maUQUXqkBbXu1OnhRL0RVM5T-gkfcebqTdsDNM7JZul0VqfmAPLZayOA8m7BieDh8wOVXnvF53TmWjqZgxdfw3KQnCJaa33JWYEU84meIIgcTphg

자 이제 토큰을 확인했으니 토큰값을 입력해 로그인하면 된다.

로그인하면 끝난 줄 알았더니 내가 만든 쿠버네티스 클러스터에 대한 정보가 아무것도 나오지 않았다.
확인해보니 대시보드에 접근할 수 있는 cluster role 이 설정되어있지 않아서 클러스터 정보를 확인할 수 없다고 한다.

이 문제를 해결하기 위해서는 새로운 서비스 어카운트를 생성하고 cluster role 을 설정하는 것이 좋은 방법이지만
나는 간단하게 default 서비스 어카운트에 cluster role 을 설정해주려고 한다.

나는 default 서비스 어카운트에 cluster role 을 설정해주었다.

[root@k8s-master ~]# kubectl create clusterrolebinding default-token-mgpxz -n default --clusterrole=cluster-admin --serviceaccount=default:default
clusterrolebinding.rbac.authorization.k8s.io/default-token-mgpxz created

default 서비스 어카운트에 cluster-admin 이라는 role 을 설정해주었고
이전에 했던 방법으로 default 서비스 어카운트의 토큰을 확인해 다시 로그인하면 된다.

다시 로그인했더니 내가 만든 쿠버네티스 클러스터에 대한 정보를 가져올 것을 확인할 수 있었다.

 

3-2. 대시보드 yaml 파일을 수정해 인증 건너뛰기

토큰과 kubeconfig 를 통해 인증을 거쳐야 하지만 인증을 건너뛰는 방법도 있다.
그러기 위해서는 대시보드 yaml 파일을 수정해서 재배포해줘야 한다.

우선 yaml 파일을 수정해주어야 하는데 curl 을 통해 github 에 있는 대시보드 yaml 파일을 다운로드한다.

curl https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml -o dashboard.yaml

그리고 vi 에디터를 통해 수정해준다.

    155 apiVersion: rbac.authorization.k8s.io/v1
    156 kind: ClusterRoleBinding
    157 metadata:
    158   name: kubernetes-dashboard
    159 roleRef:
    160   apiGroup: rbac.authorization.k8s.io
    161   kind: ClusterRole
    162   name: cluster-admin                  <<<<<<<<<<<<<< 수정한 부분
    163 subjects:
    164   - kind: ServiceAccount
    165     name: kubernetes-dashboard
    166     namespace: kubernetes-dashboard
(...)
	187     spec:
    188       containers:
    189         - name: kubernetes-dashboard
    190           image: kubernetesui/dashboard:v2.3.1
    191           imagePullPolicy: Always
    192           ports:
    193             - containerPort: 8443
    194               protocol: TCP
    195           args:
    196             - --auto-generate-certificates
    197             - --enable-skip-login                   <<<<<<<<<<<<<< 추가한 부분
    198             - --namespace=kubernetes-dashboard
    199             # Uncomment the following line to manually specify Kubernetes API server Host
    200             # If not specified, Dashboard will attempt to auto discover the API server and connect
    201             # to it. Uncomment only if the default does not work.
    202             # - --apiserver-host=http://my-address:port

우선 아까도 그냥 로그인을 하게 되면 클러스터 롤이 설정되어있지 않아 정보를 불러오지 못했기 때문에
이번에는 yaml 파일에 cluster-admin 으로 미리 설정해주었다.
(기존에는 kubernetes-dashboard 라고 되어 있다. )

그리고 197번 줄에 로그인 인증 스킵을 가능하게 추가해주었다.
수정을 다했으면 아까 배포한 대시보드 디플로이먼트를 삭제하고 수정한 대시보드를 다시 배포해준다.
수정할 때 조심해야할 점은 입력할 때 TAB을 사용해 들여쓰기를 하게 되면 제대로 인식하지 않아
스페이스바로만 들여쓰기를 해주어야 한다.

[root@k8s-master ~]# kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
namespace "kubernetes-dashboard" deleted
serviceaccount "kubernetes-dashboard" deleted
service "kubernetes-dashboard" deleted
secret "kubernetes-dashboard-certs" deleted
secret "kubernetes-dashboard-csrf" deleted
secret "kubernetes-dashboard-key-holder" deleted
configmap "kubernetes-dashboard-settings" deleted
role.rbac.authorization.k8s.io "kubernetes-dashboard" deleted
clusterrole.rbac.authorization.k8s.io "kubernetes-dashboard" deleted
rolebinding.rbac.authorization.k8s.io "kubernetes-dashboard" deleted
clusterrolebinding.rbac.authorization.k8s.io "kubernetes-dashboard" deleted
deployment.apps "kubernetes-dashboard" deleted
service "dashboard-metrics-scraper" deleted
deployment.apps "dashboard-metrics-scraper" deleted
[root@k8s-master ~]# kubectl apply -f dashboard.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
Warning: spec.template.metadata.annotations[seccomp.security.alpha.kubernetes.io/pod]: deprecated s             ince v1.19; use the "seccompProfile" field instead
deployment.apps/dashboard-metrics-scraper created

그리고 대시보드에 다시 접속한다.

로그인 옆에 생략 이라고 버튼이 하나 생긴 것을 확인할 수 있다.
그리고 생략하고나서 접속하면 클러스터 정보를 확인할 수 있다.

대신 인증을 거치지 않았기 때문에 오른쪽 상단에 보면 로그인을 하지 않았다는 표시가 뜬다.
나는 이번에 간단하게 대시보드를 설치해보고 접속해보기 위해서 이런 방법을 사용해봤지만
로그인 인증을 건너뛰기 보다는 제대로된 인증을 통해 이용하는 것이 좋을 것 같다.

이렇게 대시보드 배포하고 설정해 사용할 수 있게 만들어봤는데
대시보드와 관련해서 대시보드의 사용하게 될 경우 보여지는 부분이 많기 때문에 보안상 문제가 될 수 있다고 한다.
그래서 되도록 대시보드의 사용을 권장하지 않는다는 사실을 유의하고 사용해야 할 것 같다.
정말 간단한 실습이나 테스트를 위한 환경에서만 사용해야할 것 같다.

 

- 참고 사이트 - 

https://brownbears.tistory.com/164

 

[Linux] nohup, &

nohup이란 리눅스, 유닉스에서 쉘스크립트파일 (*.sh)을 데몬형태로 실행시키는 프로그램 터미널 세션이 끊겨도 실행을 멈추지 않고 동작하도록 함 &이란? 프로세스를 실행할 때 백그라운드에서

brownbears.tistory.com

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=is_king&logNo=221566914429 

 

정규표현식 기본 문법

Python re 라이브러리 regular expression(정규 표현식)의 약자로, 정규표현식을 사용하여 문자열에서 특...

blog.naver.com

https://morian-kim.tistory.com/29

 

[Kubernetes] Visual하게 DashBoard를 설치, 접속해보자

kubernetes/dashboard General-purpose web UI for Kubernetes clusters. Contribute to kubernetes/dashboard development by creating an account on GitHub. github.com # kubectl apply -f https://raw.github..

morian-kim.tistory.com

https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=alice_k106&logNo=221320466860 

 

142. [Kubernetes] Kubernetes 대시보드 실행하기

이번 포스트에서는 Kubernetes 대시보드를 실행하는 방법에 대해서 알아본다. 개인적인 의견으로는, 초보 ...

blog.naver.com

https://jarikki.tistory.com/39

 

[자동화] AI 개발환경 구축기 #5-Kubernetes Cluster(Dashboard)

머신러닝과 딥러닝, 그리 AI(인공지능)!!! AI 서비스를 개발하기 위한 환경을 만들어본다. 최종 목표는 Kubeflow 기반의 AutoML 환경 구성이고, IaC(Infra as Code) 기반으로 Automation 하는것이 목적이다. 5편

jarikki.tistory.com

 

728x90
반응형
복사했습니다!