Kubernetes 대시보드 설치

6199 단어 oraclecloudoci

소개



Kubernetes Dashboard는 웹 기반 Kubernetes User Interface입니다. 대시보드를 사용하여 매니페스트 파일을 Kubernetes에 배포하고 클러스터 리소스를 관리할 수 있습니다. Oracle Cloud에서 제공하는 Kubernetes Managed Services OKE를 사용하여 Kubernetes Dashboard를 구성하는 방법을 살펴 보겠습니다. OKE를 사용하고 있지만 다른 Kubernetes 클러스터에서도 비슷한 작업으로 괜찮다고 생각합니다.

다음의 Document 를 참고로 하고 있습니다.
htps : // 쿠베 r 하고 s. 이오 / 자 / 도 CS / 타 sks / 아세 s 아 p · 카치 온 - c s s r
htps : // 기주 b. 코 m / 쿠베 r 네 s / 다 sh 보아 rd

대시보드 설치



네임스페이스 확인
[opc@bastion ~]$ kubectl get ns -o wide
NAME              STATUS   AGE
default           Active   11h
kube-node-lease   Active   11h
kube-public       Active   11h
kube-system       Active   11h

Kubernetes Dashboard를 배포합니다. namespace : kubernetes-dashboard가 만들어지고 Service ClusterIP와 같은 필수 구성 요소가 구성됩니다.
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml

실행 예
[opc@bastion ~]$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/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

Namespace 확인입니다. kubernetes-dashboard가 작성되었습니다.
[opc@bastion ~]$ kubectl get ns -o wide
NAME                   STATUS   AGE
default                Active   11h
kube-node-lease        Active   11h
kube-public            Active   11h
kube-system            Active   11h
kubernetes-dashboard   Active   40s

Kubernetes Dashboard에 필요한 사용자(ServiceAccount)를 만듭니다. 이 절차에서는 cluster-admin 권한이 있는 사용자를 만듭니다.
※ 꽤 높은 권한을 갖게하고 있습니다. 상업 환경에서 적용하는 것은 보안 위험이 될 수 있습니다.
cat << 'EOF' > ~/workdir/kubernetes-dashboard-admin-user.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
---
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
EOF

apply
kubectl apply -f ~/workdir/kubernetes-dashboard-admin-user.yaml

Kubernetes Dashboard에 액세스하려면 Token을 가져옵니다.
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')

실행 예
하단의 토큰을 복사해 봅시다.
$ kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
Name:         admin-user-token-x69v9
Namespace:    kubernetes-dashboard
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: admin-user
              kubernetes.io/service-account.uid: 85ae26d6-f7d8-42da-99f3-b5f1ce31a38c

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1289 bytes
namespace:  20 bytes
token:      <ここにTokenが表示される>

작업 중인 컴퓨터에 설치된 kubectl에서 다음 명령을 실행합니다. 그러면 localhost 액세스가 프록시되고 외부 Kubernetes에 액세스됩니다.
kubectl proxy

다음 URL을 실행하면 로그인 화면이 열립니다.
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login

복사한 토큰을 붙여넣고 로그인합니다.



Metrics Server Install



Kubernetes Dashboard에 액세스할 수 있었습니다. Deployment와 그 아래의 Pod를 웹 기반으로 확인할 수 있습니다. 단지 현재 단계에서는 Pod의 CPU 사용률이나 메모리는 표시되지 않습니다. 이를 보려면 Kubernetes Metrics Server를 설치해야 합니다.



Metrics Server를 설치합니다. 네임 스페이스 kube-system 아래에 생성됩니다.
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml

실행 예
$ kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
serviceaccount/metrics-server created
deployment.apps/metrics-server created
service/metrics-server created
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created

Metrics Server를 도입한 결과 리소스 사용률이 검색되고 표시됩니다.



참고 URL

좋은 웹페이지 즐겨찾기