2.11. 为手动 DNS Management 配置 Ingress Controller
作为集群管理员,在创建 Ingress Controller 时,Operator 会自动管理 DNS 记录。当所需的 DNS 区域与集群 DNS 区域不同或 DNS 区域被托管在云供应商时,这有一些限制。
作为集群管理员,您可以将 Ingress Controller 配置为停止自动 DNS 管理并启动手动 DNS 管理。将 dnsManagementPolicy
设置为指定应自动或手动管理的时间。
当您将 Ingress Controller 从 Managed
改为 Unmanaged
DNS 管理策略时,Operator 不会清理在云中置备的以前的通配符 DNS 记录。当您将 Ingress Controller 从 Unmanaged
改为 Managed
DNS 管理策略时,Operator 会尝试在云供应商上创建 DNS 记录(如果不存在),或更新 DNS 记录(如果已存在)。
当您将 dnsManagementPolicy
设置为 unmanaged
时,您必须手动管理云供应商上的通配符 DNS 记录的生命周期。
2.11.1. Managed DNS 管理策略 复制链接链接已复制到粘贴板!
Ingress Controller 的 Managed
DNS 管理策略可确保云供应商上通配符 DNS 记录的生命周期由 Operator 自动管理。
2.11.2. Unmanaged DNS 管理策略 复制链接链接已复制到粘贴板!
Ingress Controller 的 Unmanaged
DNS 管理策略可确保云供应商上通配符 DNS 记录的生命周期不会自动管理,而是由集群管理员负责。
在 AWS 云平台中,如果 Ingress Controller 上的域与 dnsConfig.Spec.BaseDomain
不匹配,则 DNS 管理策略会自动设置为 Unmanaged
。
2.11.3. 使用 Unmanaged DNS 管理策略创建自定义 Ingress Controller 复制链接链接已复制到粘贴板!
作为集群管理员,您可以使用 Unmanaged
DNS 管理策略创建新的自定义 Ingress Controller。
先决条件
-
安装 OpenShift CLI(
oc
)。 -
以具有
cluster-admin
特权的用户身份登录。
流程
创建名为
sample-ingress.yaml
的自定义资源 (CR) 文件,包含以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 保存文件以使改变生效。
oc apply -f <name>.yaml
oc apply -f <name>.yaml
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.11.4. 修改现有 Ingress Controller 复制链接链接已复制到粘贴板!
作为集群管理员,您可以修改现有 Ingress Controller 以手动管理 DNS 记录生命周期。
先决条件
-
安装 OpenShift CLI(
oc
)。 -
以具有
cluster-admin
特权的用户身份登录。
流程
修改所选
IngressController
来设置dnsManagementPolicy
:SCOPE=$(oc -n openshift-ingress-operator get ingresscontroller <name> -o=jsonpath="{.status.endpointPublishingStrategy.loadBalancer.scope}") oc -n openshift-ingress-operator patch ingresscontrollers/<name> --type=merge --patch='{"spec":{"endpointPublishingStrategy":{"type":"LoadBalancerService","loadBalancer":{"dnsManagementPolicy":"Unmanaged", "scope":"${SCOPE}"}}}}'
SCOPE=$(oc -n openshift-ingress-operator get ingresscontroller <name> -o=jsonpath="{.status.endpointPublishingStrategy.loadBalancer.scope}") oc -n openshift-ingress-operator patch ingresscontrollers/<name> --type=merge --patch='{"spec":{"endpointPublishingStrategy":{"type":"LoadBalancerService","loadBalancer":{"dnsManagementPolicy":"Unmanaged", "scope":"${SCOPE}"}}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 可选:您可以删除云供应商中的关联的 DNS 记录。