Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

43.2. 기본 이미지 생성

Ansible 플레이북을 사용하여 자동 스케일러가 사용할 기본 이미지를 자동으로 생성할 수 있습니다. 기존 AWS(Amazon Web Services) 클러스터에서 속성을 제공해야 합니다.

참고

기본 이미지가 이미 있는 경우 새 이미지를 생성하는 대신 사용할 수 있습니다.

절차

OpenShift Container Platform 클러스터를 생성하는 데 사용한 호스트에서 기본 이미지를 생성합니다.

  1. 로컬 호스트에 새 Ansible 인벤토리 파일을 생성합니다. 이 파일에는 참여 노드에서 자동 스케일링을 활성화하기 위해 cloudprovider 플래그를 할당하는 변수가 필요합니다. 이러한 변수가 없으면 build_ami.yml 플레이북에서 openshift_cloud_provider 역할을 사용할 수 없습니다.

    [OSEv3:children]
    masters
    nodes
    etcd
    
    [OSEv3:vars]
    openshift_deployment_type=openshift-enterprise
    ansible_ssh_user=ec2-user
    openshift_clusterid=mycluster
    ansible_become=yes
    openshift_cloudprovider_kind=aws 1
    openshift_cloudprovider_aws_access_key=<aws_access_key> 2
    openshift_cloudprovider_aws_secret_key=<aws_secret_key> 3
    
    [masters]
    [etcd]
    [nodes]
    1
    클라우드 프로바이더의 유형을 지정합니다.
    2
    클라우드 공급자 IAM(Identity and Access Management) 액세스 키를 제공합니다.
    3
    클라우드에서 IAM 비밀 키를 제공합니다.
  2. 로컬 호스트에 프로비저닝 파일 build-ami-provisioning-vars.yaml 을 생성합니다.

    openshift_deployment_type: openshift-enterprise
    
    openshift_aws_clusterid: mycluster 1
    
    openshift_aws_region: us-east-1 2
    
    openshift_aws_create_vpc: false 3
    
    openshift_aws_vpc_name: production 4
    
    openshift_aws_subnet_az: us-east-1d 5
    
    openshift_aws_create_security_groups: false 6
    
    openshift_aws_ssh_key_name: production-ssh-key 7
    
    openshift_aws_base_ami: ami-12345678 8
    
    openshift_aws_create_s3: False 9
    
    openshift_aws_build_ami_group: default 10
    
    openshift_aws_vpc: 11
      name: "{{ openshift_aws_vpc_name }}"
      cidr: 172.18.0.0/16
      subnets:
        us-east-1:
        - cidr: 172.18.0.0/20
          az: "us-east-1d"
    
    container_runtime_docker_storage_type: overlay2 12
    container_runtime_docker_storage_setup_device: /dev/xvdb 13
    
    # atomic-openshift-node service requires gquota to be set on the
    # filesystem that hosts /var/lib/origin/openshift.local.volumes (OCP
    # emptydir). Often is it not ideal or cost effective to deploy a vol
    # for emptydir. This pushes emptydir up to the / filesystem. Base ami
    # often does not ship with gquota enabled for /. Set this bool true to
    # enable gquota on / filesystem when using Red Hat Cloud Access RHEL7
    # AMI or Amazon Market RHEL7 AMI.
    openshift_aws_ami_build_set_gquota_on_slashfs: true 14
    
    rhsub_user: user@example.com 15
    rhsub_pass: password 16
    rhsub_pool: pool-id 17
    1
    기존 클러스터의 이름을 제공합니다.
    2
    기존 클러스터가 현재 실행 중인 리전을 제공합니다.
    3
    VPC 생성을 비활성화하려면 False 를 지정합니다.
    4
    클러스터가 실행 중인 기존 VPC 이름을 제공합니다.
    5
    기존 클러스터가 실행 중인 서브넷의 이름을 제공합니다.
    6
    보안 그룹 생성을 비활성화하려면 False 를 지정합니다.
    7
    SSH 액세스에 사용할 AWS 키 이름을 제공합니다.
    8
    기본 이미지의 기본 이미지로 사용할 AMI 이미지 ID를 제공합니다. Red Hat® Cloud Access 를 참조하십시오.
    9
    S3 버킷 생성을 비활성화하려면 False 를 지정합니다.
    10
    보안 그룹 이름을 입력합니다.
    11
    기존 클러스터가 실행 중인 VPC 서브넷을 제공합니다.
    12
    overlay2 를 Docker 스토리지 유형으로 지정합니다.
    13
    LVM 및 /var/lib/docker 디렉터리의 마운트 지점을 지정합니다.
    14
    Red Hat Cloud를 사용하는 경우 이 매개변수 값을 true 로 설정하여 파일 시스템에서 gquota 를 활성화합니다.
    15
    활성 OpenShift Container Platform 서브스크립션을 사용하여 Red Hat 계정의 이메일 주소를 지정합니다.
    16
    Red Hat 계정의 암호를 지정합니다
    17
    OpenShift Container Platform 서브스크립션의 풀 ID를 지정합니다. 클러스터를 만들 때 사용한 것과 동일한 풀 ID를 사용할 수 있습니다.
  3. build_ami.yml 플레이북을 실행하여 기본 이미지를 생성합니다.

    # ansible-playbook -i </path/to/inventory/file> \
        /usr/openshift-ansible/playbooks/aws/openshift-cluster/build_ami.yml \
        -e @build-ami-provisioning-vars.yaml

    플레이북이 실행되면 출력에 새 이미지 ID 또는 AMI가 표시됩니다. 시작 구성을 생성할 때 생성되는 AMI를 지정합니다.