$ 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 地址后都有一个; 。 |