27.3.4.2. 설치 프로그램 사용
glusterfs 및 glusterfs
_registry
노드 그룹에 별도의 노드를 사용합니다. 각 인스턴스는 독립적으로 관리 되므로 별도의 Gluster
인스턴스여야 합니다. glusterfs 및 glusterfs
_registry
노드 그룹에 동일한 노드를 사용하면 배포에 실패합니다.
클러스터 설치 프로세스를 사용하여 두 개의 GlusterFS 노드 그룹 중 하나 또는 둘 다를 설치할 수 있습니다.
-
glusterfs
: 사용자 애플리케이션에서 사용할 일반 스토리지 클러스터. -
glusterfs_registry
: 통합된 OpenShift Container Registry와 같은 인프라 애플리케이션에서 사용할 전용 스토리지 클러스터입니다.
I/O 및 볼륨 생성의 성능에 잠재적 영향을 주지 않도록 두 그룹을 모두 배포하는 것이 좋습니다. 이 두 가지는 모두 인벤토리 호스트 파일에 정의되어 있습니다.
스토리지 클러스터를 정의하려면 [OSEv3:children]
그룹에 관련 이름을 포함하여 유사한 명명된 그룹을 생성합니다. 그런 다음, 그룹 을 노드 정보로 채웁니다.
[OSEv3:children]
그룹에서 masters
,nodes
,etcd
, glusterfs 및 glusterfs
_registry
스토리지 클러스터를 추가합니다.
그룹을 생성하고 채운 후 [OSEv3:vars]
그룹에 더 많은 매개변수 값을 정의하여 클러스터를 구성합니다. 변수는 다음 예와 같이 GlusterFS 클러스터와 상호 작용하며 인벤토리 파일에 저장됩니다.
-
GlusterFS
변수는openshift_storage_glusterfs_
로 시작합니다. -
glusterfs_registry
변수는openshift_storage_glusterfs_registry_
로 시작합니다.
인벤토리 파일의 다음 예제에서는 두 개의 GlusterFS 노드 그룹을 배포할 때 변수 사용을 보여줍니다.
`[OSEv3:children] masters nodes etcd glusterfs glusterfs_registry` [OSEv3:vars] install_method=rpm os_update=false install_update_docker=true docker_storage_driver=devicemapper ansible_ssh_user=root openshift_release=v3.11 oreg_url=registry.access.redhat.com/openshift3/ose-${component}:v3.11 #openshift_cockpit_deployer_image='registry.redhat.io/openshift3/registry-console:v3.11' openshift_docker_insecure_registries=registry.access.redhat.com openshift_deployment_type=openshift-enterprise openshift_web_console_install=true openshift_enable_service_catalog=false osm_use_cockpit=false osm_cockpit_plugins=['cockpit-kubernetes'] debug_level=5 openshift_set_hostname=true openshift_override_hostname_check=true openshift_disable_check=docker_image_availability openshift_check_min_host_disk_gb=2 openshift_check_min_host_memory_gb=1 openshift_portal_net=172.31.0.0/16 openshift_master_cluster_method=native openshift_clock_enabled=true openshift_use_openshift_sdn=true openshift_master_dynamic_provisioning_enabled=true # logging openshift_logging_install_logging=true openshift_logging_es_pvc_dynamic=true openshift_logging_kibana_nodeselector={"node-role.kubernetes.io/infra": "true"} openshift_logging_curator_nodeselector={"node-role.kubernetes.io/infra": "true"} openshift_logging_es_nodeselector={"node-role.kubernetes.io/infra": "true"} openshift_logging_es_pvc_size=20Gi openshift_logging_es_pvc_storage_class_name="glusterfs-registry-block" # metrics openshift_metrics_install_metrics=true openshift_metrics_storage_kind=dynamic openshift_metrics_hawkular_nodeselector={"node-role.kubernetes.io/infra": "true"} openshift_metrics_cassandra_nodeselector={"node-role.kubernetes.io/infra": "true"} openshift_metrics_heapster_nodeselector={"node-role.kubernetes.io/infra": "true"} openshift_metrics_storage_volume_size=20Gi openshift_metrics_cassandra_pvc_storage_class_name="glusterfs-registry-block" # glusterfs openshift_storage_glusterfs_timeout=900 openshift_storage_glusterfs_namespace=glusterfs openshift_storage_glusterfs_storageclass=true openshift_storage_glusterfs_storageclass_default=false openshift_storage_glusterfs_block_storageclass=true openshift_storage_glusterfs_block_storageclass_default=false openshift_storage_glusterfs_block_deploy=true openshift_storage_glusterfs_block_host_vol_create=true openshift_storage_glusterfs_block_host_vol_size=100 # glusterfs_registry openshift_storage_glusterfs_registry_namespace=glusterfs-registry openshift_storage_glusterfs_registry_storageclass=true openshift_storage_glusterfs_registry_storageclass_default=false openshift_storage_glusterfs_registry_block_storageclass=true openshift_storage_glusterfs_registry_block_storageclass_default=false openshift_storage_glusterfs_registry_block_deploy=true openshift_storage_glusterfs_registry_block_host_vol_create=true openshift_storage_glusterfs_registry_block_host_vol_size=100 # glusterfs_registry_storage openshift_hosted_registry_storage_kind=glusterfs openshift_hosted_registry_storage_volume_size=20Gi openshift_hosted_registry_selector="node-role.kubernetes.io/infra=true" openshift_storage_glusterfs_heketi_admin_key='adminkey' openshift_storage_glusterfs_heketi_user_key='heketiuserkey' openshift_storage_glusterfs_image='registry.access.redhat.com/rhgs3/rhgs-server-rhel7:v3.11' openshift_storage_glusterfs_heketi_image='registry.access.redhat.com/rhgs3/rhgs-volmanager-rhel7:v3.11' openshift_storage_glusterfs_block_image='registry.access.redhat.com/rhgs3/rhgs-gluster-block-prov-rhel7:v3.11' openshift_master_cluster_hostname=node101.redhat.com openshift_master_cluster_public_hostname=node101.redhat.com [masters] node101.redhat.com [etcd] node101.redhat.com [nodes] node101.redhat.com openshift_node_group_name="node-config-master" node102.redhat.com openshift_node_group_name="node-config-infra" node103.redhat.com openshift_node_group_name="node-config-compute" node104.redhat.com openshift_node_group_name="node-config-compute" node105.redhat.com openshift_node_group_name="node-config-compute" node106.redhat.com openshift_node_group_name="node-config-compute" node107.redhat.com openshift_node_group_name="node-config-compute" node108.redhat.com openshift_node_group_name="node-config-compute" [glusterfs] node103.redhat.com glusterfs_zone=1 glusterfs_devices='["/dev/sdd"]' node104.redhat.com glusterfs_zone=2 glusterfs_devices='["/dev/sdd"]' node105.redhat.com glusterfs_zone=3 glusterfs_devices='["/dev/sdd"]' [glusterfs_registry] node106.redhat.com glusterfs_zone=1 glusterfs_devices='["/dev/sdd"]' node107.redhat.com glusterfs_zone=2 glusterfs_devices='["/dev/sdd"]' node108.redhat.com glusterfs_zone=3 glusterfs_devices='["/dev/sdd"]'
27.3.4.2.1. 호스트 변수
glusterfs 및 glusterfs
_registry
그룹의 각 호스트에는 glusterfs_devices
변수가 정의되어 있어야 합니다. 이 변수는 GlusterFS 클러스터의 일부로 관리할 블록 장치 목록을 정의합니다. 하나 이상의 장치가 있어야 하며 파티션이나 LVM PV가 없어야 합니다.
각 호스트에 대해 다음 변수를 정의할 수도 있습니다. 이러한 변수가 정의된 경우 이러한 변수는 호스트 구성을 GlusterFS 노드로 추가로 제어합니다.
-
glusterfs_cluster
: 이 노드가 속하는 클러스터의 ID입니다. -
glusterfs_hostname
: 내부 GlusterFS 통신에 사용할 호스트 이름 또는 IP 주소입니다. -
glusterfs_ip
: 포드가 GlusterFS 노드와 통신하는 데 사용하는 IP 주소입니다. -
glusterfs_zone
: 노드의 영역 번호입니다. 클러스터 내에서 영역은 GlusterFS 볼륨의 brick을 배포하는 방법을 결정합니다.