43.2. 创建 primed 镜像
您可以使用 Ansible playbook 自动创建一个 primed 镜像,供自动扩展器使用。您必须从现有 Amazon Web Services(AWS)集群中提供属性。
注意
如果您已经有 primed 镜像,您可以使用它而不是创建新镜像。
流程
在用于创建 OpenShift Container Platform 集群的主机上,创建一个 primed 镜像:
在本地主机上创建一个新的 Ansible 清单文件。此文件需要分配
cloudprovider
标志的变量,以便在参与的节点上启用自动扩展。如果没有这些变量,build_ami.yml
playbook 无法使用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]
在本地主机上创建置备文件 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
- 指定
False
来禁用 VPC 的创建。 - 4
- 提供集群在其中运行的现有 VPC 名称。
- 5
- 提供现有集群在其中运行的子网名称。
- 6
- 指定
False
来禁用安全组的创建。 - 7
- 提供要用于 SSH 访问的 AWS 密钥名称。
- 8
- 提供 AMI 镜像 ID,以用作 primed 镜像的基础镜像。请参阅 Red Hat® Cloud Access。
- 9
- 指定
False
来禁用 S3 存储桶的创建。 - 10
- 提供安全组名称。
- 11
- 提供现有集群的 VPC 子网。
- 12
- 指定
overlay2
作为 Docker 存储类型。 - 13
- 指定 LVM 和 /var/lib/docker 目录的挂载点。
- 14
- 如果使用 Red Hat Cloud,则将此参数设置为
true
,使其在文件系统中启用gquota
。 - 15
- 为具有有效 OpenShift Container Platform 订阅的红帽帐户指定电子邮件地址。
- 16
- 指定红帽帐户的密码
- 17
- 为 OpenShift Container Platform 订阅指定一个池 ID。您可以使用创建集群时所用的相同池 ID。
运行 build_ami.yml playbook 以生成 primed 镜像:
# ansible-playbook -i </path/to/inventory/file> \ /usr/openshift-ansible/playbooks/aws/openshift-cluster/build_ami.yml \ -e @build-ami-provisioning-vars.yaml
playbook 运行后,您会在其输出中看到新镜像 ID 或 AMI。您可以指定在创建 Launch Configuration 时生成的 AMI。