Istio - Injection Essence

简介: 了解Istio注入原理,洞悉技术本质

Inject Method

1. 手动注入 - 针对具体的一个资源对象

工作原理: 通过改写yaml文件植入Istio-proxy容器,以及init-container用于修改iptables规则。

配置方法:istioctl kue-inject <deploy.yaml> -o <inject.yaml>



2. 自动注入 - 针对命名空间内的所有资源对象

工作原理: 通过webhook机制监听apiserver提交的请求从而自动的修改对应的资源对象。

配置方法:kubectl label namespace <namespace> istio-injection=enabled

image.jpeg

kubectl get mutatingwebhookconfiguration istio-sidecar-injector -o yaml

image.jpeg



# 原始的资源定义清单

tee nginx-deployment.yaml <<-'EOF'

apiVersion: v1

kind: Namespace

metadata:

 name: demo

--- apiVersion: apps/v1

kind: Deployment

metadata:

 labels:

   app: nginx-deployment

 name: nginx-deployment

 namespace: demo

spec:

 replicas: 2

 selector:

   matchLabels:

     app: nginx-deployment

 strategy:

   rollingUpdate:

     maxSurge: 25%

     maxUnavailable: 25%

   type: RollingUpdate

 template:

   metadata:

     labels:

       app: nginx-deployment

   spec:

     containers:

       - image: 'nginx:latest'

         imagePullPolicy: IfNotPresent

         name: nginx-deployment

         resources:

           limits:

             cpu: 100m

             memory: 200Mi EOF

kubectl apply -f nginx-deployment.yaml

# 被Istio注入后的资源定义清单

istioctl kube-inject -f nginx-deployment.yaml -o nginx-deployment-inject.yaml

image.jpeg

kubectl apply -f nginx-deployment-inject.yaml


## 注入前 只有应用的容器

image.jpeg

## 注入后 多出一个容器

image.jpeg


# 所有的容器共享Pod的命名空间

## 注入前 应用只监听自身的套接字

image.jpeg


## Nginx Container 注入之后 与 Istio-Proxy 共享网络命名空间

image.jpeg

## Istio-Proxy Container 注入之后 与 Nginx 共享网络命名空间

image.jpeg


目录
相关文章
|
负载均衡 Perl
Istio - TrafficManagement - Fault Injection
Istio 故障注入与其他在网络层引入错误(例如延迟数据包或者直接杀死 Pod)的机制不同,Istio 允许在应用程序层注入故障。这使得可以注入更多相关的故障,比如 HTTP 错误代码等。
141 0
Istio - TrafficManagement - Fault Injection
|
18天前
|
监控 安全 Cloud Native
云原生安全:Istio在微服务架构中的安全策略与实践
【10月更文挑战第26天】随着云计算的发展,云原生架构成为企业数字化转型的关键。微服务作为其核心组件,虽具备灵活性和可扩展性,但也带来安全挑战。Istio作为开源服务网格,通过双向TLS加密、细粒度访问控制和强大的审计监控功能,有效保障微服务间的通信安全,成为云原生安全的重要工具。
39 2
|
1月前
|
Kubernetes 安全 微服务
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
53 8
|
1月前
|
Kubernetes 负载均衡 安全
Istio在微服务中释放服务网格的力量
Istio在微服务中释放服务网格的力量
50 4
|
3月前
|
负载均衡 监控 安全
Istio:微服务治理的超级英雄,一键解锁你的服务网格超能力,让管理复杂变简单!
【8月更文挑战第31天】随着云原生技术的发展,微服务架构成为主流,但其复杂性与管理难题也随之增加。Istio作为开源服务网格平台,通过独特的数据平面和控制平面设计,实现了微服务通信的透明管理,简化了治理复杂度。本文将对比Istio与传统微服务管理方法,详细介绍Istio的架构及其工作原理,包括Envoy代理、服务发现、负载均衡、流量管理、安全认证以及监控等功能。Istio不仅简化了微服务治理,还提供了强大的流量控制和安全机制,使开发者能更高效地管理应用。
71 2
|
3月前
|
开发者 项目管理 开发工具
震惊!单人开发者如何成功过渡到团队协作?Xamarin 项目管理经验大揭秘,让你的开发之路一帆风顺!
【8月更文挑战第31天】Xamarin 是移动应用开发领域的热门跨平台工具,适用于个人开发者及团队。个人开发时需明确需求、运用版本控制(如 Git)并合理规划项目结构以增强代码可维护性。团队协作时,则需建立有效沟通渠道、统一代码规范、严格版本控制及合理分配任务,以提升开发效率与项目质量。
64 1
|
3月前
|
Kubernetes 安全 微服务
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
在5G电信领域,Kubernetes集群中部署微服务至关重要,但也带来了重大的安全挑战。Istio作为一个强大的开源服务网格,能有效地管理这些微服务间的通信,通过其控制平面自动将Sidecar代理注入到各微服务Pod中,确保了安全且高效的通信。Istio的架构由数据平面和控制平面组成,其中Sidecar代理作为Envoy代理运行在每个Pod中,拦截并管理网络流量。此外,Istio支持多种Kubernetes发行版和服务,如EKS等,不仅增强了安全性,还提高了应用性能和可观测性。
75 0
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
|
5月前
|
Kubernetes 监控 负载均衡
Istio:微服务开发的终极利器,你还在为繁琐的通信和部署流程烦恼吗?
本文介绍了服务网格(Service Mesh)的概念及其在微服务架构中的重要性。微服务强调围绕业务构建团队和去中心化的数据管理,带来更高的灵活性和扩展性。然而,随着服务数量增加,网络通信成为挑战,包括服务发现、路由和安全等问题。 Service Mesh如Istio应运而生,通过边车代理解决服务间通信,提供服务发现、负载均衡、智能路由、安全和监控等功能。它与Kubernetes结合,增强了容器环境的服务管理能力。Istio的bookinfo示例展示了其在多语言微服务中的应用,简化了代码中的服务调用逻辑,使开发更专注于业务本身。
674 3
Istio:微服务开发的终极利器,你还在为繁琐的通信和部署流程烦恼吗?
|
Dubbo Java 应用服务中间件
开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比
开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比
1092 7
|
安全 前端开发 Cloud Native
Istio 探索:微服务的流量管理、安全性和策略加固
Istio 探索:微服务的流量管理、安全性和策略加固
98 0