备考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

相关文章

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

Redis分片集群的实现

《Redis分片集群的实现》Redis分片集群是一种将Redis数据库分散到多个节点上的方式,以提供更高的性能和可伸缩性,本文主要介绍了Redis分片集群的实现,具有一定的参考价值,感兴趣的可以了解一... 目录1. Redis Cluster的核心概念哈希槽(Hash Slots)主从复制与故障转移2.

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域