您能简单总结一下以下两个定义的作用以及何时应该使用它们吗?
spec: hostNetwork: true dnsPolicy: ClusterFirstWithHostNet
我对 Kubernetesst 中的网络没有足够的了解,我发现的文章对我来说无法理解。
如有疑问,您可以随时使用
explain
命令:
kubectl explain pod.spec.hostNetwork
KIND: Pod
VERSION: v1
FIELD: hostNetwork <boolean>
DESCRIPTION:
Host networking requested for this pod. Use the host's network namespace. If
this option is set, the ports that will be used must be specified. Default
to false.
此命名空间是网络命名空间,而不是 Kubernetes 命名空间。当 Pod 被调度到节点上时,它们会从主机获得一个新的隔离网络命名空间。如果您的 Pod 特别需要特权主机网络访问,那么您需要此选项。
dnsPolicy: ClusterFirstWithHostNet
上述 Pod 设置意味着您需要像普通 Pod 一样进行集群 DNS 解析(通过 CoreDNS),即使您设置了
hostNetwork: true
(未在主机网络命名空间中运行的 Pod)。如果不设置,Pod 将使用主机的 DNS 配置进行 DNS 解析(不能用于解析 k8s 服务端点)。