K8S Calico

NetworkPolicy是kubernetes對pod的隔離手段,是宿主機上的一系列iptables規則。
1334255-20181122144452314-131222249.png

Egress 表示出站流量,就是pod作為客戶端訪問外部服務,pod地址作為源地址。策略可以定義目標地址或者目的端口
Ingress 表示入站流量,pod地址和服務作為服務端,提供外部訪問。pod地址作為目標地址。策略可以定義源地址和自己端口

官網
https://docs.projectcalico.org/v3.1/getting-started/kubernetes/

我們這里使用的是 flannel 構建 K8S 網絡,使用 Calico 構建網絡規則

mkdir ~/networkpolicy ; cd ~/networkpolicykubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/canal/rbac.yaml
kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/hosted/canal/canal.yaml
kubectl get pods -n kube-system# 創建兩個命名空間 dev 和 prod 進行測試
kubectl create namespace dev
kubectl create namespace prodvi pod-a.yaml
# 內容如下
apiVersion: v1
kind: Pod
metadata:name: pod1
spec:containers:- name: myappimage: ikubernetes/myapp:v1# 在命名空間 dev 創建 pod1
kubectl apply -f pod-a.yaml -n dev
kubectl get pods -n dev -o wide
# 運行結果:
NAME   READY   STATUS    RESTARTS   AGE   IP           NODE
pod1   1/1     Running   0          14m   10.244.2.2   node2# 在命名空間 prod 創建 pod1
kubectl apply -f pod-a.yaml -n prod
kubectl get pods -n prod -o wide
# 運行結果:
NAME   READY   STATUS    RESTARTS   AGE   IP           NODE
pod1   1/1     Running   0          14m   10.244.1.2   node1# 測試網絡
curl 10.244.1.2    # 正常訪問
curl 10.244.2.2    # 正常訪問kubectl exec pod1 -it -n prod -- /bin/sh
ping 10.244.2.2   # 鏈路正常

Ingress

# Ingress 默認禁止所有的入站流量
vi ngress-def.yaml 
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: deny-all-ingress
spec:podSelector: {}policyTypes:- Ingresskubectl apply -f ingress-def.yaml -n dev# 查看 networkpolicy 規則
kubectl get netpol -n devcurl 10.244.2.2    # 命名空間 dev  pod1 無法訪問curl 10.244.1.2    # 命名空間 prod pod1 正常訪問# 開放所有的入站流量
vi ingress-def.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: deny-all-ingress
spec:podSelector: {}ingress:- {}policyTypes:- Ingresskubectl apply -f ingress-def.yaml -n devcurl 10.244.1.2   # 命名空間 prod pod1 正常訪問curl 10.244.2.2   # 命名空間 dev pod1 正常訪問

通過規則限制入站流量

kubectl delete netpol deny-all-ingress -n devkubectl label pods pod1 app=myapp -n dev# 添加網絡規則
vi allow-netpol-demo.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: allow-myapp-ingress
spec:podSelector:matchLabels:app: myapp           # 選擇app=myapp 的標簽放行ingress:- from:- ipBlock:              # 地址段cidr: 10.244.0.0/16 # 允許這個地址段訪問except:             # 排除一下地址不可以訪問- 10.244.1.2/32ports:- protocol: TCPport: 80              # 允許訪問80端口- protocol: TCPport: 443kubectl apply -f allow-netpol-demo.yaml -n devkubectl get netpol -n devcurl 10.244.2.2:80    # 命名空間 dev pod1 正常訪問curl 10.244.2.2:443   # NetworkPolicy 放行,沒有開放 443 端口,服務器拒絕
curl: (7) Failed connect to 10.244.2.2:443; Connection refusedcurl 10.244.2.2:6443  # 卡住,被 NetworkPolicy 拒絕

Egress

# 默認限制所有的出站流量
vi egrees-def.yaml 
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: deny-all-egress
spec:podSelector: {}policyTypes:- Egresskubectl apply -f egrees-def.yaml -n prodkubectl get pods -n kube-system -o wide
# 選取一個 coredns 的 pod ipkubectl exec pod1 -it -n prod -- /bin/sh
ping 10.244.0.4    # 無法正常 ping 通# 放行所有的出站流量
vi egrees-def.yaml 
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:name: deny-all-egress
spec:podSelector: {}egress:- {}policyTypes:- Egresskubectl apply -f egrees-def.yaml -n prodkubectl exec pod1 -it -n prod -- /bin/sh
ping 10.244.0.4    # 正常 ping 通

轉載于:https://www.cnblogs.com/klvchen/p/10000687.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395950.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395950.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395950.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

前端頁面內含外顯相關知識

頁面顯示: 對于頁面上篩選條件有下拉框加載的,直接下對應顯示時加載 {text : 產品線,dataIndex : entorgid,align : center,width : 150,renderer:function(value,metaData,record ,rowIndex,colIndex,store,view){if(value ! ""){$("#en…

捷克 簽證_一位捷克開發人員構建了可在您的瀏覽器中直接運行的語音合成器

捷克 簽證Here are three links worth your time:這是三個值得您花費時間的鏈接: A Czech developer built this mouth synthesizer that runs right in your browser. Be sure to turn your sound on. (1 minute watch interactive app) 一位捷克開發人員構建了可…

mvc 之 配置EF+oralce

只需要在項目中加載nuGet包就可以了 操作:工具--nuGet包管理器--程序包管理器控制臺 在 PM>處輸入 install-package entityframework 加載sqlserver的數據庫連接 install-package oracle.manageddataaccess.entityframework 加載oracle的數據庫連接 參考地址&…

計算機組裝與維修bios設置,(完整版)計算機組裝與維修模擬試題(BIOS設置的習題).docx...

第十二章BIOS 設置的習題一、問答題、目前 BIOS 的類型主要有哪幾種?、設置 Quick_Power_Self_Test( 快速開機自檢 ) 為什么狀態時,可以加速計算機的啟動?、何謂 _BIOS?、簡述 BIOS 的基本功能。、 BIOS與 CMOS有何區別&#xff1…

從諾克斯維爾的攀巖健身房到舊金山的網絡安全公司

這是三個值得您花費時間的鏈接: (Here are three links worth your time:) How Sean went from working in a Knoxville rock climbing gym to working as a software engineer in a San Francisco cybersecurity startup, through 12 months of intense self-teach…

每周總結(第十一周)

轉載于:https://www.cnblogs.com/qinlihong/p/5510026.html

10個關于linux中Squid代理服務器的實用面試問答

10個關于linux中Squid代理服務器的實用面試問答 不僅是系統管理員和網絡管理員時不時會聽到“代理服務器”這個詞,我們也經常聽到。代理服務器已經成為一種企業常態,而且經常會接觸到它。它現在也出現在一些小型的學校或者大型跨國公司的自助餐廳里。Squ…

北京礦大計算機考研每年分數線,2021中國礦業大學北京考研國家線公布時間_國家線是多少分...

中國礦業大學北京考研國家線怎么看?中國礦業大學北京考研國家線是多少分?山西人事考試網整理中國礦業大學北京考研考研國家線怎么看、國家線公布時間、歷年中國礦業大學北京考研國家線,希望考生及時關注考研成績國家線公布信息,為…

工廠模式-依賴倒置原則

老板:阿飛啊,我們公司最近接了個項目,你看著設計一下,我給你說下需求。項目組長阿飛:好啊,什么需求?老板:我們找了一個合作的商鋪,他們要設計一套面包銷售系統。主要功能…

aws lambda_如何通過在本地模擬AWS Lambda來加速無服務器開發

aws lambdaby John McKim約翰麥金(John McKim) 如何通過在本地模擬AWS Lambda來加速無服務器開發 (How you can speed up serverless development by simulating AWS Lambda locally) Designing AWS Lambda functions can be a frustrating experience. Each time you make a …

(6)css盒子模型(基礎下)

一、理解多個盒子模型之間的相互關系 現在大部分的網頁都是很復雜的,原因是一個“給人用的”網頁中是可能存在著大量的盒子,并且它們以各種關系相互影響著。 html與DOM的關系 詳情了解“DOM” :http://baike.baidu.com/link?urlSeSj8sRDE-JZ…

easyui獲取下拉框選中的文本值_Word中文本顯示不全的常見3種情況及解決方法

在日常工作使用Word文檔時,經常會遇到文本顯示不全的情況,比如文本框或表格里的文本顯示不全等情況,你一般是怎么操作呢?以下這3種常見情況你可能也遇到過,一起看看是什么原因并解決它們吧!1、文本顯示不全…

企業IT架構轉型之道:阿里巴巴中臺戰略思想與架構實戰. 導讀

企業IT架構轉型之道 阿里巴巴中臺戰略思想與架構實戰 鐘 華 編 著 前 言  在過去15年的IT從業經歷中,有很長一段時間我都是以軟件服務商的身份參與了企業的IT系統建設,對于過去十幾年來企業IT的發展有一定的認知和理解,帶著對互聯網技術…

計算機軟件技術大作業報告,多媒體技術大作業報告.doc

多媒體技術大作業報告.doc華南理工大學多媒體技術大作業報告專 業:班 級:學 號:學生姓名:完成時間:目錄說 明 ……………………………………………………3第一章概述 …………………………………………………4第二章技…

ES6入門之Generator函數

Generator Generator函數是ES6提供的一種異步編程解決方案,Generator函數是一個狀態機,封裝了多個內部狀態。 執行Generator函數會返回一個遍歷器對象,也就是說,Generator函數除了狀態機,還是一個遍歷器對象生成函數。…

reddit_Reddit如何設計和編碼其詳盡的愚人節體驗,/ r / place

redditHere are three links worth your time:這是三個值得您花費時間的鏈接: How Reddit designed and coded its elaborate April Fool’s experience, /r/place (17 minute read) Reddit如何設計和編碼其詳盡的愚人節經驗/ r / place( 閱讀17分鐘 ) These hacka…

CSS中屬性的值和單位

CSS中值的單位 1.顏色值 被各種瀏覽器支持,并且作為 CSS 規范推薦的顏色名稱只有 16 種,如下表所示。 百分比表示 color: rgb(100%, 100%, 100%); 這個聲明將紅、藍、綠 3 種原色都設置為最大值,結果組合顯示為白色。相反,可以設置…

mysql能否在手機端運行_在手機上安裝linux并部署mysql,jupyter用于數據探索

因為現在有一臺舊手機放在學校,之前使用的軟路由內存只有128M,不方便存一些小的數據.手機的好處是可以一直開著,因此在手機上安裝linux來替代樹莓派做服務器是可行的(由于不需要對外,所以也不用購買服務器).安裝linux首先安裝busybox1.對于busybox,進入左上角settings,設置inst…

《走進SAP(第2版)》——2.8 SAP的目標是什么

本節書摘來自異步社區《走進SAP(第2版)》一書中的第2章,第2.8節,作者: 【德】Nancy Muir , Ian Kimbell , 等 更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.8 SAP的目標是什么 走進SAP(第2版)…

尼康d850相機參數測試軟件,尼康 - D850 - 產品介紹

類型數碼單鏡反光相機鏡頭卡口尼康F卡口(帶有AF耦合和AF接點)有效視角尼康FX格式影像傳感器格式FX格式影像傳感器類型CMOS傳感器有效像素數約4,575萬影像傳感器約35.9mm x 23.9mm總像素數約4,689萬灰塵減少功能清潔影像傳感器圖像尺寸(像素)-FX (36x24) 影像區域(L) 8256 x 550…