首页 > 其他分享 >使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战

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

时间:2024-09-25 11:57:06浏览次数:3  
标签:服务 name Kubernetes IoT Istio 代理 5G sidecar


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

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

让我们深入研究一下。

什么是 Istio?

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

什么是 Sidecar 代理?

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

建筑

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

  1. 数据平面是 Istio 架构的关键部分,由一组代理(使用 Envoy 部署,Envoy 是一种分布式应用程序的开源代理)组成,这些代理作为 sidecar 容器与微服务一起运行。
  2. 控制平面是 Istio 架构中的决定性元素,它管理代理并决定它们的操作。让我们更详细地了解每个组件。它包括以下组件:
  • 试点:管理服务发现和流量。
  • Citadel:管理安全性并实现安全通信。
  • Galley:验证和分发配置资源。
  • Mixer:处理策略实施和遥测收集。
  • Sidecar Injector:自动将 Envoy sidecar 代理注入 Kubernetes pod 以方便集成。

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

为了解释 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 兼容平台提供了几个关键优势:

  1. 安全:在微服务之间强制实施强身份验证和授权要求。
  2. 应用性能:在微服务之间高效路由流量并处理重试和故障转移。
  3. 可观察性:从各个微服务收集遥测数据,以便详细了解运行状况和性能。
  4. 故障 排除: 单独监控每个微服务,以识别和解决性能和安全问题。

总体而言,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),如下所示。

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

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

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

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

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

标签:服务,name,Kubernetes,IoT,Istio,代理,5G,sidecar
From: https://blog.51cto.com/u_16903194/12108111

相关文章

  • 用便携WiFi路由器 OpenFi 5Pro 作为USB 4G/5G 网卡,卡托的伴侣 (4G/5G Wi-Fi伴侣),实现强
    MiFi流量套餐坑太多,速度随时受限,卡顿。有什么方法客人不受这些限制,把速度和流量的控制权掌握在自己的手里呢?现在的各大运营商都有一些不错的低资费的流量卡,比如广电推出的19元/192GB的套餐,学生卡,物联网流量卡。。。提供非常便宜的流量套餐。下面我们来对比一下MiFi和......
  • 【Day20240924】05git 两人协作 冲突
    git两人协作冲突命令行解决两个人修改同一文件时的冲突可视化解决两个人修改同一文件时的冲突参考命令行解决两个人修改同一文件时的冲突假设kerwin.js是项目的路由文件。tiechui文件夹是组员铁锤的工作目录;test2008文件夹是组长的工作目录。此时,两人都想要......
  • ABC245G Foreign Friends 题解 / 二进制分组
    ABC245GForeignFriends题解回顾一下二进制分组。题目大意给定一张\(N\)个点\(M\)条边的无向图,及\(L\)个特殊点。每个点有颜色\(C_i\)。求每个点到离他最近的与他颜色不同特殊点的距离。Solve两个点颜色不同,等价于他们的颜色在二进制下至少有一位不同。所以我们考......
  • UIOTOS示例:自定义弹窗输出表单数据 | 前端低代码 前端零代码 web组态 无代码 amis gov
    目标对话框作为容器组件,可以隐藏掉默认的窗体头和脚,完全由内嵌页自定义,参见对话框自定义外观。并且也能获取弹窗纯表单数据,如下所示: 步骤内嵌页1.新建略。2.拖放组件拖放三个输入框,标识分别施志伟id、name、phone;两个按钮标识分别设置为cancel和ok 主页面1.新......
  • 5G-A“用铲子挖金子”,为何在云南地区商用成功?
    作者|曾响铃文|响铃说随着技术的成熟与应用,AI、5G-A、物联网等前沿技术领域在市场看来都属于“金矿”型产业,蕴藏着巨大的经济财富。然而,在如今的市场上,“挖金子”的不好过,反而是卖“铲子”的人赚得盆满钵满。为什么“金矿”难挖?究其原因则在于,没有找到好的应用场景,让技术能真正......
  • iotdb单机版部署
    本章将介绍如何启动IoTDB单机实例,IoTDB单机实例包括1个ConfigNode和1个DataNode(即通常所说的1C1D)。 1.先决条件1.1获取安装包以下是iotdb的安装包官方地址https://www.apache.org/dyn/closer.cgi/iotdb/1.3.2/apache-iotdb-1.3.2-all-bin.zip 1.2网络配......
  • NodeRed+UIOTOS绝配!流程连线搭建上位机 一
    介绍NodeRed:后端低代码,用于协议接入、边缘计算采集。UIOTOS:前端零代码,用于组态绘图、UI表单、界面交互。 作为低代码的一个成功典范,NodeRed如今在IoT物联网、工业互联网、自动化等领域势不可挡,甚至引起了流程编辑的浪潮。nodered节点编辑尽管在协议对接、边缘计算上......
  • WiFi 6与5G:互补共生的黄金搭档
    目录一、技术概述1.1.Wifi61.1.1.高速率1.1.2.大容量1.1.3.低功耗1.1.4.低延迟1.1.5.更安全的连接1.2.5G1.2.1.高速率1.2.2.低时延1.2.3.大连接二、WiFi6和5G共关键技术分析2.1.OFDM及其优化技术2.1.1.OFDM技术原理2.1.2.5G中的OFDM优化技术2.1......
  • NodeRed+UIOTOS绝配!流程连线搭建上位机 一
    介绍NodeRed:后端低代码,用于协议接入、边缘计算采集。UIOTOS:前端零代码,用于组态绘图、UI表单、界面交互。作为低代码的一个成功典范,NodeRed如今在IoT物联网、工业互联网、自动化等领域势不可挡,甚至引起了流程编辑的浪潮。nodered节点编辑尽管在协议对接、边缘计算上,NodeRed是扛把子,......
  • AIoT是什么?AIoT现状如何?
    AIoT是什么?AIoT即人工智能物联网(ArtificialIntelligence&InternetofThings),是人工智能技术(AI)与物联网(IoT)在实际应用中的落地融合。物联网产生、收集来自不同维度的海量数据并存储于云端、边缘端,再通过大数据分析以及更高形式的人工智能技术,实现万物数据化、万物智联化。......