保护 Kubernetes 主机
Protect Kubernetes hosts
我有一个带有 calico 的 kubernetes 集群。我想防止路由通过外部接口到达集群的内部 clusterIPs
。我打算使用 this.
应该为哪些接口定义hostendpoint
?是只有 Kubernetes 被通告的接口,还是集群中所有的外部接口?
你提到的文章中的例子有:spec.interfaceName: eth0
。你试过了吗?
For each host point that you want to secure with policy, you must create a HostEndpoint object. To do that, you need the name of the Calico node on the host that owns the interface; in most cases, it is the same as the hostname of the host.
In the following example, we create a HostEndpoint for the host named my-host with the interface named eth0, with IP 10.0.0.1. Note that the value for node: must match the hostname used on the Calico node object.
When the HostEndpoint is created, traffic to or from the interface is dropped unless policy is in place.
apiVersion: projectcalico.org/v3
kind: HostEndpoint
metadata:
name: my-host-eth0
labels:
role: k8s-worker
environment: production
spec:
interfaceName: eth0
node: my-host
expectedIPs: ["10.0.0.1"]
您应该为每个您希望block/filter 传输流量的网络接口以及集群中的每个节点定义一个 HostEndpoint,因为这种类型的给定 HostEndpoint 仅保护一个接口单个节点。
此外,由于在 Calico 中定义 HostEndpoint 会立即阻止所有网络流量流向该节点和网络接口(默认情况下一些“故障安全”端口除外),因此请确保在定义之前准备好网络策略您的 HostEndpoints,因此将允许您要允许的流量。您需要考虑是否需要允许流量 to/from 每个节点上的 kubelet,to/from 您的 DNS 服务器等
一个常见的模式是将 HostEndpoints 用于 public 网络接口,因为它们是最暴露的,而不是用于您的私有网络接口,因为理想情况下,它们用于您的 pod 到 pod 和节点到节点的流量Kubernetes 集群需要才能正常运行。
我有一个带有 calico 的 kubernetes 集群。我想防止路由通过外部接口到达集群的内部 clusterIPs
。我打算使用 this.
应该为哪些接口定义hostendpoint
?是只有 Kubernetes 被通告的接口,还是集群中所有的外部接口?
你提到的文章中的例子有:spec.interfaceName: eth0
。你试过了吗?
For each host point that you want to secure with policy, you must create a HostEndpoint object. To do that, you need the name of the Calico node on the host that owns the interface; in most cases, it is the same as the hostname of the host.
In the following example, we create a HostEndpoint for the host named my-host with the interface named eth0, with IP 10.0.0.1. Note that the value for node: must match the hostname used on the Calico node object.
When the HostEndpoint is created, traffic to or from the interface is dropped unless policy is in place.
apiVersion: projectcalico.org/v3
kind: HostEndpoint
metadata:
name: my-host-eth0
labels:
role: k8s-worker
environment: production
spec:
interfaceName: eth0
node: my-host
expectedIPs: ["10.0.0.1"]
您应该为每个您希望block/filter 传输流量的网络接口以及集群中的每个节点定义一个 HostEndpoint,因为这种类型的给定 HostEndpoint 仅保护一个接口单个节点。
此外,由于在 Calico 中定义 HostEndpoint 会立即阻止所有网络流量流向该节点和网络接口(默认情况下一些“故障安全”端口除外),因此请确保在定义之前准备好网络策略您的 HostEndpoints,因此将允许您要允许的流量。您需要考虑是否需要允许流量 to/from 每个节点上的 kubelet,to/from 您的 DNS 服务器等
一个常见的模式是将 HostEndpoints 用于 public 网络接口,因为它们是最暴露的,而不是用于您的私有网络接口,因为理想情况下,它们用于您的 pod 到 pod 和节点到节点的流量Kubernetes 集群需要才能正常运行。