备考ICA----Istio实验18---单集群中部署多个Istio控制面

2024-04-09 07:12

本文主要是介绍备考ICA----Istio实验18---单集群中部署多个Istio控制面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

备考ICA----Istio实验18—单集群中部署多个Istio控制面

单个 Kubernetes 控制面以及多个 Istio 控制面和多个网格。通过 Kubernetes 命名空间和 RBAC 实现软多租户业务隔离。
在这里插入图片描述

1. 环境准备

1.1 创建2个命名空间

kubectl create ns usergroup-1
kubectl label ns usergroup-1 usergroup=usergroup-1
kubectl create ns usergroup-2
kubectl label ns usergroup-2 usergroup=usergroup-2

1.2 确认istioctl正确安装

istioctl x precheck

在这里插入图片描述

2. 部署多个控制面

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: true

usergroup1 安装istio

istioctl install -y -f istio-install-usergroup1.yaml

在这里插入图片描述

2.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: true

usergroup2 安装istio

istioctl install -y -f istio-install-usergroup2.yaml

在这里插入图片描述

3. 双向TLS

strict-usergroup-1.yaml

apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:name: "usergroup-1-peerauth"namespace: "usergroup-1"
spec:mtls:mode: STRICT

strict-usergroup-2.yaml

apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:name: "usergroup-2-peerauth"namespace: "usergroup-2"
spec:mtls:mode: STRICT

配置生效

kubectl apply -f strict-usergroup-1.yaml
kubectl apply -f strict-usergroup-2.yaml

4. 验证控制多控制平面

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-3

5.2 将命名空间与控制平面关联

命名空间控制平面
app-ns-1usergroup-1
app-ns-2usergroup-2
app-ns-3usergroup-2
kubectl label ns app-ns-1 usergroup=usergroup-1 istio.io/rev=usergroup-1
kubectl label ns app-ns-2 usergroup=usergroup-2 istio.io/rev=usergroup-2
kubectl label ns app-ns-3 usergroup=usergroup-2 istio.io/rev=usergroup-2

5.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-3

在这里插入图片描述

5.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控制面实验完成

这篇关于备考ICA----Istio实验18---单集群中部署多个Istio控制面的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/887501

相关文章

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

Python函数返回多个值的多种方法小结

《Python函数返回多个值的多种方法小结》在Python中,函数通常用于封装一段代码,使其可以重复调用,有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点,需要的朋友... 目录一、使用元组(Tuple):二、使用列表(list)三、使用字典(Dictionary)四、 使

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

MySQL精准控制Binlog日志数量的三种方案

《MySQL精准控制Binlog日志数量的三种方案》作为数据库管理员,你是否经常为服务器磁盘爆满而抓狂?Binlog就像数据库的“黑匣子”,默默记录着每一次数据变动,但若放任不管,几天内这些日志文件就... 目录 一招修改配置文件:永久生效的控制术1.定位my.cnf文件2.添加核心参数不重启热更新:高手应

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

ubuntu16.04如何部署dify? 在Linux上安装部署Dify的技巧

《ubuntu16.04如何部署dify?在Linux上安装部署Dify的技巧》随着云计算和容器技术的快速发展,Docker已经成为现代软件开发和部署的重要工具之一,Dify作为一款优秀的云原生应用... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。它

Nginx部署React项目时重定向循环问题的解决方案

《Nginx部署React项目时重定向循环问题的解决方案》Nginx在处理React项目请求时出现重定向循环,通常是由于`try_files`配置错误或`root`路径配置不当导致的,本文给大家详细介... 目录问题原因1. try_files 配置错误2. root 路径错误解决方法1. 检查 try_f