国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

kubernetes網(wǎng)絡之網(wǎng)絡策略-Network Policies

這篇具有很好參考價值的文章主要介紹了kubernetes網(wǎng)絡之網(wǎng)絡策略-Network Policies。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Kubernetes 中,Network Policy(網(wǎng)絡策略)定義了一組 Pod 是否允許相互通信,或者與網(wǎng)絡中的其他端點 endpoint 通信。

NetworkPolicy 對象使用標簽選擇Pod,并定義規(guī)則指定選中的Pod可以執(zhí)行什么樣的網(wǎng)絡通信,規(guī)則通常由如下三類信息組合而成:

  1. 允許訪問的其他容器組(容器組不能阻止其訪問自己的端口)
  2. 允許訪問的名稱空間
  3. 允許訪問的 IP 段(例外:從容器組所在的節(jié)點訪問容器組,或者從容器組訪問其所在的節(jié)點都是始終被允許的)

前提條件

Network Policy 由網(wǎng)絡插件實現(xiàn),因此,您使用的網(wǎng)絡插件必須能夠支持 NetworkPolicy 才可以使用此特性。如果您僅僅是創(chuàng)建了一個 Network Policy 對象,但是您使用的網(wǎng)絡插件并不支持此特性,您創(chuàng)建的 Network Policy 對象是不生效的。

Isolated/Non-isolated Pods·

默認情況下,Pod 都是非隔離的(non-isolated),可以接受來自任何請求方的網(wǎng)絡請求。

如果一個 NetworkPolicy 的標簽選擇器選中了某個 Pod,則該 Pod 將變成隔離的(isolated),并將拒絕任何不被 NetworkPolicy 許可的網(wǎng)絡連接。(名稱空間中其他未被 NetworkPolicy 選中的 Pod 將認可接受來自任何請求方的網(wǎng)絡請求。)

Network Police 不會相互沖突,而是相互疊加的。如果多個 NetworkPolicy 選中了同一個 Pod,則該 Pod 可以接受這些 NetworkPolicy 當中任何一個 NetworkPolicy 定義的(入口/出口)規(guī)則,是所有NetworkPolicy規(guī)則的并集,因此,NetworkPolicy 的順序并不重要,因為不會影響到最終的結果。

為了使兩個容器組之間的網(wǎng)絡能夠連通,源容器組的出方向網(wǎng)絡策略和目標容器組的入方向無網(wǎng)絡策略必須同時允許該網(wǎng)絡連接。只要其中的任何一方拒絕了該連接,該連接都不能創(chuàng)建成功。

NetworkPolicy對象

參閱 NetworkPolicy 來了解資源的完整定義。

下面是一個 NetworkPolicy 的示例:

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
  • 基本信息: 同其他的 Kubernetes 對象一樣,NetworkPolicy 需要 apiVersion、kindmetadata 字段
  • spec:NetworkPolicy spec字段包含了定義網(wǎng)絡策略的主要信息:
    • podSelector: 同名稱空間中,符合此標簽選擇器 .spec.podSelector 的 Pod 都將應用這個 NetworkPolicy。上面的 Example中的 podSelector 選擇了 role=db 的 Pod。如果該字段為空,則將對名稱空間中所有的 Pod 應用這個 NetworkPolicy
    • policyTypes: .spec.policyTypes 是一個數(shù)組類型的字段,該數(shù)組中可以包含 Ingress、Egress 中的一個,也可能兩個都包含。該字段標識了此 NetworkPolicy 是否應用到 入方向的網(wǎng)絡流量、出方向的網(wǎng)絡流量、或者兩者都有。如果不指定 policyTypes 字段,該字段默認將始終包含 Ingress,當 NetworkPolicy 中包含出方向的規(guī)則時,Egress 也將被添加到默認值。
    • ingress:ingress是一個數(shù)組,代表入方向的白名單規(guī)則。每一條規(guī)則都將允許與from ports匹配的入方向的網(wǎng)絡流量發(fā)生。例子中的ingress包含了一條規(guī)則,允許的入方向網(wǎng)絡流量必須符合如下條件:
      • Pod 的監(jiān)聽端口為 6379
      • 請求方可以是如下三種來源當中的任意一種:
        • ipBlock 為 172.17.0.0/16 網(wǎng)段,但是不包括 172.17.1.0/24 網(wǎng)段
        • namespaceSelector 標簽選擇器,匹配標簽為 project=myproject
        • podSelector 標簽選擇器,匹配標簽為 role=frontend
    • egress:egress是一個數(shù)組,代表出方向的白名單規(guī)則。每一條規(guī)則都將允許與toports匹配的出方向的網(wǎng)絡流量發(fā)生。例子中的egress允許的出方向網(wǎng)絡流量必須符合如下條件:
      • 目標端口為 5978
      • 目標 ipBlock 為 10.0.0.0/24 網(wǎng)段

因此,例子中的 NetworkPolicy 對網(wǎng)絡流量做了如下限制:

  1. 隔離了 default 名稱空間中帶有 role=db 標簽的所有 Pod 的入方向網(wǎng)絡流量和出方向網(wǎng)絡流量
  2. Ingress規(guī)則(入方向白名單規(guī)則):
    • 當請求方是如下三種來源當中的任意一種時,允許訪問default名稱空間中所有帶role=db標簽的 Pod 的6379端口:
      • ipBlock 為 172.17.0.0/16 網(wǎng)段,但是不包括 172.17.1.0/24 網(wǎng)段
      • namespaceSelector 標簽選擇器,匹配標簽為 project=myproject
      • podSelector 標簽選擇器,匹配標簽為 role=frontend
  3. Egress rules(出方向白名單規(guī)則):
    • 當如下條件滿足時,允許出方向的網(wǎng)絡流量:
      • 目標端口為 5978
      • 目標 ipBlock 為 10.0.0.0/24 網(wǎng)段

to和from選擇器的行為

NetworkPolicy 的 .spec.ingress.from.spec.egress.to 字段中,可以指定 4 種類型的標簽選擇器:

  • podSelector 選擇與 NetworkPolicy 同名稱空間中的 Pod 作為入方向訪問控制規(guī)則的源或者出方向訪問控制規(guī)則的目標

  • namespaceSelector 選擇某個名稱空間(其中所有的Pod)作為入方向訪問控制規(guī)則的源或者出方向訪問控制規(guī)則的目標

  • namespaceSelectorpodSelector 在一個 to / from 條目中同時包含 namespaceSelectorpodSelector 將選中指定名稱空間中的指定 Pod。此時請?zhí)貏e留意 YAML 的寫法,如下所示:

     ...
      ingress:
      - from:
        - namespaceSelector:
            matchLabels:
              user: alice
          podSelector:
            matchLabels:
              role: client
      ...
    

    該例子中,podSelector 前面沒有 - 減號,namespaceSelector 和 podSelector 是同一個 from 元素的兩個字段,將選中帶 user=alice 標簽的名稱空間中所有帶 role=client 標簽的 Pod。但是,下面的這個 NetworkPolicy 含義是不一樣的:

      ...
      ingress:
      - from:
        - namespaceSelector:
            matchLabels:
              user: alice
        - podSelector:
            matchLabels:
              role: client
      ...
      
    

    后者,podSelector 前面帶 - 減號,說明 namespaceSelector 和 podSelector 是 from 數(shù)組中的兩個元素,他們將選中 NetworkPolicy 同名稱空間中帶 role=client 標簽的對象,以及帶 user=alice 標簽的名稱空間的所有 Pod。

    當您對此不確信時,可以嘗試使用 kubectl describe 命令查看 kubernetes 是如何解析您定義的 NetworkPolicy 的。

    • ipBlock 可選擇 IP CIDR 范圍作為入方向訪問控制規(guī)則的源或者出方向訪問控制規(guī)則的目標。這里應該指定的是集群外部的 IP,因為集群內(nèi)部 Pod 的 IP 地址是臨時分配的,且不可預測。

    集群的入方向和出方向網(wǎng)絡機制通常需要重寫網(wǎng)絡報文的 source 或者 destination IP。kubernetes 并未定義應該在處理 NetworkPolicy 之前還是之后再修改 source / destination IP,因此,在不同的云供應商、使用不同的網(wǎng)絡插件時,最終的行為都可能不一樣。這意味著:文章來源地址http://www.zghlxwxcb.cn/news/detail-618486.html

    • 對于入方向的網(wǎng)絡流量,某些情況下,你可以基于實際的源 IP 地址過濾流入的報文;在另外一些情況下,NetworkPolicy 所處理的 “source IP” 可能是 LoadBalancer 的 IP 地址,或者其他地址
    • 對于出方向的網(wǎng)絡流量,基于 ipBlock 的策略可能有效,也可能無效

到了這里,關于kubernetes網(wǎng)絡之網(wǎng)絡策略-Network Policies的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • PyTorch深度學習實戰(zhàn)(31)——生成對抗網(wǎng)絡(Generative Adversarial Network, GAN)

    PyTorch深度學習實戰(zhàn)(31)——生成對抗網(wǎng)絡(Generative Adversarial Network, GAN)

    生成對抗網(wǎng)絡 ( Generative Adversarial Networks , GAN ) 是一種由兩個相互競爭的神經(jīng)網(wǎng)絡組成的深度學習模型,它由一個生成網(wǎng)絡和一個判別網(wǎng)絡組成,通過彼此之間的博弈來提高生成網(wǎng)絡的性能。生成對抗網(wǎng)絡使用神經(jīng)網(wǎng)絡生成與原始圖像集非常相似的新圖像,它在圖像生成中應用

    2024年01月22日
    瀏覽(24)
  • 【深度學習筆記】6_2 循環(huán)神經(jīng)網(wǎng)絡RNN(recurrent neural network)

    【深度學習筆記】6_2 循環(huán)神經(jīng)網(wǎng)絡RNN(recurrent neural network)

    注:本文為《動手學深度學習》開源內(nèi)容,部分標注了個人理解,僅為個人學習記錄,無抄襲搬運意圖 上一節(jié)介紹的 n n n 元語法中,時間步 t t t 的詞 w t w_t w t ? 基于前面所有詞的條件概率只考慮了最近時間步的 n ? 1 n-1 n ? 1 個詞。如果要考慮比 t ? ( n ? 1 ) t-(n-1) t ?

    2024年03月12日
    瀏覽(22)
  • 深度學習入門——深度卷積神經(jīng)網(wǎng)絡模型(Deep Convolution Neural Network,DCNN)概述

    深度學習入門——深度卷積神經(jīng)網(wǎng)絡模型(Deep Convolution Neural Network,DCNN)概述

    機器學習是實現(xiàn)人工智能的方法和手段,其專門研究計算機如何模擬或實現(xiàn)人類的學習行為,以獲取新的知識和技能,重新組織已有的知識結構使之不斷改善自身性能的方法。計算機視覺技術作為人工智能的一個研究方向,其隨著機器學習的發(fā)展而進步,尤其近10年來,以深

    2024年02月13日
    瀏覽(49)
  • 60.網(wǎng)絡訓練中的超參調(diào)整策略—學習率調(diào)整2

    60.網(wǎng)絡訓練中的超參調(diào)整策略—學習率調(diào)整2

    4、 inverse_time_decay 逆時衰減,這種方式和指數(shù)型類似。如圖, 5、 cosine_decay

    2024年02月07日
    瀏覽(17)
  • Kubernetes 概念—策略—限制范圍

    ?? 默認情況下, Kubernetes 集群上的容器運行使用的計算資源沒有限制。 使用 Kubernetes?資源配額, 管理員(也稱為?集群操作者)可以在一個指定的命名空間內(nèi)限制集群資源的使用與創(chuàng)建。 在命名空間中,一個?Pod?最多能夠使用命名空間的資源配額所定義的 CPU 和內(nèi)存用量

    2024年02月16日
    瀏覽(21)
  • [kubernetes]-k8s調(diào)整鏡像清理策略

    導語:k8s在磁盤使用率到達80%之后開始清理鏡像,導致服務重啟后鏡像被刪除。記錄一下大致調(diào)整的方法

    2024年02月06日
    瀏覽(23)
  • Kubernetes Pod的重啟策略+健康檢查(實現(xiàn)應用自修復);

    Kubernetes Pod的重啟策略+健康檢查(實現(xiàn)應用自修復);

    指的是容器什么時候才會被重啟,如果沒有健康檢查的話,默認是根據(jù)pod的status來判斷的 有三個值,分別是: Always : 只要容器被終止退出后,總是重啟容器,默認策略; 應用場景:常駐進程(例如nginx,tomcat、mysql等) OnFailure :只有當容器異常退出(退出狀態(tài)碼非0)時,

    2024年02月03日
    瀏覽(32)
  • Kubernetes 污點、容忍策略、優(yōu)先級與搶占、Pod安全

    污點使結點與pod產(chǎn)生排斥與標簽相反 污點策略是通過嵌入合在鍵值對上的污點標簽進行聲明 污點標簽必須綁定在鍵值對上,格式為:key=value:[污點標簽] taint翻譯就是污點的意思 查看污點標簽 ? ? ? ? kubectl describe nodes [結點名] 設置污點標簽 ? ? ? ? kubectl taint node [結點名字

    2024年02月05日
    瀏覽(26)
  • 混合云環(huán)境中 Kubernetes 可觀測性的 6 個有效策略...

    混合云環(huán)境中 Kubernetes 可觀測性的 6 個有效策略...

    2023 年,原生云應用程序和平臺將快速增長。組織不斷努力最大限度地發(fā)揮其應用程序的潛力,確保無縫的用戶體驗并推動業(yè)務增長。 混合云環(huán)境的興起以及 Kubernetes 等容器化技術的采用徹底改變了現(xiàn)代應用程序的開發(fā)、部署和擴展方式。 在這個數(shù)字領域,Kubernetes是大多數(shù)

    2024年02月13日
    瀏覽(13)
  • docker network網(wǎng)絡

    docker network網(wǎng)絡

    bridge是docker默認網(wǎng)絡模式,docker安裝后會選擇一個私有網(wǎng)段作為bridge的子網(wǎng),在我們創(chuàng)建容器時默認會將容器網(wǎng)絡加入到這個子網(wǎng)中。 原理:Docker Daemon(后臺進程) 利用 veth pair 技術 ,在宿主機上創(chuàng)建一對對等虛擬網(wǎng)絡接口設備(veth pair)用于連接網(wǎng)橋(docker0)和容器,

    2024年01月24日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包