精华内容
下载资源
问答
  • Sidecar
    2021-07-19 19:00:07

    Sidecar

    Sidecar 描述了 Sidecar 代理的配置,该代理可将入站和出站通信调解到它所附加的工作负载实例。默认情况下,Istio 将为网格中的所有 Sidecar 代理进行必要的配置,以达到网格中的每个工作负载示例,并接受与工作负载相关的所有端口上的流量。Sidecar 配置提供了一种调优端口集的方法,代理在向工作负载转发流量和从工作负载转发流量时将接受端口集和协议。此外,当转发来自工作负载实例的出站流量时,可以限制代理可以访问的服务集。

    网格中的服务和配置被组织到一个或多个命名空间(如 Kubernetes 命名空间或 CF org/space)中。命名空间中的 Sidecar 配置将应用于同一命名空间中使用 workloadSelector 字段筛选出来的一个或多个工作负载实例。在 workloadSelector 字段不存在的情况下,它将应用于同一命名空间中的所有工作负载实例。当确定要应用于工作负载实例的 Sidecar 配置时,将优先选择带有该工作负载实例的 workloadSelector 的资源, 而不是没有任何 workloadSelectorSidecar 配置。

    注意1:每个命名空间在没有任何 workloadSelector 的情况下只能有一个 Sidecar 配置。如果给定的命名空间中存在多个无选择器的 Sidecar 配置,则系统的行为是不确定的。如果两个或多个带有 workloadSelectorSidecar 配置选择了相同的工作负载实例,则系统的行为是不确定的。

    注意2:默认情况下,MeshConfig 根命名空间中的 Sidecar 配置将被默认应用于所有没有 Sidecar 配置的命名空间。这个全局默认的 Sidecar 配置不应该包含任何 workloadSelector

    下面的示例中,在名为 istio-config 的根命名空间中声明了全局默认的 Sidecar 配置,该配置将所有命名空间中的 Sidecar 配置为仅允许将流量发送到同一命名空间中的其他工作负载,以及 istio-system 命名空间中的服务。

    apiVersion: networking.istio.io/v1alpha3
    kind: Sidecar
    metadata:
      name: default
      namespace: istio-config
    spec:
      egress:
      - hosts:
        - "./*"
        - "istio-system/*"
    

    下面的示例中,在 prod-us1 命名空间中声明了一个 Sidecar 配置,该配置覆盖了上面定义的全局默认值,并将命名空间下的 Sidecar 配置为允许将流量发送到 prod-us1prod-apisistio-system 命名空间中的服务。

    apiVersion: networking.istio.io/v1alpha3
    kind: Sidecar
    metadata:
      name: default
      namespace: prod-us1
    spec:
      egress:
      - hosts:
        - "prod-us1/*"
        - "prod-apis/*"
        - "istio-system/*"
    

    下面的示例中,在 prod-us1 命名空间中声明了一个 Sidecar 配置,该配置在 9080 端口上接收入站 HTTP 流量,并将其转发给 Unix Domain Socket 上监听的附加工作负载实例。在出口方向上,除了 istio-system 命名空间之外,Sidecar 仅代理为 prod-us1 命名空间中的服务绑定到 9080 端口的 HTTP 流量。

    apiVersion: networking.istio.io/v1alpha3
    kind: Sidecar
    metadata:
      name: default
      namespace: prod-us1
    spec:
      ingress:
      - port:
          number: 9080
          protocol: HTTP
          name: somename
        defaultEndpoint: unix:///var/run/someuds.sock
      egress:
      - port:
          number: 9080
          protocol: HTTP
          name: egresshttp
        hosts:
        - "prod-us1/*"
      - hosts:
        - "istio-system/*"
    

    如果部署工作负载时没有基于 iptables 的流量捕获,那么 Sidecar 配置是配置附加到工作负载实例的代理上的端口的唯一方法。

    下面的示例中,在 prod-us1 命名空间中为属于 productpage.prod-us1 服务带有标签 app: productpage 的所有 Pod 声明了一个 Sidecar 配置。假定这些 Pod 部署时没有 iptables 规则(即 istio-init 容器)和代理元数据 ISTIO_META_INTERCEPTION_MODE 设置为 NONE,下面允许这样的 Pod 接收 9080 端口上的 HTTP 流量,并将其转发到监听 127.0.0.1:8080 的应用程序。它还允许应用程序与 127.0.0.1:3306 上的后备 mysql 数据库通信,然后将其代理到 mysql:foo.com:3306 上的外部托管的 mysql 服务。

    apiVersion: networking.istio.io/v1alpha3
    kind: Sidecar
    metadata:
      name: no-ip-tables
      namespace: prod-us1
    spec:
      workloadSelector:
        labels:
          app: productpage
      ingress:
      - port:
          number: 9080              # binds to proxy_instance_ip:9080 (0.0.0.0:9080, if no unicast IP is available for the instance)
          protocol: HTTP
          name: somename
        defaultEndpoint: 127.0.0.1:8080
        captureMode: NONE               # not needed if metadata is set for entire proxy
      egress:
      - port:
          number: 3306
          protocol: MYSQL
          name: egressmysql
        captureMode: NONE               # not needed if metadata is set for entire proxy
        bind: 127.0.0.1
        hosts:
        - "*/mysql.foo.com"
    

    路由到 mysql.foo.com:3306 的相关 ServiceEntry

    apiVersion: networking.istio.io/v1alpha3
    kind: ServiceEntry
    metadata:
      name: external-svc-mysql
      namespace: ns1
    spec:
      hosts:
      - mysql.foo.com
      ports:
      - number: 3306
        name: mysql
        protocol: MYSQL
      location: MESH_EXTERNAL
      resolution: DNS
    

    可以在单个代理中混合和匹配流量捕获模式。例如,考虑到内部服务位于 192.168.0.0/16 子网中的设置,因此在 VM 上设置 IP 表以捕获 192.168.0.0/16 子网中的所有出站流量。假设 VM 在 172.16.0.0/16 子网中有一个用于入站流量的额外网络接口,通过下面的 Sidecar 配置,VM 可以在 172.16.1.32:80(VM IP)上暴露一个监听器,用于接收来自 172.16.0.0/16 子网的流量。注意,在这种情况下,VM 中的代理上的 ISTIO_META_INTERCEPTION_MODE 元数据应包含 REDIRECTTPROXY 作为其值,这意味着基于 IP 表的流量捕获处于活动状态。

    apiVersion: networking.istio.io/v1alpha3
    kind: Sidecar
    metadata:
      name: partial-ip-tables
      namespace: prod-us1
    spec:
      workloadSelector:
        labels:
          app: productpage
      ingress:
      - bind: 172.16.1.32
        port:
          number: 80                # binds to 172.16.1.32:80
          protocol: HTTP
          name: somename
        defaultEndpoint: 127.0.0.1:8080
        captureMode: NONE
      egress:
        # use the system detected defaults
        # sets up configuration to handle outbound traffic to services
        # in 192.168.0.0/16 subnet, based on information provided by the
        # service registry
      - captureMode: IPTABLES
        hosts:
        - "*/*"
    

    CaptureMode

    CaptureMode 描述期望如何捕获监听器的流量。仅当监听器与 IP 绑定时适用。

    名称描述
    DEFAULT环境定义的默认捕获模式
    IPTABLES使用 iptables 重定向捕获流量
    NONE没有流量捕获。在出站监听器中使用时,应用程序应与监听器的端口或 Unix Domain Socket 通信。在入站监听器中使用时,需要确保监听器的端口未被主机上的其他进程使用

    IstioEgressListener

    IstioEgressListener 指定附加到工作负载实例的 Sidecar 代理上的出站流量监听器的属性。

    字段类型描述是否必需
    portPort与监听器相关联的端口。如果使用 Unix Domain Socket,使用 0 作为端口号,并使用有效的协议。如果指定了端口,它将用作与导入的主机关联的默认目标端口。如果省略端口,则 Istio 将根据导入的主机来推断监听器端口。注意,当指定多个出口监听器时(其中一个或多个监听具有指定的端口,而其他监听器没有端口),则主机将基于具有指定端口的监听器在监听器端口上暴露
    bindstring监听器应绑定到的 IP 或 Unix Domain Socket。如果 bind 不为空,则必须指定 port。格式:x.x.x.xunix:///path/to/udsunix://@foobar(Linux 抽象命名空间)。如果省略,则 Istio 将根据导入的服务、应用此配置的工作负载实例和 captureMode 来自动配置默认值。如果 captureModeNONE,则 bind 默认为 127.0.0.1
    captureModeCaptureMode当绑定地址是 IP 时,captureMode 选项指示如何捕获(或不捕获)到监听器的流量。bind 绑定为 Unix Domain SocketcaptureMode 必须为 DEFAULTNONE
    hostsstring[]监听器以 namespace/dnsName 格式公开的一台或多台服务主机。与 dnsName 匹配的指定命名空间中的服务 将被公开。相应的服务可以是服务注册表中的服务(如 Kubernetes 或 Cloud Foundry 服务),也可以是使用 ServiceEntryVirtualService 配置指定的服务。在相同命名空间中任何关联的 DestinationRule 也将被使用。在 dnsName 应该使用 FQDN 格式指定,可以在最左边的部分中包含一个通配符(如 prod/*.example.com)。将 dnsName 设置为 * 以从指定的命名空间(如 prod/*)中选择所有服务。namespace 可以设置为 */~,分别表示任何、当前、没有命名空间。例如 */foo.example.com 从任何可用的命名空间中选择服务,而 ./foo.example.com 仅从 Sidecar 当前的命名空间中选择服务。如果将主机设置为 */*,则 Istio 将配置 Sidecar,使其能够访问暴露到 Sidecar 命名空间的网格中的每个服务。~/* 可用于完全削减 Sidecar 的配置,仅接收流量并做出响应,但没有自己的出站连接。注意:暴露到 Sidecar 的命名空间的服务和配置(如 exportTo 设置为 *)才能被引用,私有配置(如 exportTo 设置为 .)将不可用。警告:Sidecar 如果启用了出口主机列表,则 Sidecar 中的出口主机列表还必须包括 Mixer 控制平面服务,否则 Envoy 将无法到达他们。例如,启用遥测功能时添加主机 istio-system/istio-telemetry.istio-system.svc.cluster.local,启用策略功能时添加主机 istio-system/istio-policy.istio-system.svc.cluster.local,或者添加 istio-system/* 以允许 istio-system 命名空间中的所有服务

    IstioIngressListener

    IstioIngressListener 指定附加到工作负载实例的 Sidecar 代理上的入站流量监听器的属性。

    字段类型描述是否必需
    portPort与监听器相关联的端口
    bindstring监听器应绑定到的 IP。必须采用格式 x.x.x.x。入口监听器的 bind 字段中不允许使用 Unix Domain Socket。如果省略,则 Istio 将根据导入的服务、应用此配置的工作负载实例来自动配置默认值
    captureModeCaptureModecaptureMode 选项指定期望如何捕获(或不捕获)到监听器的流量
    defaultEndpointstring流量应转发到的环回 IP endpointUnix Domain Socket。此配置可用于将到达 Sidecar 上的绑定 IP:Port 的流量重定向到 localhost:port 或应用程序工作负载实例正在监听连接的 Unix Domain Socket。格式应为 127.0.0.1:PORTunix:///path/to/socket

    OutboundTrafficPolicy

    OutboundTrafficPolicy 设置 Sidecar 的默认行为,用于处理来自应用程序的出站流量。如果应用程序使用一个或多个未知的外部服务,则将策略设置为 ALLOW_ANY 可以让 Sidecars 将来自应用程序的所有未知流量路由到其请求的目的地。建议使用 ServiceEntry 配置来声明任何外部依赖项,而不要使用 ALLOW_ANY,以便可以监视到这些服务的流量。

    字段类型描述是否必需
    modeMode

    OutboundTrafficPolicy.Mode

    名称描述
    REGISTRY_ONLY出站流量将仅限于服务注册表中定义的服务以及通过 ServiceEntry 配置定义的服务
    ALLOW_ONLY如果目标端口没有服务或 ServiceEntry 配置,将允许出站流量去往未知目的地

    Sidecar

    Sidecar 描述了 Sidecar 代理的配置,该代理负责协调它所附加的工作负载实例的入站和出站通信。

    字段类型描述是否必需
    workloadSelectorWorkloadSelector用于选择在其上应用 Sidecar 配置的特定的 Pod/VM 集合的标准。如果省略,Sidecar 配置将应用于同一命名空间中的所有工作负载实例
    ingressIstioIngressListener[]ingress 指定 Sidecar 的配置,用于处理到附加工作负载实例的入站流量。如果省略,Istio 将根据从编排平台获得的工作负载信息(如 暴露的端口、服务等)自动配置 Sidecar。如果指定,当且仅当工作负载实例与服务关联时配置入站端口
    egressIstioEgressListener[]egress 指定 Sidecar 的配置,用于处理从附加的工作负载实例到网格中其他服务的出站流量
    outboundTrafficPolicyOutboundTrafficPolicy允许配置出站流量策略。如果应用程序使用一个或多个未知的外部服务,将策略设置为 ALLOW_ANY 可以让 Sidecars 将来自应用程序的所有未知流量路由到其请求的目的地

    WorkloadSelector

    WorkloadSelector 指定用于确定 GatewaySidecarEnvoyFilter 配置是否可以被应用到代理。匹配条件包括与代理关联的元数据,工作负载实例信息(如 附加到 Pod/VM 的标签)或代理在初始握手期间提供给 Istio 的任何其他信息。如果指定了多个条件,则必须匹配所有条件才能选择工作负载实例。当前,仅支持基于标签的选择机制。

    字段类型描述是否必需
    labelsmap<string, string>一个或多个标签,指定 Sidecar 在其上应用此配置的一组特定的 Pod/VM 。标签搜索的范围仅限于资源所在的配置命名空间

    更多相关内容
  • Mongo Kubernetes副本集Sidecar 该项目是一个PoC,用于使用Kubernetes设置MongoDB副本集。 它应该处理任何类型的大小调整,并能适应MongoDB和Kubernetes都可以进入的各种条件。 它是的一个分支,具有(许多)更改...
  • 为了解决这个问题,我们编写了k8s-sidecar-injector 。 这是一个小型服务,它在每个Kubernetes集群中运行,并通过webhooks监听Kubernetes API。 对于每个吊舱创建,注入程序都会获得一个(变异入场)webhook,询问...
  • [在制品] Moleculer Sidecar Moleculer Sidecar允许在Moleculer微服务项目中使用外部服务(以其他官方不支持的其他编程语言编写)。 Sidecar是一个HTTP服务器,它提供REST接口来通信其他Moleculer服务,而不是实现...
  • Graylog Sidecar是第三方日志收集器(例如NXLog和filebeat)的管理程序。 Sidecar程序能够从Graylog服务器获取并验证各种日志收集器的配置文件。 您可以将其视为日志收集器的集中式配置和流程管理系统。 master...
  • 使用Netflix Sidecar和Spring Boot进行项目 重要的是要注意,Sidecar需要在application.yml中包含NodeJs / Python /任何服务器端口,以便在Zuul中正常工作和注册服务。 建议设置主页以及健康uri。 application.yml ...
  • graylog_sidecar_node_name graylog_sidecar_package graylog_sidecar_send_status graylog_sidecar_server_url graylog_sidecar_tls_skip_verify graylog_sidecar_update_interval graylog_sidecar_...
  • docker-host:一个docker sidecar容器,用于将所有流量转发到本地docker主机或任何其他主机
  • JupyterLab的sidecar输出小部件 安装 pip install sidecar 或者 conda install sidecar 如果您使用JupyterLab <= 2: jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyter ...
  • 主要目标是作为Sidecar容器运行,以向应用程序提供来自集群的信息。 包含的Python脚本正在Kubernetes API 1.10中运行。 为什么? 当前(2018年4月),没有简单的方法可以将configmaps中的文件传递给服务并在运行时...
  • dev-sidecar-doc

    2021-03-31 10:14:40
    dev-sidecar-doc
  • sidecar:解释Sidecar容器的示例项目
  • 概念一个package使用公开了3个入口点: 默认aka combination ,并希望摇树可以救你UI ,只有UI部分sidecar ,与所有的逻辑UI + sidecar === combination 。 UI+sidecar的大小可能比其combination大小大一点。 使用...
  • python库。资源全名:drf-spectacular-sidecar-2021.10.18.tar.gz
  • IPFS集群Kubernetes副本集Sidecar 该项目是一个PoC,用于使用Kubernetes设置ipfs-cluster副本集或statefulset。 它应该处理任何类型的大小调整,并能够适应ipfs-cluster和kubernetes都可以进入的各种条件。 这个...
  • @ substrate / api-sidecar REST服务,可轻松与使用Substrate的FRAME框架构建的区块链节点进行交互。 注意 v1.0.0于2020-10-23发行。 这个主要版本引入了几个重命名的端点作为重大更改。 用户必须尽快完成到新端点的...
  • sidekick是一种高性能的sidecar负载平衡器。 通过将微小的负载均衡器作为辅助工具附加到每个客户端应用程序进程,可以消除集中式负载均衡器瓶颈和DNS故障转移管理。 sidekick通过通过就绪API和HTTP错误返回检查它们...
  • Dev-sidecar

    2022-05-24 11:06:20
    开发者的边车工具 解决问题: github打不开,github加速,git clone加速,git release下载加速,stackoverflow加速
  • 在极限如果在Pod部署期间仅指定了requests则不会发送信号,则此Sidecar仅在limits 。部署范例下面的Pod由两个不同的容器组成,第一个容器称为bloat ,其目的(顾名思义)是通过不断分配全局变量来模拟内存泄漏。 边...
  • 一个Lilu插件,可删除Sidecar使用的所有SMBIOS检查(适用于Mac和iPad)。 SidecarEnabler一个Lilu插件,可删除Sidecar使用的所有SMBIOS检查(对于Mac和iPad)。 已在iPad mini 4上进行测试。要求macOS Catalina或更...
  • eureka-sidecar-master.zip,eureka-sidecar-master,.gitignore,playbooks,vagrant.yml,roles,vagrant,vars,deploy.yml,main.yml,tasks,main.yml,templates,health-server.conf.j2,bash_local.j2,files,root_ssh_...
  • fluentd-sidecar-es

    2021-05-21 13:30:38
    它以gcr.io/google_containers/fluentd-sidecar-es的名称存在于Google容器注册表中。 如果您的容器将其日志写入stdout或stderr,则这不是必需的,因为Kubernetes集群的默认日志记录基础结构将自动收集该日志,但是...
  • k8s-dns-sidecar-amd64

    2018-09-26 23:32:40
    k8s-dns-sidecar-amd64-1.14.8镜像,镜像使用方法: docker load -i k8s-dns-sidecar-amd64-1.14.8.tar.gz
  • 运行Sidecar容器 在Kubernetes集群上成功部署应用程序 非目标 从零开始实现RESTfull API /网络服务 使用Nginx实现负载平衡 如何设定 1-克隆此存储库 git@github.com:flowck/sidecar-pattern-node-behind-nginx.git ...
  • 主要介绍了详解Spring Cloud Alibaba Sidecar多语言微服务异构,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • sidecar-proxy-example 有关Kubernetes Sidecar代理的文章示例应用程序
  • Radar SideCar软件项目的主要目标是为运行信号处理算法创建高度适应的环境。 用户使用XML配置文件配置信号处理流,这些配置文件定义了SideCar LAN中信息如何从一种算法流到另一种算法以及数据从机器到另一台机器的...
  • @ substrate / api-sidecar REST服务,可轻松与使用Substrate的FRAME框架构建的区块链节点进行交互。 笔记 v1.0.0于2020-10-23发行。 这个主要版本引入了几个重命名的端点作为重大更改。 用户必须尽快完成向新端点的...
  • Sidecar执行器 借助服务发现,在Mesos上运行Docker容器! 我们正在使用HubSpot的调度程序来运行它。 这是一个Mesos执行器,与服务发现平台集成在一起,可以将更紧密地绑定到Mesos生态系统中。 执行程序的主要优点...
  • dev-sidecar.rar

    2021-06-14 10:54:31
    dev-sidecar 上网助手,可以加快GITHUB的访问,显示不出图片的可以显示出来,很好用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,417
精华内容 7,766
关键字:

Sidecar