使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战

简介: 使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战

在 Kubernetes 集群中部署微服务在 5G 电信中至关重要。但是,它也带来了重大的安全风险。虽然防火墙规则和代理提供了初始安全性,但 Kubernetes 中的默认通信机制(例如未加密的网络流量和缺乏访问控制)本质上是不安全的。这种不安全性可能会危及敏感数据。因此,在每个微服务 Pod 中实施额外的安全措施不仅仅是一个建议,而是确保集群内安全通信的关键步骤。因此,需要在每个应用程序内进行额外的配置。

Istio 通过有效管理各个 5G 电信微服务 Pod 之间的通信,为这些挑战提供了强大的解决方案。借助其控制平面,Istio 会自动将 sidecar 代理注入各个微服务 pod,从而确保安全高效的通信。

让我们深入研究一下。

什么是 Istio?

Istio 是一个重要的开源服务网格,可与基于微服务的应用程序无缝集成,从而简化监控、管理以及实施性能和安全策略。它可以防止过载,限制未经授权的访问,并保护传输中的数据。其支持系统统一并确保微服务的平稳运行,显著简化其管理并确保轻松满足性能和安全性要求。

什么是 Sidecar 代理?

sidecar 代理是与 Kubernetes 微服务 Pod 一起运行的独立容器。它负责卸载 Istio 中所有应用程序所需的功能。sidecar 代理是 Istio 架构的一个强大组件,可拦截应用程序的传入和传出网络流量。它使电信运营商能够应用策略并利用上述弹性功能,并使运营商能够在与外界的接口点执行高级功能,从而展示 Istio 架构的功能。

建筑

Istio 架构的支柱主要由两个关键组件塑造,每个组件在其功能中都发挥着关键作用:

数据平面是 Istio 架构的关键部分,由一组代理(使用 Envoy 部署,Envoy 是一种分布式应用程序的开源代理)组成,这些代理作为 sidecar 容器与微服务一起运行。

控制平面是 Istio 架构中的决定性元素,它管理代理并决定它们的操作。让我们更详细地了解每个组件。它包括以下组件:

试点:管理服务发现和流量。

Citadel:管理安全性并实现安全通信。

Galley:验证和分发配置资源。

Mixer:处理策略实施和遥测收集。

Sidecar Injector:自动将 Envoy sidecar 代理注入 Kubernetes pod 以方便集成。

为了解释 Istio 架构的工作原理,我们将使用基于上述架构图的示例,使用 Microservice-A 和 Microservice-B 部署的 sidecar 代理确保了无缝高效的通信。 sidecar 代理拦截网络流量,使应用程序能够实施和实施策略、利用弹性功能并启用高级功能。

当微服务 A 向微服务 B 发送请求时,sidecar 代理会识别目的地,转发请求,并检查服务到服务的通信策略,以确定是否应根据安全性、性能和可靠性进行调用。此拦截、转发和检查过程可确保正确处理请求。如果请求通过,Microservice-B 会处理请求,准备响应,并通过网络将其发送回去,网络会被 sidecar 代理拦截并转发到客户端,然后转发到目标应用程序微服务 A。

了解 Istio 服务网格对 Kubernetes 微服务的重要性

Istio 服务网格在 Kubernetes 中是必不可少的。虽然 Kubernetes 管理微服务,但它不处理流量管理、访问策略或遥测数据收集。Istio 无需更改应用程序代码即可提供这些功能,使其成为使用 sidecar 容器管理 Kubernetes 中的微服务的有吸引力的解决方案。它可以在任何分布式环境中运行,为云或本地应用程序提供安全的解决方案。

Istio 支持 Kubernetes 发行版,包括 EKS 等托管服务和自我管理的集群。它还适用于不同的应用程序编排平台和所有微服务应用程序,包括无服务器架构。

Istio 的优势

Istio 为 Kubernetes 和 Istio 兼容平台提供了几个关键优势:

安全:在微服务之间强制实施强身份验证和授权要求。

应用性能:在微服务之间高效路由流量并处理重试和故障转移。

可观察性:从各个微服务收集遥测数据,以便详细了解运行状况和性能。

故障 排除: 单独监控每个微服务,以识别和解决性能和安全问题。

总体而言,Istio 简化了基于微服务的现代应用程序的管理员管理。

配置 YAML(另一种标记语言)

Service Mesh Control Plane 管理代理以路由流量,为数据平面提供策略和配置,并授权管理员定义和配置各种服务。配置完成后,SMCP 会将必要的信息分发到服务网格的数据平面,从而允许代理动态调整其行为。

电信运营商可以使用以下配置安装和运行 SMCP(服务网格控制平面):

SMCP YAML

YAML

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: full-install
  namespace: istio-system
spec:
  version: v2.1
  techPreview:
      meshConfig:
        defaultConfig:
          concurrency: 8     # Adjust according to the need
  proxy:
    runtime:
      container:
        resources:
          requests:
            cpu: 500m
            memory: 256Mi
          limits:             # Adjust according to the need
            cpu: "1"
            memory: 1Gi
  tracing:
    sampling: 10000 # 0.01% increments. 10000 samples 100% of traces
    type: Jaeger
  gateways:
    ingress: # istio-ingressgateway
      service:
        type: ClusterIP
        ports:
          - name: status-port
            port: 15020
          - name: http2
            port: 80
            targetPort: 8080
          - name: https
            port: 443
            targetPort: 8443
      meshExpansionPorts: []
    egress: # istio-egressgateway
      service:
        type: ClusterIP
        ports:
          - name: status-port
            port: 15020
          - name: http2
            port: 80
            targetPort: 8080
          - name: https
            port: 443
            targetPort: 8443
    additionalIngress:
      some-other-ingress-gateway: {}
    additionalEgress:
      some-other-egress-gateway: {}

  policy:
    type: Istiod
  telemetry:
    type: Istiod

  addons:
    grafana:
      enabled: true
    kiali:
      name: kiali
      enabled: true
      install: # install kiali CR if not available
        dashboard:
          viewOnly: false
          enableGrafana: true
          enableTracing: true
          enablePrometheus: true
    jaeger:
      name: jaeger-production
      install:
        storage:
          type: Elasticsearch
          elasticsearch:
            nodeCount: 3
            redundancyPolicy: SingleRedundancy
            indexCleaner:
              enabled: true
              numberOfDays: 7
              schedule: 55 23 * * *
        ingress:
          enabled: true
  runtime:
    components:
      tracing.jaeger.elasticsearch: # only supports resources and image name
        container:
          resources:
            limits:
              cpu: 1
              memory: 1Gi
            requests:
              cpu: 500m
              memory: 1Gi
      pilot:
        deployment:
          autoScaling:
            enabled: true
            minReplicas: 2
            maxReplicas: 2
            targetCPUUtilizationPercentage: 85
        pod:
          tolerations:
            - key: node.kubernetes.io/unreachable
              operator: Exists
              effect: NoExecute
              tolerationSeconds: 60
          affinity:
            podAntiAffinity:
              requiredDuringScheduling:
                - key: istio
                  topologyKey: kubernetes.io/hostname
                  operator: In
                  values:
                    - pilot
        container:
          resources:
            limits:                # Adjust according to the need
              cpu: "1"
              memory: 1Gi

Service Mesh Member Roll 明确标识了与 Service Mesh 控制平面关联的项目。唯一情况下,卷中登记的项目会受到 control plane 的影响。将项目添加到成员卷会将其链接到特定的 control plane 部署。

电信运营商可以使用以下配置安装和运行 SMMR (Service Mesh Member Roll):

SMMR YAML

YAML

apiVersion: maistra.io/v1
kind: ServiceMeshMemberRoll
metadata:
  name: default
  namespace: istio-system
spec:
  members:
  - <Micro services pods namespace>  #  namespace that needs be istio injected.

安装

1. 安装 SMCP (Service Mesh Control Plane),如下所示。

image.png

2. 按如下方式安装 SMMR (Service Mesh Member Roll)。

image.png

Istio 简化了 Kubernetes 环境中 5G 电信微服务 Pod 之间的通信,并支持跨不同平台的微服务架构的无缝连接、控制、监控和安全。它支持容器和虚拟机中的工作负载。

借助 Istio,电信 IoT 微服务 Pod 架构的未来看起来很有希望,并且具有更高的效率、安全性和可扩展性。


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
2月前
|
数据采集 运维 数据可视化
AR 运维系统与 MES、EMA、IoT 系统的融合架构与实践
AR运维系统融合IoT、EMA、MES数据,构建“感知-分析-决策-执行”闭环。通过AR终端实现设备数据可视化,实时呈现温度、工单等信息,提升运维效率与生产可靠性。(238字)
|
4月前
|
人工智能 安全 Cloud Native
Nacos 3.0 架构升级,AI 时代更安全的 Registry
随着Nacos3.0的发布,定位由“更易于构建云原生应用的动态服务发现、配置管理和服务管理平台”升级至“ 一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台 ”。
|
4月前
|
存储 设计模式 人工智能
AI Agent安全架构实战:基于LangGraph的Human-in-the-Loop系统设计​
本文深入解析Human-in-the-Loop(HIL)架构在AI Agent中的核心应用,探讨其在高风险场景下的断点控制、状态恢复与安全管控机制,并结合LangGraph的创新设计与金融交易实战案例,展示如何实现效率与安全的平衡。
557 0
|
30天前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
28天前
|
存储 监控 安全
132_API部署:FastAPI与现代安全架构深度解析与LLM服务化最佳实践
在大语言模型(LLM)部署的最后一公里,API接口的设计与安全性直接决定了模型服务的可用性、稳定性与用户信任度。随着2025年LLM应用的爆炸式增长,如何构建高性能、高安全性的REST API成为开发者面临的核心挑战。FastAPI作为Python生态中最受青睐的Web框架之一,凭借其卓越的性能、强大的类型安全支持和完善的文档生成能力,已成为LLM服务化部署的首选方案。
|
8月前
|
人工智能 运维 安全
AI 安全架构概述
AI 安全架构涵盖数据采集、模型训练、推理部署等阶段,确保安全性、隐私与合规。其核心组件包括数据层、模型层、推理层、应用层和运维层,针对数据安全威胁(如数据投毒)、模型窃取、对抗攻击及系统漏洞等风险,提出数据加密、对抗训练、联邦学习等防御策略,并强调开发前、开发中和部署后的最佳实践,以降低 AI 解决方案的安全风险。
724 13
|
3月前
|
存储 安全 前端开发
如何开发一套EHS 健康安全环境管理系统?(附架构图+流程图+代码参考)
本文介绍如何开发一套完整的EHS(健康、安全和环境)管理系统,涵盖系统核心模块、技术架构、数据库设计、前后端开发示例及上线建议,帮助企业提升安全管理效率与合规性。
|
3月前
|
传感器 安全 前端开发
如何开发一套EHS健康安全环境管理系统中的风险管理板块?(附架构图+流程图+代码参考)
本文详解企业EHS(健康·安全·环境)系统中的风险管控板块,强调其核心在于构建“识别—评估—巡检—治理—验证”的闭环流程,将风险数据可视化并转化为可落地的行动指引。内容涵盖风险管控的意义、功能边界、系统架构、LEC评估方法、巡检流程、看板设计、开发技巧、落地建议、实现效果及代码参考,帮助技术团队和EHS负责人快速掌握系统搭建要点,提升企业安全管理水平。
下一篇
开通oss服务