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

【云原生】k8s NetworkPolicy 網(wǎng)絡(luò)策略是怎么樣的

這篇具有很好參考價(jià)值的文章主要介紹了【云原生】k8s NetworkPolicy 網(wǎng)絡(luò)策略是怎么樣的。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wè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ī)則,可以控制哪些類(lèi)型的外部流量可以進(jìn)入 Pod,并防止未經(jīng)授權(quán)的訪問(wè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 等。
  • 沒(méi)有定義任何 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 訪問(wèn) default namespace 中帶有 role=mydb 標(biāo)簽 Pod 的 6379 端口
  • 允許帶有 project=myprojects 標(biāo)簽的 namespace 中所有 Pod 訪問(wèn) 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í)開(kāi)啟 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 訪問(wèn) default namespace 中帶有 role=mydb 標(biāo)簽 Pod 的 6379 端口
  • 允許帶有 project=myprojects 標(biāo)簽的 namespace 中所有 Pod 訪問(wèn) default namespace 中帶有 role=mydb 標(biāo)簽 Pod 的 6379 端口
  • 允許 default namespace 中帶有 role=mydb 標(biāo)簽的 Pod 訪問(wèn) 10.1.0.0/24 網(wǎng)段的 TCP 5987 端口

使用場(chǎng)景

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

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

【云原生】k8s NetworkPolicy 網(wǎng)絡(luò)策略是怎么樣的

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

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

只允許指定 Pod 訪問(wèn)服務(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 之間的相互訪問(wèn)

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

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

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

【云原生】k8s NetworkPolicy 網(wǎng)絡(luò)策略是怎么樣的

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

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

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

只允許指定 namespace 訪問(wèn)服務(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èn)服務(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 的隔離沒(méi)有影響。
以上這些使用場(chǎng)景的 YAML 配置定義就不再贅述了,有不明白的地方可以看下我之前的文章。

總結(jié)

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

為了更好地使用它,需要對(duì)其有一定的理解并遵循相應(yīng)的配置和管理規(guī)則。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-433253.html

到了這里,關(guān)于【云原生】k8s NetworkPolicy 網(wǎng)絡(luò)策略是怎么樣的的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【云原生】k8s中Contrainer 生命周期回調(diào)/策略/指針學(xué)習(xí)

    【云原生】k8s中Contrainer 生命周期回調(diào)/策略/指針學(xué)習(xí)

    個(gè)人主頁(yè): 征服bug-CSDN博客 kubernetes專(zhuān)欄: kubernetes_征服bug的博客-CSDN博客? 目錄 1 容器生命周期 2 容器生命周期回調(diào)/事件/鉤子 3 容器重啟策略 4 自定義容器啟動(dòng)命令 5 容器探針 1 容器生命周期 Kubernetes 會(huì)跟蹤 Pod 中每個(gè)容器的狀態(tài),就像它跟蹤 Pod 總體上的階段一樣。 你可

    2024年02月14日
    瀏覽(23)
  • 【云原生 ? Kubernetes】認(rèn)識(shí) k8s 網(wǎng)絡(luò)、外部網(wǎng)絡(luò)訪問(wèn) k8s 內(nèi)部服務(wù)

    【云原生 ? Kubernetes】認(rèn)識(shí) k8s 網(wǎng)絡(luò)、外部網(wǎng)絡(luò)訪問(wèn) k8s 內(nèi)部服務(wù)

    目錄 一、認(rèn)識(shí) Kubernetes 網(wǎng)絡(luò) 二、外部網(wǎng)絡(luò)如何訪問(wèn) k8s 內(nèi)部服務(wù) 1. NodePort 2. Load Balancer 3. Ingress Kubernetes 最底層的網(wǎng)絡(luò)為節(jié)點(diǎn)網(wǎng)絡(luò),用來(lái)保證 k8s 集群的節(jié)點(diǎn)(master 和 worker、worker 節(jié)點(diǎn)之間)能夠做正常的 IP 尋址和通訊。 Kubernetes 第二層網(wǎng)絡(luò)就是 Pod 網(wǎng)絡(luò),構(gòu)建于節(jié)點(diǎn)網(wǎng)絡(luò)之上

    2024年01月16日
    瀏覽(106)
  • 【 云原生 | K8S 】部署 CNI 網(wǎng)絡(luò)組件+k8s 多master集群部署+負(fù)載均衡及Dashboard k8s儀表盤(pán)圖像化展示管理

    【 云原生 | K8S 】部署 CNI 網(wǎng)絡(luò)組件+k8s 多master集群部署+負(fù)載均衡及Dashboard k8s儀表盤(pán)圖像化展示管理

    目錄 1 部署 CNI 網(wǎng)絡(luò)組件 1.1 部署 flannel 1.2 部署 Calico 1.3 部署 CoreDNS 2 負(fù)載均衡部署 3 部署 Dashboard K8S 中 Pod 網(wǎng)絡(luò)通信: ●Pod 內(nèi)容器與容器之間的通信 在同一個(gè) Pod 內(nèi)的容器(Pod 內(nèi)的容器是不會(huì)跨宿主機(jī)的)共享同一個(gè)網(wǎng)絡(luò)命令空間,相當(dāng)于它們?cè)谕慌_(tái)機(jī)器上一樣,可以用

    2024年01月22日
    瀏覽(31)
  • 【云原生】K8S二進(jìn)制搭建二:部署CNI網(wǎng)絡(luò)組件

    【云原生】K8S二進(jìn)制搭建二:部署CNI網(wǎng)絡(luò)組件

    解決了什么問(wèn)題? 容器鏡像(帶有應(yīng)用程序規(guī)范的文件)必須以標(biāo)準(zhǔn)化,安全和隔離的方式啟動(dòng) 標(biāo)準(zhǔn)化,因?yàn)闊o(wú)論它們?cè)诤翁庍\(yùn)行,都需要標(biāo)準(zhǔn)的操作規(guī)則。 安全,因?yàn)槟悴幌M魏尾粦?yīng)該訪問(wèn)它的人,對(duì)它操作。 隔離,因?yàn)槟悴幌M麘?yīng)用程序影響其他應(yīng)用,或受其他應(yīng)用

    2024年02月10日
    瀏覽(19)
  • 【云原生】k8s 前置環(huán)境 網(wǎng)絡(luò)配置 VMware Linux共享上網(wǎng)(iptables forward)

    【云原生】k8s 前置環(huán)境 網(wǎng)絡(luò)配置 VMware Linux共享上網(wǎng)(iptables forward)

    本文介紹了如何使用 Linux iptalbes 來(lái)使其他內(nèi)網(wǎng)主機(jī)進(jìn)行上網(wǎng)。 解釋說(shuō)明:一般情況下,VMware安裝好后會(huì)出現(xiàn)兩張網(wǎng)卡,vmnet1 與 vmnet8 。其中vmnet1 為僅主機(jī)模式(虛擬機(jī)之間可通信,虛擬機(jī)與宿主機(jī)可通信,不能上網(wǎng));vmnet8 為 NAT 模式(虛擬機(jī)之間可通信,虛擬機(jī)與宿主機(jī)

    2024年02月21日
    瀏覽(36)
  • 【云原生-K8s】kubeadm搭建安裝k8s集群v1.25版本完整教程【docker、網(wǎng)絡(luò)插件calico、中間層cri-docker】

    【云原生-K8s】kubeadm搭建安裝k8s集群v1.25版本完整教程【docker、網(wǎng)絡(luò)插件calico、中間層cri-docker】

    從 k8s 1.24開(kāi)始,dockershim已經(jīng)從kubelet中移除,但因?yàn)闅v史問(wèn)題docker卻不支持kubernetes主推的CRI(容器運(yùn)行時(shí)接口)標(biāo)準(zhǔn),所以docker不能再作為k8s的容器運(yùn)行時(shí)了,即從k8s v1.24開(kāi)始不再使用docker了 但是如果想繼續(xù)使用docker的話(huà),可以在kubelet和docker之間加上一個(gè)中間層cri-docker。

    2024年02月03日
    瀏覽(59)
  • k8s的策略

    k8s的策略

    Scheduler的調(diào)度算法: 預(yù)算策略 過(guò)濾出合適的節(jié)點(diǎn) 優(yōu)先策略 選擇部署的節(jié)點(diǎn) NodeName:硬策略,不走調(diào)度策略,node1 nodeSelector:根據(jù)節(jié)點(diǎn)的標(biāo)簽選擇,會(huì)走一個(gè)調(diào)度算法 只要是走調(diào)度算法,在不滿(mǎn)足預(yù)算策略的情況下,所有的pod都是pending Node節(jié)點(diǎn)的親和性: 硬策略:必須滿(mǎn)足

    2024年01月16日
    瀏覽(21)
  • k8s---調(diào)度策略設(shè)置

    1.命令 kubectl cordon master 禁止節(jié)點(diǎn)調(diào)度 kubeclt uncordon master 允許節(jié)點(diǎn)調(diào)度 2.設(shè)置污點(diǎn) 例; 3、設(shè)置容忍master污點(diǎn) 在 pod 的 spec 中設(shè)置 tolerations 字段 命令 查看是否設(shè)置成功

    2024年02月08日
    瀏覽(22)
  • 【K8S 云原生】K8S的對(duì)外服務(wù)—ingress

    【K8S 云原生】K8S的對(duì)外服務(wù)—ingress

    目錄 一、K8S的Service 1、Service的作用 2、Service類(lèi)型: 二、ingress 1、ingress的組成: 2、ingress資源的定義項(xiàng): 三、nginx-ingress-controller暴露服務(wù)端的方式 1、Deployment+LoadBalancer模式: 1、工作流程圖: 2、Daemonset+hostnetwork+nodeSelector模式: 1、工作流程圖 2、實(shí)驗(yàn): 3、deployment+NodePort

    2024年01月18日
    瀏覽(22)
  • 【K8S 云原生】K8S的包包管理器-helm

    【K8S 云原生】K8S的包包管理器-helm

    目錄 一、helm概念 1、什么是helm 2、helm的概念: 二、實(shí)驗(yàn)部署: 1、安裝helm: 2、對(duì)chart倉(cāng)庫(kù)的基本使用: 2.1、查看和更新chart倉(cāng)庫(kù) 2.2、安裝chart 2.3、卸載chart: 3、helm自定義模版: 3.1、使用官方模版 3.2、使用自定義模版 1、方法1:基于目錄安裝: 2、方法2:基于目錄打包好

    2024年01月23日
    瀏覽(61)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包