OpenShift Metrics-Server 배포
페이지 정보
작성자 PaaSM 작성일 21-01-29 15:23 조회 7,403 댓글 0본문
안녕하세요.
Horizontal Pod Autoscaler에 대해서 알아보려고 합니다.
OpenShift 에서 Horizontal Pod Autoscaler(HPA)를 이용하여 설정한 CPU 사용률 기반으로 Replicaset, Deployment 의 Pod 수를 자동으로 Scaling 할 수 있습니다.
Horizontal Pod Autoscaler는 크기를 조정할 수 없는 오브젝트(예: 데몬셋(DaemonSet))에는 적용되지 않습니다.
HPA를 하기 위해서는 Pod의 부하에 대해 모니터링및 수집을 하는 Metrics-Server가 필요합니다.
기본적으로 OKD 설치 시 사용되는 Ansible 스크립트에는 Metrics Server 설치가 Flase 설정되어 있으므로, 설치 시 옵션값을 변경하거나, 수동으로 설치해야합니다.
OpenShift에 Metrcis-Server를 배포하는 방법에 대해 소개하겠습니다.
* Metrics의 데이터를 저장하기 위해 Pod의 볼륨 또는 Persistent Volume을 생성해야 합니다.
1. Metrcis storage 준비
1) 마운트할 디렉토리 생성
$ mkdir /exports
2) nfs 설정
$ vi /etc/exports
/exports *(rw,no_root_squash)
3) nfs 서비스 활성화
$ systemctl restart nfs-server
$ exportfs
2. Persistent Volume 생성
1) pv 생성
$ cat pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
creationTimestamp: null
finalizers:
- kubernetes.io/pv-protection
labels:
storage: metrics
name: metrcis-canssandra
namespace: "openshift-infra"
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 30Gi
nfs:
path: /exports/metrics
server: 192.168.50.100
persistentVolumeReclaimPolicy: Retain
status: {}
2) pvc 생성
$ cat pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
pv.kubernetes.io/bind-completed: "yes"
pv.kubernetes.io/bound-by-controller: "yes"
creationTimestamp: null
finalizers:
- kubernetes.io/pvc-protection
labels:
storage: metrics
namespace: "openshift-infra"
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 30Gi
selector:
matchLabels:
project: openshift-infra
volumeName: metrics-cassandra-1
status: {}
3. Ansible 인벤토리 설정
...
# Cluster Metrics
openshift_metrics_install_metrics=true
openshift_metrics_cassandra_nodeselector={'node-role.kubernetes.io/infra': 'true'}
openshift_metrics_hawkular_nodeselector={'node-role.kubernetes.io/infra': 'true'}
openshift_metrics_heapster_nodeselector={'node-role.kubernetes.io/infra': 'true'}
openshift_metrics_install_hawkular_agent=true
openshift_metrics_server_install=true
# Metrics NFS
openshift_metrics_storage_labels={'storage': 'metrics'}
openshift_metrics_storage_kind=nfs
openshift_metrics_storage_access_modes=['ReadWriteOnce']
openshift_metrics_storage_host=192.168.211.147
openshift_metrics_storage_nfs_directory=/exports
openshift_metrics_storage_volume_name=metrics
openshift_metrics_storage_volume_size=50Gi
...
4. Playbook 실행
$ ansible-playbook -i </path/inventory> /usr/share/ansible/openshift-ansible/playbooks/openshift-logging/config.yml -vv
참고 URL
https://docs.okd.io/3.11/install_config/cluster_metrics.html
Horizontal Pod Autoscaler에 대해서 알아보려고 합니다.
OpenShift 에서 Horizontal Pod Autoscaler(HPA)를 이용하여 설정한 CPU 사용률 기반으로 Replicaset, Deployment 의 Pod 수를 자동으로 Scaling 할 수 있습니다.
Horizontal Pod Autoscaler는 크기를 조정할 수 없는 오브젝트(예: 데몬셋(DaemonSet))에는 적용되지 않습니다.
HPA를 하기 위해서는 Pod의 부하에 대해 모니터링및 수집을 하는 Metrics-Server가 필요합니다.
기본적으로 OKD 설치 시 사용되는 Ansible 스크립트에는 Metrics Server 설치가 Flase 설정되어 있으므로, 설치 시 옵션값을 변경하거나, 수동으로 설치해야합니다.
OpenShift에 Metrcis-Server를 배포하는 방법에 대해 소개하겠습니다.
* Metrics의 데이터를 저장하기 위해 Pod의 볼륨 또는 Persistent Volume을 생성해야 합니다.
1. Metrcis storage 준비
1) 마운트할 디렉토리 생성
$ mkdir /exports
2) nfs 설정
$ vi /etc/exports
/exports *(rw,no_root_squash)
3) nfs 서비스 활성화
$ systemctl restart nfs-server
$ exportfs
2. Persistent Volume 생성
1) pv 생성
$ cat pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
creationTimestamp: null
finalizers:
- kubernetes.io/pv-protection
labels:
storage: metrics
name: metrcis-canssandra
namespace: "openshift-infra"
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 30Gi
nfs:
path: /exports/metrics
server: 192.168.50.100
persistentVolumeReclaimPolicy: Retain
status: {}
2) pvc 생성
$ cat pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
pv.kubernetes.io/bind-completed: "yes"
pv.kubernetes.io/bound-by-controller: "yes"
creationTimestamp: null
finalizers:
- kubernetes.io/pvc-protection
labels:
storage: metrics
namespace: "openshift-infra"
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 30Gi
selector:
matchLabels:
project: openshift-infra
volumeName: metrics-cassandra-1
status: {}
3. Ansible 인벤토리 설정
...
# Cluster Metrics
openshift_metrics_install_metrics=true
openshift_metrics_cassandra_nodeselector={'node-role.kubernetes.io/infra': 'true'}
openshift_metrics_hawkular_nodeselector={'node-role.kubernetes.io/infra': 'true'}
openshift_metrics_heapster_nodeselector={'node-role.kubernetes.io/infra': 'true'}
openshift_metrics_install_hawkular_agent=true
openshift_metrics_server_install=true
# Metrics NFS
openshift_metrics_storage_labels={'storage': 'metrics'}
openshift_metrics_storage_kind=nfs
openshift_metrics_storage_access_modes=['ReadWriteOnce']
openshift_metrics_storage_host=192.168.211.147
openshift_metrics_storage_nfs_directory=/exports
openshift_metrics_storage_volume_name=metrics
openshift_metrics_storage_volume_size=50Gi
...
4. Playbook 실행
$ ansible-playbook -i </path/inventory> /usr/share/ansible/openshift-ansible/playbooks/openshift-logging/config.yml -vv
참고 URL
https://docs.okd.io/3.11/install_config/cluster_metrics.html
댓글목록 0
등록된 댓글이 없습니다.