首页 > 解决方案 > AZURE OPENSHIFT DNSConfig 和 Ingress/Egress NetworkPolicy?

问题描述

伙计们,我对 openshift 非常陌生,我部署了一个 Azure Redhat Openshift 集群,并且可以以管理员身份访问 Web 控制台。

我通过直接提供 github url 使用内置 S2I 模式在 Openshift 集群中部署了一个示例应用程序,并且该应用程序已成功部署。

现在我的要求是实现 DNSConfig 和 Ingress/Egress NetworkPolicy。

我很新,无法理解 DNSConfig 和 Ingress/Egress NetworkPolicy 到底是什么。

有人可以解释一下这些是什么以及我们如何将这些实现到部署在该 Azure openshift 控制台中的演示应用程序中。

请帮忙。

提前致谢。

标签: dnsopenshiftkubernetes-ingresskubernetes-networkpolicyaro

解决方案


最好的办法是熟悉官方文档。

Pod 的 DNS 配置

Pod 的 DNS 配置允许用户对 Pod 的 DNS 设置进行更多控制。

dnsConfig字段是可选的,它可以与任何dnsPolicy 设置一起使用。但是,当 PoddnsPolicy设置为“ None”时, dnsConfig必须指定该字段。

以下是用户可以在dnsConfig字段中指定的属性:

  • nameservers:将用作 Pod 的 DNS 服务器的 IP 地址列表。最多可以指定 3 个 IP 地址。当 PoddnsPolicy设置为“None”时,列表必须至少包含一个 IP 地址,否则该属性是可选的。列出的服务器将与从指定 DNS 策略生成的基本名称服务器合并,并删除重复地址。

  • searches:用于在 Pod 中查找主机名的 DNS 搜索域列表。该属性是可选的。指定后,提供的列表将合并到从所选 DNS 策略生成的基本搜索域名中。重复的域名被删除。Kubernetes 最多允许 6 个搜索域。

  • options:一个可选的对象列表,其中每个对象可能有一个name属性(必需)和一个value属性(可选)。此属性中的内容将合并到从指定 DNS 策略生成的选项中。重复条目被删除。

网络政策

如果您想在 IP 地址或端口级别(OSI 第 3 层或第 4 层)控制流量,则可以考虑将 Kubernetes NetworkPolicies 用于集群中的特定应用程序。NetworkPolicies 是一个以应用程序为中心的构造,它允许您指定 Pod 如何与各种网络“实体”进行通信(我们在这里使用“实体”一词来避免重载更常见的术语,例如“端点”和“服务” ,具有特定的 Kubernetes 内涵)在网络上。

Pod 可以与之通信的实体通过以下 3 个标识符的组合来标识:

  1. 允许的其他 Pod(例外:Pod 不能阻止对自身的访问)

  2. 允许的命名空间

  3. IP 块(例外:始终允许进出运行 Pod 的节点的流量,无论 Pod 或节点的 IP 地址如何)

在定义基于 pod 或命名空间的 NetworkPolicy 时,您使用选择器来指定允许进出与选择器匹配的 Pod 的流量。

同时,当创建基于 IP 的网络策略时,我们基于 IP 块(CIDR 范围)定义策略。

这些主题在链接的文档中有更详细的解释。您还可以找到一些示例来帮助您在用例中实现它。


推荐阅读