最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解k8s?NetworkPolicy?網(wǎng)絡(luò)策略是怎么樣的

 更新時(shí)間:2023年04月12日 09:41:07   作者:路由器沒有路  
這篇文章主要為大家介紹了k8s?NetworkPolicy?網(wǎng)絡(luò)策略是怎么樣的深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

隨著微服務(wù)的流行,越來(lái)越多的云服務(wù)平臺(tái)需要大量模塊之間的網(wǎng)絡(luò)調(diào)用。

在 Kubernetes 中,網(wǎng)絡(luò)策略(NetworkPolicy)是一種強(qiáng)大的機(jī)制,可以控制 Pod 之間和 Pod 與外部網(wǎng)絡(luò)之間的流量。

Kubernetes 中的 NetworkPolicy 定義了一組規(guī)則,這些規(guī)則允許或者拒絕特定流量的傳輸。通過(guò)使用 NetworkPolicy,Kubernetes 管理員能夠更好地掌控容器網(wǎng)絡(luò),確保應(yīng)用程序的網(wǎng)絡(luò)安全性。

NetworkPolicy 可以實(shí)現(xiàn)什么

NetworkPolicy 可被定義為 Pod 標(biāo)簽選擇器、命名空間選擇器或者兩者的組合。它可以實(shí)現(xiàn)以下功能:

  • 限制 Pod 之間的流量:通過(guò)指定 Ingress 規(guī)則,可以阻止來(lái)自其他 Pod 的流量進(jìn)入目標(biāo) Pod。
  • 允許 Pod 之間的流量:需要為目標(biāo) Pod 配置 Egress 規(guī)則,以便只允許來(lái)自特定 Pod 的流量進(jìn)入。
  • 限制 Pod 與外部網(wǎng)絡(luò)的通信:通過(guò)指定 Egress 規(guī)則,可以控制哪些類型的外部流量可以進(jìn)入 Pod,并防止未經(jīng)授權(quán)的訪問。
  • 允許 Pod 與外部網(wǎng)絡(luò)的通信:需要為目標(biāo) Pod 配置 Ingress 規(guī)則,以便只允許來(lái)自特定 IP 地址、端口或協(xié)議的流量進(jìn)入。

使用 NetworkPolicy 時(shí),需要考慮什么

使用 NetworkPolicy 時(shí),需要考慮以下幾個(gè)方面:

  • NetworkPolicy 只在支持它的網(wǎng)絡(luò)插件中起作用,例如 Calico、Cilium 和 Weave Net 等。
  • 沒有定義任何 NetworkPolicy 規(guī)則,則所有的流量都會(huì)被允許。
  • 定義 NetworkPolicy 后,它只適用于當(dāng)前命名空間中的 Pod。
  • 在 NetworkPolicy 中指定標(biāo)簽選擇器時(shí),應(yīng)保證其唯一性,以免給其他 Pod 帶來(lái)影響。

網(wǎng)絡(luò)策略有哪些

默認(rèn)情況下,如果名字空間中不存在任何策略,則所有進(jìn)出該名字空間中 Pod 的流量都被允許。

Namespace 隔離流量

默認(rèn)情況下,所有 Pod 之間都是互通的。每個(gè) Namespace 可以配置獨(dú)立的網(wǎng)絡(luò)策略,來(lái)隔離 Pod 之間的網(wǎng)絡(luò)流量。

由此,可以通過(guò)創(chuàng)建匹配 Pod 的 Network Policy 來(lái)作為默認(rèn)的網(wǎng)絡(luò)策略,比如默認(rèn)拒絕所有 Pod 之間 Ingress 的通信,如下:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny
spec:
  podSelector: {}
  policyTypes:
    - Ingress

默認(rèn)拒絕 Pod 之間 Egress(出口) 通信的策略:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny
spec:
  podSelector: {}
  policyTypes:
    - Egress

甚至是默認(rèn)拒絕 Pod 之間 Ingress(入口) 和 Egress(出口) 通信的策略:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny
spec:
  podSelector: {}
  policyTypes:
    - Ingress
    - Egress

Pod 隔離

Pod 隔離可以分為出口的隔離入口的隔離。其實(shí)這里的“隔離”不是絕對(duì)的,而是還有一些其它限制。

比如可以通過(guò)使用標(biāo)簽選擇器(這里可以是 namespaceSelector 和 podSelector)來(lái)控制 Pod 之間的流量。

如下面的 Network Policy:

  • 允許 default namespace 中帶有 role=myfront 標(biāo)簽的 Pod 訪問 default namespace 中帶有 role=mydb 標(biāo)簽 Pod 的 6379 端口
  • 允許帶有 project=myprojects 標(biāo)簽的 namespace 中所有 Pod 訪問 default namespace 中帶有 role=mydb 標(biāo)簽 Pod 的 6379 端口
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:
    matchLabels:
      role: mydb
  ingress:
    - from:
        - namespaceSelector:
            matchLabels:
              project: myproject
        - podSelector:
            matchLabels:
              role: myfront
      ports:
        - protocol: tcp
          port: 6379

另外一個(gè)同時(shí)開啟 Ingress 和 Egress 通信的策略為:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:
    matchLabels:
      role: mydb
  policyTypes:
    - Ingress
    - Egress
  ingress:
    - from:
        - ipBlock:
            cidr: 192.168.0.0/16
            except:
              - 192.168.1.0/24
        - namespaceSelector:
            matchLabels:
              project: myproject
        - podSelector:
            matchLabels:
              role: myfront
      ports:
        - protocol: TCP
          port: 6379
  egress:
    - to:
        - ipBlock:
            cidr: 10.1.0.0/24
      ports:
        - protocol: TCP
          port: 5978

它用來(lái)隔離 default namespace 中帶有 role=mydb 標(biāo)簽的 Pod:

  • 允許 default namespace 中帶有 role=myfront 標(biāo)簽的 Pod 訪問 default namespace 中帶有 role=mydb 標(biāo)簽 Pod 的 6379 端口
  • 允許帶有 project=myprojects 標(biāo)簽的 namespace 中所有 Pod 訪問 default namespace 中帶有 role=mydb 標(biāo)簽 Pod 的 6379 端口
  • 允許 default namespace 中帶有 role=mydb 標(biāo)簽的 Pod 訪問 10.1.0.0/24 網(wǎng)段的 TCP 5987 端口

使用場(chǎng)景

禁止訪問指定服務(wù)

kubectl run web --image=nginx --labels app=web,env=prod --expose --port 80

網(wǎng)絡(luò)策略如下:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: web-deny-all
spec:
  podSelector:
    matchLabels:
      app: web
      env: prod

只允許指定 Pod 訪問服務(wù)

kubectl run apiserver --image=nginx --labels app=bookstore,role=api --expose --port 80

網(wǎng)絡(luò)策略如下:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: api-allow
spec:
  podSelector:
    matchLabels:
      app: bookstore
      role: api
  ingress:
  - from:
      - podSelector:
          matchLabels:
            app: bookstore

禁止 namespace 中所有 Pod 之間的相互訪問

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny
  namespace: default
spec:
  podSelector: {}

禁止其他 namespace 訪問服務(wù)

kubectl create namespace secondary
kubectl run web --namespace secondary --image=nginx \
    --labels=app=web --expose --port 80

網(wǎng)絡(luò)策略配置如下:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  namespace: secondary
  name: web-deny-other-namespaces
spec:
  podSelector:
    matchLabels:
  ingress:
  - from:
    - podSelector: {}

此策略可以確保即使沒有被其他任何 NetworkPolicy 選擇的 Pod 也不會(huì)被允許流出流量。 此策略不會(huì)更改任何 Pod 的入站流量隔離行為。

只允許指定 namespace 訪問服務(wù)

kubectl run web --image=nginx \
    --labels=app=web --expose --port 80

網(wǎng)絡(luò)策略如下:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: web-allow-prod
spec:
  podSelector:
    matchLabels:
      app: web
  ingress:
    - from:
        - namespaceSelector:
            matchLabels:
              purpose: production

允許外網(wǎng)訪問服務(wù)

kubectl run web --image=nginx --labels=app=web --port 80
kubectl expose deployment/web --type=LoadBalancer

網(wǎng)絡(luò)策略如下:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: web-allow-external
spec:
  podSelector:
    matchLabels:
      app: web
  ingress:
    - ports:
        - port: 80
      from: []

有了這個(gè)策略,任何額外的策略都不會(huì)導(dǎo)致來(lái)自這些 Pod 的任何出站連接被拒絕。 此策略對(duì)進(jìn)入任何 Pod 的隔離沒有影響。

以上這些使用場(chǎng)景的 YAML 配置定義就不再贅述了,有不明白的地方可以看下我之前的文章。

總結(jié)

Kubernetes 中的 NetworkPolicy 是一個(gè)非常重要的特性,可以控制容器網(wǎng)絡(luò)的流量和安全,確保應(yīng)用程序的可靠性和安全性。

為了更好地使用它,需要對(duì)其有一定的理解并遵循相應(yīng)的配置和管理規(guī)則。

以上就是詳解k8s NetworkPolicy 網(wǎng)絡(luò)策略是怎么樣的的詳細(xì)內(nèi)容,更多關(guān)于k8s NetworkPolicy 網(wǎng)絡(luò)策略的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解k8s ConfigMap 中 subPath 字段和 items 字段

    詳解k8s ConfigMap 中 subPath 字段和 items

    volumeMounts.subPath 屬性可用于指定所引用的卷內(nèi)的子路徑,而不是其根路徑,這篇文章主要介紹了詳解k8s ConfigMap 中 subPath 字段和 items 字段,需要的朋友可以參考下
    2023-03-03
  • DeepSeek-R1 云環(huán)境搭建部署流程

    DeepSeek-R1 云環(huán)境搭建部署流程

    本文主要介紹了DeepSeek-R1 云環(huán)境搭建部署流程,包括注冊(cè)、選擇合適的服務(wù)器配置、部署DeepSeek模型及通過(guò)UI界面和SSH連接進(jìn)行操作,感興趣的可以了解一下
    2025-02-02
  • RFO SIG之openEuler AWS AMI 制作詳解

    RFO SIG之openEuler AWS AMI 制作詳解

    這篇文章主要為大家介紹了RFO SIG之openEuler AWS AMI 制作詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • K8S中Pod重啟策略及重啟可能原因詳細(xì)講解

    K8S中Pod重啟策略及重啟可能原因詳細(xì)講解

    在k8s集群中當(dāng)某個(gè)pod資源需要重啟時(shí),我們只會(huì)對(duì)其進(jìn)行刪除,由其pod控制器進(jìn)行重新構(gòu)建,下面這篇文章主要給大家介紹了關(guān)于K8S中Pod重啟策略及重啟可能原因的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • 再分享6個(gè)可無(wú)限激活阿里云盤邀請(qǐng)碼,不信你不能激活阿里云盤

    再分享6個(gè)可無(wú)限激活阿里云盤邀請(qǐng)碼,不信你不能激活阿里云盤

    這篇文章主要分享6個(gè)可無(wú)限激活的阿里云盤邀請(qǐng)碼,不信你不能激活阿里云盤,需要的朋友可以參考下
    2020-11-11
  • 刪除Helm使用時(shí)關(guān)于kubernetes文件的警告問題

    刪除Helm使用時(shí)關(guān)于kubernetes文件的警告問題

    這篇文章主要介紹了刪除Helm使用時(shí)關(guān)于kubernetes文件的警告問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 如何把k8s容器里的文件復(fù)制到本地

    如何把k8s容器里的文件復(fù)制到本地

    這篇文章主要介紹了如何把k8s容器里的文件復(fù)制到本地方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Spark三種屬性配置方式詳解

    Spark三種屬性配置方式詳解

    有時(shí)間還是多學(xué)習(xí)知識(shí)比較好,這篇文章主要介紹了Spark三種屬性配置方式詳解,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • 自定義資源CRD使用介紹

    自定義資源CRD使用介紹

    這篇文章主要為大家介紹了自定義資源CRD的使用示例介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 云原生技術(shù)kubernetes之volumes容器的使用

    云原生技術(shù)kubernetes之volumes容器的使用

    這篇文章主要為大家介紹了云原生技術(shù)kubernetes之volumes容器使用方式,?有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03

最新評(píng)論

读书| 瑞安市| 怀远县| 金华市| 乳山市| 新绛县| 孝感市| 鄯善县| 绥滨县| 衡阳市| 田林县| 华坪县| 辉南县| 黑河市| 集安市| 博野县| 乌苏市| 深泽县| 岚皋县| 潞西市| 德江县| 治县。| 九龙县| 澄迈县| 徐州市| 镇坪县| 三明市| 永清县| 贵定县| 永福县| 吉林市| 昭觉县| 杨浦区| 揭东县| 镇赉县| 普宁市| 延安市| 富裕县| 崇阳县| 扶风县| 鹤岗市|