/
[Kubernetes] Prometheus 설치
[Kubernetes] Prometheus 설치
Kubernetes cluster의 Applications tab > Prometheus 설치
설치 전 환경 설정
nfs 서버 설정
공유폴더 생성
$ mkdir /home/data
폴더 권한 변경
$ chmod 777 /home/data
패키지 설치
$ yum install nfs-utils (CentOS)
$ apt-get install nfs-common nfs-kernel-server (Ubuntu)
NFS 설정 수정
$ vi /etc/exports /home/data *(rw,sync,no_subtree_check) ## ip, hostname, 도메인 등으로 설정해야 하나 kubernetes에서 인식 못하는 오류가 있어서 전체 허용으로 설정
설정 반영
exportfs -a systemctl restart nfs-kernel-server
서비스 계정 및 역할 바인딩 배포
rbac.yaml 파일 생성
$ vi rbac.yaml kind: ServiceAccount apiVersion: v1 metadata: name: nfs-client-provisioner --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: nfs-client-provisioner-runner rules: - apiGroups: [""] resources: ["persistentvolumes"] verbs: ["get", "list", "watch", "create", "delete"] - apiGroups: [""] resources: ["persistentvolumeclaims"] verbs: ["get", "list", "watch", "update"] - apiGroups: ["storage.k8s.io"] resources: ["storageclasses"] verbs: ["get", "list", "watch"] - apiGroups: [""] resources: ["events"] verbs: ["create", "update", "patch"] --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: run-nfs-client-provisioner subjects: - kind: ServiceAccount name: nfs-client-provisioner namespace: default roleRef: kind: ClusterRole name: nfs-client-provisioner-runner apiGroup: rbac.authorization.k8s.io --- kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: leader-locking-nfs-client-provisioner rules: - apiGroups: [""] resources: ["endpoints"] verbs: ["get", "list", "watch", "create", "update", "patch"] --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: leader-locking-nfs-client-provisioner subjects: - kind: ServiceAccount name: nfs-client-provisioner # replace with namespace where provisioner is deployed namespace: default roleRef: kind: Role name: leader-locking-nfs-client-provisioner apiGroup: rbac.authorization.k8s.io
yaml 배포
$ kubectl create -f rbac.yaml
clusterRole 및 바인딩이 생성되었는지 확인
스토리지 클래스 및 NFS Provisioner 배포
StorageClass 생성
yaml 배포
$ kubectl create -f class.yaml
StorageClass 생성 확인
deployment.yaml 파일 생성
yaml 배포
$ kubectl create -f deployment.yaml
nfs-client-provisioner pod 생성 확인
values.yaml 수정
Volume 생성을 위한 권한 부여
alertmanager 설정
server 설정
Prometheus 설치 확인
Kubernetes cluster의 Applications tab 확인
Kubernetes cluster의 Health tab 확인
마스터 노드 터미널에서 Pod 로그 확인