在kubernates中,引入了istio管理流量,這時所有的入口流量均通過istio中的ingressgateway**至目標服務,若是想要配置白名單,限制訪問流量,那麼需要建立乙個istio的authorizationpolicy資源,該資源通過label繫結ingressgateway的pod。事例如下:
apiversion: security.istio.io/v1beta1
kind: authorizationpolicy
metadata:
name: ingress-policy
namespace: istio-system
spec:
selector:
matchlabels:
action: allow
rules:
- from:
- source:
ipblocks: [「*.*.*.*」]
eof
在配置白名單中會出現sourceip被更改的問題,此時可以去官網了解一下kubernates的sourceip機制。
主要有一下3種目標服務訪問方式:
1、在集群外訪問:集群外訪問集群內的目標服務時,由於部署 了istio,此時,所有流量會通過istio的ingressgateway,流量在通過節點node時,sourceip會被替換為node的ip位址,然後流量到達ingressgateway pods,此時白名單的配置生效,然而sourceip已經不是原來的ip位址了。
2、在集群內的任意乙個pod訪問:正常情況下集群內不pod之間的訪問直接通過service實現,在istio的情況下,會依賴envoy進行流量**,然而,如果在某個pod上通過公網網域名稱訪問其他pod上的乙個服務,此時流量總會通過istio的slb,但不會出slb,所以,與ingressgateway pods在同乙個node上,或不在同乙個node上,那麼sourceip也會不同。
3、在kubernates的任意node上訪問:在node上通過公網網域名稱訪問集群內部的服務,如果kube-proxy是ipvs模式,那麼在每個node節點上的ipvs網絡卡會繫結service的ip,誠然,ingressgateway pods的service 的公網ip也被繫結上面,所以,此時流量會直接通過ipvs的網絡卡**,sourceip會改為slb的ip。
Kubernates集群入門(1)
摘要 一 k8s安裝準備 1.至少兩台主機,一台作為master,一台作為node。兩台主機需要關閉防火牆。centos6 service stop firewalld service disable firewalld centos7 systemctl stop iptables systemc...
Kubernates之pod檔案傳遞
本地伺服器 跳轉伺服器 pod 之間資料匯入與匯出 1.pod中資料匯出 可用lrzsz,匯出到桌面中。在pod中直接操作 從伺服器中匯入檔案到pod 中 kubectl cp root integration test hpa automation tosca csar ns vgw.csar o...
基於IP,基於port和基於網域名稱的三種
1 基於相同ip不同port的虛擬主機 2 將listen欄位改為 listen 80 listen 8888 以上設定表示使用80以及8888埠 3 更改虛擬主機部分為 documentroot var www html website1 documentroot var www html web...