色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

k8s與pod之間是如何進行網絡隔離的?

阿銘linux ? 來源:阿銘linux ? 2023-05-11 09:35 ? 次閱讀

0c1332b2-ef9a-11ed-90ce-dac502259ad0.png

NetworkPolicy用來控制Pod與Pod之間的網絡通信,它也支持針對Namespace進行限制。基于白名單模式,符合規則的對象通過,不符合的拒絕。 應用場景舉例:

Pod A不能訪問Pod B;

開發環境所有Pod不能訪問測試命名空間;

提供對外訪問時,限制外部IP;

官方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
說明:必需字段:apiVersion、 kind 和 metadata 字段。

podSelector:定義目標Pod的匹配標簽,即哪些Pod會生效此策略;

policyTypes:表示給定的策略是應用于目標Pod的入站流量(Ingress)還是出站流量(Egress),或兩者兼有。如果NetworkPolicy未指定policyTypes則默認情況下始終設置Ingress。

ingress:定義入流量限制規則,from用來定義白名單對象,比如網段、命名空間、Pod標簽,Ports定義目標端口。

egress:定義出流量限制規則,定義可以訪問哪些IP和端口

案例一: 需求:aming命名空間下所有Pod可以互相訪問,也可以訪問其他命名空間Pod,但其他命名空間不能訪問aming命名空間Pod。 首先創建幾個Pod:

kubectl run busybox --image=busybox -- sleep 3600  ## default命名空間里創建busybox Pod
kubectl run busybox --image=busybox -n aming -- sleep 3600    ## aming命名空間里創建busybox Pod
kubectl run web --image=nginx:1.23.2 -n aming  ## aming命名空間里創建web pod
在沒有創建NetworkPolicy的情況下測試
kubectl exec busybox -n aming -- ping 10.18.235.161  ##aming命名空間的busybox ping default命名空間的busybox IP 
kubectl exec busybox -n aming -- ping 10.18.235.162 ##aming命名空間的busybox ping aming命名空間的web IP
kubectl exec busybox -- ping 10.18.235.162 ##default命名空間的busybox ping aming命名空間的web IP
創建networkpolicy的YAML
vi  deny-all-namespaces.yaml  ##內容如下
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-all-namespaces
  namespace: aming
spec:
  podSelector: {} # 為空,表示匹配本命名空間所有Pod
  policyTypes:
  - Ingress
  ingress:
    - from:
      - podSelector: {} # 為空,表示匹配該命名空間所有Pod,即允許該命名空間所有Pod訪問,沒有定義namespaceSelector,也就是說不允許其它namespace的Pod訪問。
應用YAML
kubectl apply -f deny-all-namespaces.yaml
測試:
kubectl exec busybox -n aming -- ping 10.18.235.161  ##aming命名空間的busybox ping default命名空間的busybox IP
kubectl exec busybox -n aming -- ping 10.18.235.162 ##aming命名空間的busybox ping aming命名空間的web IP
kubectl exec busybox -- ping 10.18.235.162 ##default命名空間的busybox ping aming命名空間的web IP
將剛剛創建的所有資源刪除:
kubectl delete po busybox  --force
kubectl delete po busybox -n aming --force
kubectl delete po web -n aming
kubectl delete -f deny-all-namespaces.yaml
案例二: 通過PodSelector限制
vipod-selector.yaml##內容如下
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: app-to-app
  namespace: aming
spec:
  podSelector:
    matchLabels:
      app: test
  policyTypes:
    - Ingress
  ingress:
    - from:
        - podSelector:
            matchLabels:
              app: dev
      ports:
        - protocol: TCP
          port: 80
應用YAML
kubectl apply -f pod-selector.yaml
創建測試pod
kubectl run web01 --image=nginx:1.23.2 -n aming -l 'app=test'  #創建Pod時,指定label
kubectl get pod web01 -n aming --show-labels # 查看label
# 如果label創建錯了,也可以修改,在本實驗中不需要做如下操作
# kubectl label pod busybox app=test123 --overwrite 
kubectl run app01 --image=nginx:1.23.2 -n aming -l 'app=dev' 
kubectl run app02 --image=nginx:1.23.2 -n aming
查看web01的IP
kubectl describe po web01 -n aming |grep -i ip
測試
kubectl exec -n aming app01 -- curl 10.18.235.170
kubectl exec -n aming app02 -- curl 10.18.235.170
測試成功后,刪除掉剛剛創建的資源
kubectl delete po app01 -n aming
kubectl delete po app02 -n aming
kubectl delete po web01 -n aming
kubectl delete -f pod-selector.yaml
案例三: 限制namespace
viallow-ns.yaml#內容如下
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-ns
  namespace: aming
spec:
  podSelector: {}
  policyTypes:
    - Ingress
  ingress:
    - from:
        - namespaceSelector:
            matchLabels:
              name: test
      ports:
        - protocol: TCP
          port: 80
應用YAML
kubectl apply -f allow-ns.yaml
創建測試ns
kubectl create ns test
創建測試pod
kubectl run web01 --image=nginx:1.23.2 -n aming
kubectl run web02 --image=nginx:1.23.2 -n test
kubectl run web03 --image=nginx:1.23.2 
kubectl run web04 --image=nginx:1.23.2 -n aming
查看web01的IP
kubectl describe po web01 -n aming |grep -i ip
查看ns label
kubectl get ns --show-labels
給ns設置標簽
kubectl label namespace test name=test
測試:
kubectl -n test exec web02 -- curl 10.18.235.172  #可以訪問
kubectl exec web03 -- curl 10.18.235.172 #不可以訪問
kubectl -n aming exec web04 -- curl 10.18.235.172  #不可以訪問,即使同一個命名空間也無法訪問

以上為NetworkPolicy的主要內容,你看明白了嗎?






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • YAML
    +關注

    關注

    0

    文章

    21

    瀏覽量

    2373
  • TCP通信
    +關注

    關注

    0

    文章

    146

    瀏覽量

    4332

原文標題:來看看k8s里pod之間是如何進行網絡隔離的

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    K8s 從懵圈到熟練 – 集群網絡詳解

    ,不同的地方在于 terway 支持 Pod 彈性網卡,以及 NetworkPolicy 功能。本文中,作者基于當前的 1.12.6 版本,以 flannel 為例,深入分析阿里云 K8S 集群網絡的實現方法
    發表于 10-14 15:06

    從零開始入門 K8s | 應用存儲和持久化數據卷:核心知識

    的常見類型:本地存儲,常用的有 emptydir/hostpath;網絡存儲:網絡存儲當前的實現方式有兩種,一種是 in-tree,它的實現代碼是放在 K8s 代碼倉庫中的,隨著 K8s
    發表于 10-15 14:55

    從零開始入門 K8s | 應用存儲和持久化數據卷:核心知識

    首先看一下 Pod Volumes 的常見類型:本地存儲,常用的有 emptydir/hostpath;網絡存儲:網絡存儲當前的實現方式有兩種,一種是 in-tree,它的實現代碼是放在 K8
    發表于 10-16 10:10

    k8s volume中的本地存儲和網絡存儲

    八 、 k8s volume 本地存儲和網絡存儲
    發表于 03-25 08:44

    OpenStack與K8s結合的兩種方案的詳細介紹和比較

    OpenStack與K8S結合主要有兩種方案。一是K8S部署在OpenStack平臺之上,二是K8S和OpenStack組件集成。
    的頭像 發表于 10-14 09:38 ?2.7w次閱讀

    關于K8s最詳細的解析

    一個目標:容器操作;兩地三中心;四層服務發現;五種Pod共享資源;六個CNI常用插件;七層負載均衡;八種隔離維度;九個網絡模型原則;十類IP地址;百級產品線;千級物理機;萬級容器;相如無億,K
    的頭像 發表于 04-08 13:55 ?7445次閱讀
    關于<b class='flag-5'>K8s</b>最詳細的解析

    Docker不香嗎為什么還要用K8s

    Docker 雖好用,但面對強大的集群,成千上萬的容器,突然感覺不香了。 這時候就需要我們的主角 Kubernetes 上場了,先來了解一下 K8s 的基本概念,后面再介紹實踐,由淺入深步步為營
    的頭像 發表于 06-02 11:56 ?3540次閱讀

    簡單說明k8s和Docker之間的關系

    這篇文章主要介紹了k8s和Docker關系簡單說明,本文利用圖文講解的很透徹,有需要的同學可以研究下 最近項目用到kubernetes(以下簡稱k8sks
    的頭像 發表于 06-24 15:48 ?3534次閱讀

    K8S(kubernetes)學習指南

    K8S(kubernetes)學習指南
    發表于 06-29 14:14 ?0次下載

    k8s是什么意思?kubeadm部署k8s集群(k8s部署)|PetaExpres

    ),Kubernetes提供了應用部署,規劃,更新,維護的一種機制。 在Kubernetes中,我們可以創建多個容器,每個容器里面運行一個應用實例,然后通過內置的負載均衡策略,實現對這一組應用實例的管理、發現、訪問,而這些細節都不需要運維人員去進行復雜的手工配置和處理。 kubernetes(
    發表于 07-19 13:14 ?1193次閱讀

    k8s生態鏈包含哪些技術

    去監聽 K8s 中的 Ingress 資源,并對這些資源進行相應規則的解析和實際承載流量。在當下趨勢中,像 Kubernetes Ingress Nginx 就是使用最廣泛的 Ingress
    的頭像 發表于 08-07 10:56 ?1355次閱讀
    <b class='flag-5'>k8s</b>生態鏈包含哪些技術

    常用的k8s容器網絡模式有哪些?

    常用的k8s容器網絡模式包括Bridge模式、Host模式、Overlay模式、Flannel模式、CNI(ContainerNetworkInterface)模式。K8s的容器網絡
    的頭像 發表于 09-19 11:29 ?373次閱讀

    k8s云原生開發要求

    IO性能。網絡要求穩定,建議使用私有網絡VPC,并配置與Kubernetes兼容的網絡插件。操作系統需與K8s版本匹配,虛擬化平臺支持Docker等。此外,還需關注安全配置,如禁用Sw
    的頭像 發表于 10-24 10:03 ?349次閱讀
    <b class='flag-5'>k8s</b>云原生開發要求

    k8s和docker區別對比,哪個更強?

    部署、擴展、管理和應用生命周期管理能力,可實現高可用性和自動伸縮,兩者常結合使用以優化容器化和應用管理。UU云小編將對k8s和docker區別進行詳細對比:
    的頭像 發表于 12-11 13:55 ?283次閱讀

    自建K8S集群認證過期

    今天使用kubectl命令查看pod信息時,一直正常運行的k8s集群突然不能訪問了,輸入任何命令都提示以下報錯。
    的頭像 發表于 02-07 12:32 ?167次閱讀
    主站蜘蛛池模板: 国产在线精品一区二区网站免费 | 国产电影尺度 | 理论片午午伦夜理片2021 | 我们日本在线观看免费动漫下载 | 乱精品一区字幕二区 | 亚洲精品乱码8久久久久久日本 | 国产精品99AV在线观看 | 欧美性动漫3d在线观看完整版 | 花蝴蝶在线直播观看 | 99久久国产露脸精品麻豆 | 欧美成人国产 | 暖暖日本手机免费完整版在线观看 | 美女张开腿露出尿口扒开来摸动漫 | 男人边吃奶边摸边做刺激情话 | 把她带到密室调教性奴 | 一个人免费视频在线观看高清版 | 亚洲一卡二卡三卡四卡无卡麻豆 | 一二三区乱码不卡手机版 | 免费毛片在线播放 | 日韩黄色免费 | 国产精品福利片 | 美女在线永久免费网站 | 伊人久久丁香色婷婷啪啪 | 国产亚洲精品视频亚洲香蕉视 | 日韩美女爱爱 | 99久久国产宗和精品1上映 | 久久99久久成人免费播放 | 久热这里只有精品99国产6 | 欧洲精品不卡1卡2卡三卡四卡 | 丰满艳妇亲伦 | 小雪奶水涨翁工帮吸的推荐语录 | 岳打开双腿开始配合日韩视频 | 亚洲不卡视频在线观看 | 伊人精品影院 | 乱码午夜-极品国产内射 | 老师破女学生特级毛片 | 入禽太深在线观看免费高清 | 日韩做A爰片久久毛片A片毛茸茸 | 黄片a级毛片| 日韩毛片大全 | 一个人免费观看在线视频播放 |