基於Kubernates的istio中白名單配置

2021-10-25 08:41:55 字數 1145 閱讀 7439

在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...