成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

kubernetes network policy學(xué)習(xí)筆記

wuyangnju / 2138人閱讀

摘要:不同的網(wǎng)絡(luò)實(shí)現(xiàn)原理等并不能統(tǒng)一地支持。描述信息選擇器,選定的所有的出入站流量要遵循本的約束策略類型。所有包含的中的可以與上述的端口建立連接所有下的包含的可以與上述的端口建立連接允許上述訪問(wèn)網(wǎng)段為的目的的端口。但可以做到范圍的整體控制。

簡(jiǎn)介

network policy顧名思義就是對(duì)pod進(jìn)行網(wǎng)絡(luò)策略控制。 k8s本身并不支持,因?yàn)閗8s有許多種網(wǎng)絡(luò)的實(shí)現(xiàn)方式,企業(yè)內(nèi)部可以使用簡(jiǎn)單的flannel、weave、kube-router等,適合公有云的方案則有calico等。不同的網(wǎng)絡(luò)實(shí)現(xiàn)原理(vethpair、bridge、macvlan等)并不能統(tǒng)一地支持network policy。

network policy 策略模型

使用network policy資源可以配置pod的網(wǎng)絡(luò),networkPolicy是namespace scoped的,他只能影響某個(gè)namespace下的pod的網(wǎng)絡(luò)出入站規(guī)則。

metadata 描述信息

podSelector pod選擇器,選定的pod所有的出入站流量要遵循本networkpolicy的約束

policyTypes 策略類型。包括了Ingress和Egress,默認(rèn)情況下一個(gè)policyTypes的值一定會(huì)包含Ingress,當(dāng)有egress規(guī)則時(shí),policyTypes的值中會(huì)包含Egress

ingress 入站

egress 出站

策略模型可以參考官方文檔, 這里舉個(gè)例子:

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

該例子的效果如下:
1、default namespace下label包含role=db的pod,都會(huì)被隔絕,他們只能建立“滿足networkPolicy的ingress和egress描述的連接”。即2-5點(diǎn):
2、所有屬于172.17.0.0/16網(wǎng)段的IP,除了172.17.1.0/24中的ip,其他的都可以與上述pod的6379端口建立tcp連接。
3、所有包含label:project=myproject的namespace中的pod可以與上述pod的6379端口建立tcp連接;
4、所有default namespace下的label包含role=frontend的pod可以與上述pod的6379端口建立tcp連接;
5、允許上述pod訪問(wèn)網(wǎng)段為10.0.0.0/24的目的IP的5978端口。

再例,如果我們想要只允許default這個(gè)namespace下label包含access=true的pod訪問(wèn)nginx pod(label:run=nginx),可以對(duì)nginx pod設(shè)置入站規(guī)則:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: access-nginx
  namespace: default
spec:
  podSelector:
    matchLabels:
      run: nginx
  ingress:
  - from:
    - podSelector:
        matchLabels:
          access: "true"

另外一些默認(rèn)的規(guī)則:
1.同namespace的pod,入站規(guī)則為全部禁止

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

2.同namespace的pod,入站規(guī)則為全部開(kāi)放:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-all
spec:
  podSelector: {}
  ingress:
  - {}

3.同namespace的pod,出站規(guī)則為全部禁止

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

4.同namespace的pod,出站規(guī)則為全部開(kāi)放

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-all
spec:
  podSelector: {}
  egress:
  - {}
  policyTypes:
  - Egress
network policy的實(shí)現(xiàn)

network policy的實(shí)現(xiàn)仰賴CNI插件的支持,目前已經(jīng)支持的cni插件包括:
Calico 。calico本身通過(guò)BGP路由實(shí)現(xiàn)容器網(wǎng)絡(luò),network policy大致也是通過(guò)它實(shí)現(xiàn)的。
Cilium
Kube-router。 這個(gè)工具比較吸引人,因?yàn)樗褂胕ptables實(shí)現(xiàn)networkpolicy,同時(shí)它也能成為kube-proxy組件的替代品。
Romana
Weave Net。也是通過(guò)iptables實(shí)現(xiàn)出入站策略。(看了社區(qū)的例子,里面針對(duì)namespace級(jí)別的控制好像要用正則表達(dá)式進(jìn)行匹配)
這些容器網(wǎng)絡(luò)解決方案,在支持networkpolicy時(shí),均需要在node上啟動(dòng)agent(可以用k8s的daemonset)

思考:與neutron 網(wǎng)絡(luò)中安全組的區(qū)別

其實(shí)network policy要做的事情,安全組一樣可以做。但network policy可以做到namespace范圍的整體控制。
思考一個(gè)networkpolicy agent要做的事情,應(yīng)該包含以下幾點(diǎn):
1、對(duì)networkpolicy進(jìn)行全namespace范圍的list & watch;
2、對(duì)規(guī)則原語(yǔ)的解析和定制。(如何將namespace、label等概念具象到iptables中?我的想法比較笨拙:使用正則表達(dá)式表述pod name的規(guī)則,同時(shí)list-watch pod并維護(hù)pod name 到pod ip的關(guān)系)
3、維護(hù)這些規(guī)則在本地的實(shí)現(xiàn)和記錄(如iptables表)

安全組的規(guī)則記錄在上層網(wǎng)關(guān),而不是每一個(gè)節(jié)點(diǎn)上在安全組規(guī)則上,可能需要list watch networkPolicy、namespace、pod等資源,因此實(shí)現(xiàn)namespace級(jí)別的策略可能會(huì)影響其性能。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/32618.html

相關(guān)文章

  • Kubernetes 1.7:從完善容器編排功能到落地商業(yè)應(yīng)用新跨越!

    摘要:新功能版本增加了安全性有狀態(tài)的應(yīng)用程序和可擴(kuò)展性等功能。網(wǎng)絡(luò)已從升級(jí)到新的組。 ?根據(jù) Kubernetes Google Group 產(chǎn)品經(jīng)理 Aperna Sinha 和 Kubernetes Mirantis 項(xiàng)目經(jīng)理 Ihor Dvoretskyi 的說(shuō)法,Kubernetes 1.7 中的 API aggregation 功能使用戶可以在運(yùn)行時(shí)添加自定義的 API 服務(wù)器,與...

    big_cat 評(píng)論0 收藏0
  • K8S 生態(tài)周報(bào)| 2019-04-15~2019-04-21

    摘要:生態(tài)周報(bào)內(nèi)容主要包含我所接觸到的生態(tài)相關(guān)的每周值得推薦的一些信息。歡迎訂閱知乎專欄生態(tài)。正式發(fā)布是畢業(yè)項(xiàng)目,可用于監(jiān)控系統(tǒng)及服務(wù)狀態(tài)。并且可以通過(guò)配置規(guī)則來(lái)觸發(fā)報(bào)警等。 「K8S 生態(tài)周報(bào)」內(nèi)容主要包含我所接觸到的 K8S 生態(tài)相關(guān)的每周值得推薦的一些信息。歡迎訂閱知乎專欄「k8s生態(tài)」。 Prometheus v2.9.0 正式發(fā)布 Prometheus 是 CNCF 畢業(yè)項(xiàng)目,可用...

    fevin 評(píng)論0 收藏0
  • kubernetes 1.3 current and future

    摘要:執(zhí)行該初始化任務(wù)的容器被成為初始化容器。目前,有等狀態(tài)。網(wǎng)絡(luò)身份的維護(hù)主要通過(guò)穩(wěn)定的和來(lái)維護(hù),他們通過(guò)的配置文件指定。若其操作導(dǎo)致最小可用數(shù)低于應(yīng)用要求,則操作會(huì)被拒絕。 本文討論 K8S 1.3 的一些新功能,以及正在進(jìn)行中的功能。讀者應(yīng)該對(duì) kubernetes 的基本結(jié)構(gòu)已經(jīng)有所了解。 支持更多類型的應(yīng)用 1、Init container Init container 是1.3 ...

    entner 評(píng)論0 收藏0
  • 華爾街見(jiàn)聞基于istio的服務(wù)網(wǎng)格實(shí)踐

    摘要:,托管于騰訊云容器平臺(tái)容器編排工具。適配我們目前的服務(wù)部署在騰訊云托管,節(jié)點(diǎn)使用核的網(wǎng)絡(luò)增強(qiáng)型機(jī)器,所有的后端服務(wù)都以部署,集群外部署高可用支持集群內(nèi)服務(wù)發(fā)現(xiàn),數(shù)據(jù)庫(kù)以為主,消息隊(duì)列采用。 距離2017年的見(jiàn)聞技術(shù)架構(gòu)調(diào)整接近2年,隨著業(yè)務(wù)線的發(fā)展,見(jiàn)聞技術(shù)部的項(xiàng)目數(shù)量、項(xiàng)目架構(gòu)類型、基礎(chǔ)設(shè)施規(guī)模、服務(wù)變更頻率都在不斷地增長(zhǎng),帶給SRE的挑戰(zhàn)是如何能更快地助力于開(kāi)發(fā)人員更快更穩(wěn)定地部署...

    stonezhu 評(píng)論0 收藏0
  • 淺析 Kubernetes原生NetworkPolicy 網(wǎng)絡(luò)策略,讓更安全的容器運(yùn)行環(huán)境唾手可得

    摘要:本文將主要分析原生的網(wǎng)絡(luò)策略。筆者認(rèn)為這個(gè)問(wèn)題主要是因?yàn)槭褂谜卟涣私饩W(wǎng)絡(luò)策略的省缺行為??蛇x字段,字符串,策略規(guī)則類型,表示該網(wǎng)絡(luò)策略中包含哪些類型的策略,可選為或?;ハ嚅g為或的關(guān)系,滿足其中一條則放行。標(biāo)準(zhǔn),除了指定的放行外其他都禁止。 k8s中的網(wǎng)絡(luò)策略主要分為原生 NetworkPolicy 和第三方網(wǎng)絡(luò)插件提供的網(wǎng)絡(luò)策略。本文將主要分析原生Networkpolicy的網(wǎng)絡(luò)策略。...

    jsdt 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<