<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Network Policy 網絡策略說明一組 `Pod` 之間是如何被允許互相通信,以及如何與其它網絡 Endpoint 進行通信。 `NetworkPolicy` 資源使用標簽來選擇 `Pod`,并定義了一些規則,這些規則指明允許什么流量進入到選中的 `Pod` 上。關于 Network Policy 的詳細用法請參考 [Kubernetes 官網](https://kubernetes.io/docs/concepts/services-networking/network-policies/)。 Network Policy 的作用對象是 Pod,也可以應用到 Namespace 和集群的 Ingress、Egress 流量。Network Policy 是作用在 L3/4 層的,即限制的是對 IP 地址和端口的訪問,如果需要對應用層做訪問限制需要使用如 [Istio](https://istio.io/zh) 這類 Service Mesh。 ## 前提條件 網絡策略通過網絡插件來實現,所以必須使用一種支持 `NetworkPolicy` 的網絡方案(如 [calico](https://www.projectcalico.org/))—— 非 Controller 創建的資源,是不起作用的。 ## 隔離的與未隔離的 Pod 默認 Pod 是未隔離的,它們可以從任何的源接收請求。 具有一個可以選擇 Pod 的網絡策略后,Pod 就會變成隔離的。 一旦 Namespace 中配置的網絡策略能夠選擇一個特定的 Pod,這個 Pod 將拒絕任何該網絡策略不允許的連接。(Namespace 中其它未被網絡策略選中的 Pod 將繼續接收所有流量) ## `NetworkPolicy` 資源 下面是一個 `NetworkPolicy` 的例子: ```yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: test-network-policy namespace: default spec: podSelector: matchLabels: role: db policyTypes: - Ingress - Egress ingress: - from: - ipBlock: cidr: 172.17.0.0/16 except: - 172.17.1.0/24 - namespaceSelector: matchLabels: project: myproject - podSelector: matchLabels: role: frontend ports: - protocol: TCP port: 6379 egress: - to: - ipBlock: cidr: 10.0.0.0/24 ports: - protocol: TCP port: 5978 ``` *將上面配置 POST 到 API Server 將不起任何作用,除非選擇的網絡方案支持網絡策略。* **必選字段**:像所有其它 Kubernetes 配置一樣, `NetworkPolicy` 需要 `apiVersion`、`kind` 和 `metadata` 這三個字段,關于如何使用配置文件的基本信息,可以查看 [這里](https://kubernetes.io/docs/user-guide/configuring-containers) 和 [這里](https://kubernetes.io/docs/user-guide/working-with-resources)。 **spec**:`NetworkPolicy` [spec](https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status) 具有在給定 Namespace 中定義特定網絡的全部信息。 **podSelector**:每個 `NetworkPolicy` 包含一個 `podSelector`,它可以選擇一組應用了網絡策略的 Pod。由于 `NetworkPolicy` 當前只支持定義 `ingress` 規則,這個 `podSelector` 實際上為該策略定義了一組 “目標Pod”。示例中的策略選擇了標簽為 “role=db” 的 Pod。一個空的 `podSelector` 選擇了該 Namespace 中的所有 Pod。 **ingress**:每個`NetworkPolicy` 包含了一個白名單 `ingress` 規則列表。每個規則只允許能夠匹配上 `from` 和 `ports`配置段的流量。示例策略包含了單個規則,它從這兩個源中匹配在單個端口上的流量,第一個是通過`namespaceSelector` 指定的,第二個是通過 `podSelector` 指定的。 **egress**:每個`NetworkPolicy` 包含了一個白名單 `ingress` 規則列表。每個規則只允許能夠匹配上 `to` 和 `ports`配置段的流量。示例策略包含了單個規則,它匹配目的地 `10.0.0.0/24` 單個端口的流量。 因此,上面示例的 NetworkPolicy: 1. 在 “default” Namespace中 隔離了標簽 “role=db” 的 Pod(如果他們還沒有被隔離) 2. 在 “default” Namespace中,允許任何具有 “role=frontend” 的 Pod,IP 范圍在 172.17.0.0–172.17.0.255 和 172.17.2.0–172.17.255.255(整個 172.17.0.0/16 段, 172.17.1.0/24 除外)連接到標簽為 “role=db” 的 Pod 的 TCP 端口 6379 3. 允許在 Namespace 中任何具有標簽 “project=myproject” ,IP范圍在10.0.0.0/24段的 Pod,連接到 “default” Namespace 中標簽為 “role=db” 的 Pod 的 TCP 端口 5978 查看 [NetworkPolicy 入門指南](https://kubernetes.io/docs/getting-started-guides/network-policy/walkthrough)給出的更進一步的例子。 ## 默認策略 通過創建一個可以選擇所有 Pod 但不允許任何流量的 NetworkPolicy,你可以為一個 Namespace 創建一個 “默認的” 隔離策略,如下所示: ```yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: default-deny spec: podSelector: ``` 這確保了即使是沒有被任何 NetworkPolicy 選中的 Pod,將仍然是被隔離的。 可選地,在 Namespace 中,如果你想允許所有的流量進入到所有的 Pod(即使已經添加了某些策略,使一些 Pod 被處理為 “隔離的”),你可以通過創建一個策略來顯式地指定允許所有流量: ```yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-all spec: podSelector: ingress: - {} ``` ## 參考 - [Network Policies - k8smeetup.github.io](https://k8smeetup.github.io/docs/concepts/services-networking/network-policies/) - [Network Policies - kubernetes.io](https://kubernetes.io/docs/concepts/services-networking/network-policies/)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看