Red Hat Training
A Red Hat training course is available for OpenShift Container Platform
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。