微信网站服务器要求,不懂网站建设 如何找建站公司,在线制作logo图标软件,淘宝客网站建站源码备考ICA----Istio实验18—单集群中部署多个Istio控制面
单个 Kubernetes 控制面以及多个 Istio 控制面和多个网格。通过 Kubernetes 命名空间和 RBAC 实现软多租户业务隔离。
1. 环境准备
1.1 创建2个命名空间
kubectl create ns usergroup-1
kubectl label ns usergroup-…备考ICA----Istio实验18—单集群中部署多个Istio控制面
单个 Kubernetes 控制面以及多个 Istio 控制面和多个网格。通过 Kubernetes 命名空间和 RBAC 实现软多租户业务隔离。
1. 环境准备
1.1 创建2个命名空间
kubectl create ns usergroup-1
kubectl label ns usergroup-1 usergroupusergroup-1
kubectl create ns usergroup-2
kubectl label ns usergroup-2 usergroupusergroup-21.2 确认istioctl正确安装
istioctl x precheck2. 部署多个控制面
2.1 usergroup1 安装istiod
istio-install-usergroup1.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:namespace: usergroup-1
spec:profile: demorevision: usergroup-1meshConfig:discoverySelectors:- matchLabels:usergroup: usergroup-1values:global:istioNamespace: usergroup-1pilot:env:ENABLE_ENHANCED_RESOURCE_SCOPING: trueusergroup1 安装istio
istioctl install -y -f istio-install-usergroup1.yaml2.2 usergroup2 安装istiod
istio-install-usergroup1.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:namespace: usergroup-2
spec:profile: demorevision: usergroup-2meshConfig:discoverySelectors:- matchLabels:usergroup: usergroup-2values:global:istioNamespace: usergroup-2pilot:env:ENABLE_ENHANCED_RESOURCE_SCOPING: trueusergroup2 安装istio
istioctl install -y -f istio-install-usergroup2.yaml3. 双向TLS
strict-usergroup-1.yaml
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:name: usergroup-1-peerauthnamespace: usergroup-1
spec:mtls:mode: STRICTstrict-usergroup-2.yaml
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:name: usergroup-2-peerauthnamespace: usergroup-2
spec:mtls:mode: STRICT配置生效
kubectl apply -f strict-usergroup-1.yaml
kubectl apply -f strict-usergroup-2.yaml4. 验证控制多控制平面
kubectl get ns --show-labels|grep usergroup
kubectl get pods -n usergroup-1
kubectl get pods -n usergroup-2
kubectl get validatingwebhookconfigurations.admissionregistration.k8s.io
kubectl get mutatingwebhookconfigurations.admissionregistration.k8s.io 5. 部署应用负载
5.1 创建命名空间
创建3个命名空间
kubectl create ns app-ns-1
kubectl create ns app-ns-2
kubectl create ns app-ns-35.2 将命名空间与控制平面关联
命名空间控制平面app-ns-1usergroup-1app-ns-2usergroup-2app-ns-3usergroup-2
kubectl label ns app-ns-1 usergroupusergroup-1 istio.io/revusergroup-1
kubectl label ns app-ns-2 usergroupusergroup-2 istio.io/revusergroup-2
kubectl label ns app-ns-3 usergroupusergroup-2 istio.io/revusergroup-25.3 部署应用
kubectl apply -f istio/samples/sleep/sleep.yaml -n app-ns-1
kubectl apply -f istio/samples/httpbin/httpbin.yaml -n app-ns-1
kubectl apply -f istio/samples/sleep/sleep.yaml -n app-ns-2
kubectl apply -f istio/samples/httpbin/httpbin.yaml -n app-ns-2
kubectl apply -f istio/samples/sleep/sleep.yaml -n app-ns-3
kubectl apply -f istio/samples/httpbin/httpbin.yaml -n app-ns-3确认pod被正确创建
kubectl get pods -n app-ns-1
kubectl get pods -n app-ns-2
kubectl get pods -n app-ns-35.4 访问测试
for NS in app-ns-1 app-ns-2 app-ns-3;dofor APPS in app-ns-1 app-ns-2 app-ns-3;doecho ${NS} TO ${APPS}:kubectl -n ${NS} exec deployments/sleep -- curl -sIL http://httpbin.${APPS}:8000 |grep HTTP/1.1done
done根据测试结果我们可以看到,在同一个控制平面的app-ns-2和app-ns-3可以互访,而另一个控制平面的app-ns-1只能访问自己平面的httpbin服务 至此备考ICA----Istio实验18—单集群中部署多个Istio控制面实验完成