第 4 章 OpenShift Container Platform 中的 DNS Operator

DNS Operator 部署并管理 CoreDNS,以便为 Pod 提供名称解析服务,从而在 OpenShift 中启用基于 DNS 的 Kubernetes 服务发现。

4.1. DNS Operator

DNS Operator 从 operator.openshift.io API 组实现 dns API。Operator 使用 DaemonSet 部署 CoreDNS,为 DaemonSet 创建服务,并将 kubelet 配置为指示 Pod 使用 CoreDNS 服务 IP 进行名称解析。

流程

在安装过程中,DNS Operator 被部署为一个 Kubernetes 部署

  1. 使用 oc get 命令来查看部署状态:

    $ oc get -n openshift-dns-operator deployment/dns-operator

    输出示例

    NAME           READY     UP-TO-DATE   AVAILABLE   AGE
    dns-operator   1/1       1            1           23h

    ClusterOperator 是存放 Operator 当前状态的自定义资源对象。Operator 使用这个对象将其状态传递给集群的其余部分。

  2. 使用 oc get 命令来查看 DNS Operator 的状态:

    $ oc get clusteroperator/dns

    输出示例

    NAME      VERSION     AVAILABLE   PROGRESSING   DEGRADED   SINCE
    dns       4.1.0-0.11  True        False         False      92m

    AVAILABLEPROGRESSINGDEGRADED 提供了有关 Operator 状态的信息。当 CoreDNS DaemonSet 中至少有 1 个 Pod 报告了 Available 状态时,AVAILABLETrue