$ export VPC_ID=<vpc_ID> (1)
$ export REGION=<region> (2)
$ export VPC_CIDR=<vpc_CIDR> (3)
自定义 DHCP 选项集自定义 DHCP 选项集允许您使用自己的 DNS 服务器、域名等自定义您的 VPC。AWS 上的 Red Hat OpenShift 服务 (ROSA) 集群支持使用自定义 DHCP 选项集。默认情况下,ROSA 集群需要将“域名服务器”选项设置为AmazonProvidedDNS,以确保集群成功创建和运行。想要使用自定义 DNS 服务器进行 DNS 解析的客户必须进行额外配置,以确保 ROSA 集群成功创建和运行。
在本教程中,我们将配置我们的 DNS 服务器,以便将特定 DNS 区域(如下所述)的 DNS 查询转发到Amazon Route 53 入站解析器。
|
本教程使用开源 BIND DNS 服务器 ( |
配置以下环境变量
$ export VPC_ID=<vpc_ID> (1)
$ export REGION=<region> (2)
$ export VPC_CIDR=<vpc_CIDR> (3)
| 1 | 将<vpc_ID>替换为您要安装集群的 VPC 的 ID。 |
| 2 | 将<region>替换为您要安装集群的 AWS 区域。 |
| 3 | 将<vpc_CIDR>替换为 VPC 的 CIDR 范围。 |
确保所有字段正确输出,然后才能进入下一节。
$ echo "VPC ID: ${VPC_ID}, VPC CIDR Range: ${VPC_CIDR}, Region: ${REGION}"
使用以下步骤在我们将要部署集群的 VPC 中部署Amazon Route 53 入站解析器。
|
在此示例中,我们将 Amazon Route 53 入站解析器部署到集群将使用的同一 VPC 中。如果您想将其部署到单独的 VPC,则必须在**集群创建启动后**手动关联下面详细说明的专用托管区域。您不能在集群创建过程开始之前关联区域。在集群创建过程中未能关联专用托管区域将导致集群创建失败。 |
创建一个安全组,并允许 VPC 访问端口53/tcp和53/udp。
$ SG_ID=$(aws ec2 create-security-group --group-name rosa-inbound-resolver --description "Security group for ROSA inbound resolver" --vpc-id ${VPC_ID} --region ${REGION} --output text)
$ aws ec2 authorize-security-group-ingress --group-id ${SG_ID} --protocol tcp --port 53 --cidr ${VPC_CIDR} --region ${REGION}
$ aws ec2 authorize-security-group-ingress --group-id ${SG_ID} --protocol udp --port 53 --cidr ${VPC_CIDR} --region ${REGION}
在您的 VPC 中创建一个 Amazon Route 53 入站解析器。
$ RESOLVER_ID=$(aws route53resolver create-resolver-endpoint \
--name rosa-inbound-resolver \
--creator-request-id rosa-$(date '+%Y-%m-%d') \
--security-group-ids ${SG_ID} \
--direction INBOUND \
--ip-addresses $(aws ec2 describe-subnets --filter Name=vpc-id,Values=${VPC_ID} --region ${REGION} | jq -jr '.Subnets | map("SubnetId=\(.SubnetId) ") | .[]') \
--region ${REGION} \
--output text \
--query 'ResolverEndpoint.Id')
|
上述命令使用动态分配的 IP 地址将 Amazon Route 53 入站解析器端点附加到提供的 VPC 中的所有子网。如果您希望手动指定子网和/或 IP 地址,请运行以下命令:
|
获取入站解析器端点的 IP 地址,以便在您的 DNS 服务器配置中进行配置。
$ aws route53resolver list-resolver-endpoint-ip-addresses \
--resolver-endpoint-id ${RESOLVER_ID} \
--region=${REGION} \
--query 'IpAddresses[*].Ip'
[
"10.0.45.253",
"10.0.23.131",
"10.0.148.159"
]
使用以下步骤配置您的 DNS 服务器,以便将必要的专用托管区域转发到您的 Amazon Route 53 入站解析器。
带有 HCP 集群的 ROSA 需要您为两个专用托管区域配置 DNS 转发
<cluster-name>.hypershift.local
rosa.<domain-prefix>.<unique-ID>.p3.openshiftapps.com
这些 Amazon Route 53 专用托管区域是在集群创建期间创建的。cluster-name和domain-prefix是客户指定的,但unique-ID是在集群创建期间随机生成的,无法预先选择。因此,您必须等到集群创建过程开始后才能配置p3.openshiftapps.com专用托管区域的转发。
在创建集群之前,请配置您的 DNS 服务器,以便将所有对<cluster-name>.hypershift.local的 DNS 请求转发到您的 Amazon Route 53 入站解析器端点。对于 BIND DNS 服务器,请在您喜欢的文本编辑器中编辑您的/etc/named.conf文件,并使用以下示例添加一个新区域
zone "<cluster-name>.hypershift.local" { (1)
type forward;
forward only;
forwarders { (2)
10.0.45.253;
10.0.23.131;
10.0.148.159;
};
};
| 1 | 将<cluster-name>替换为您的 ROSA HCP 集群名称。 |
| 2 | 替换为您上面收集的入站解析器端点的 IP 地址,确保每个 IP 地址后都有一个;。 |
集群开始创建过程后,找到新创建的专用托管区域
$ aws route53 list-hosted-zones-by-vpc \
--vpc-id ${VPC_ID} \
--vpc-region ${REGION} \
--query 'HostedZoneSummaries[*].Name' \
--output table
--------------------------------------------------
| ListHostedZonesByVPC |
+------------------------------------------------+
| rosa.domain-prefix.lkmb.p3.openshiftapps.com. |
| cluster-name.hypershift.local. |
+------------------------------------------------+
|
集群创建过程可能需要几分钟才能在 Route 53 中创建专用托管区域。如果您没有看到 |
一旦您知道集群域的唯一 ID,请配置您的 DNS 服务器,以便将所有对rosa.<domain-prefix>.<unique-ID>.p3.openshiftapps.com的 DNS 请求转发到您的 Amazon Route 53 入站解析器端点。对于 BIND DNS 服务器,请在您喜欢的文本编辑器中编辑您的/etc/named.conf文件,并使用以下示例添加一个新区域
zone "rosa.<domain-prefix>.<unique-ID>.p3.openshiftapps.com" { (1)
type forward;
forward only;
forwarders { (2)
10.0.45.253;
10.0.23.131;
10.0.148.159;
};
};
| 1 | 将<domain-prefix>替换为您的集群域前缀,将<unique-ID>替换为您上面收集的唯一 ID。 |
| 2 | 替换为您上面收集的入站解析器端点的 IP 地址,确保每个 IP 地址后都有一个;。 |
ROSA Classic 集群需要您为一个专用托管区域配置 DNS 转发
<domain-prefix>.<unique-ID>.p1.openshiftapps.com
此 Amazon Route 53 专用托管区域是在集群创建期间创建的。domain-prefix是客户指定的,但unique-ID是在集群创建期间随机生成的,无法预先选择。因此,您必须等到集群创建过程开始后才能配置p1.openshiftapps.com专用托管区域的转发。
集群开始创建过程后,找到新创建的专用托管区域
$ aws route53 list-hosted-zones-by-vpc \
--vpc-id ${VPC_ID} \
--vpc-region ${REGION} \
--query 'HostedZoneSummaries[*].Name' \
--output table
----------------------------------------------
| ListHostedZonesByVPC |
+--------------------------------------------+
| domain-prefix.agls.p3.openshiftapps.com. |
+--------------------------------------------+
|
集群创建过程可能需要几分钟才能在 Route 53 中创建专用托管区域。如果您没有看到 |
一旦您知道集群域的唯一 ID,请配置您的 DNS 服务器,以便将所有对<domain-prefix>.<unique-ID>.p1.openshiftapps.com的 DNS 请求转发到您的 Amazon Route 53 入站解析器端点。对于 BIND DNS 服务器,请在您喜欢的文本编辑器中编辑您的/etc/named.conf文件,并使用以下示例添加一个新区域
zone "<domain-prefix>.<unique-ID>.p1.openshiftapps.com" { (1)
type forward;
forward only;
forwarders { (2)
10.0.45.253;
10.0.23.131;
10.0.148.159;
};
};
| 1 | 将<domain-prefix>替换为您的集群域前缀,将<unique-ID>替换为您上面收集的唯一 ID。 |
| 2 | 替换为您上面收集的入站解析器端点的 IP 地址,确保每个 IP 地址后都有一个;。 |