Istio 中的多集群部署与管理

 

  

本文节选自ServiceMesher 社区出品的开源电子书《Istio Handbook——Istio 服务网格进阶实战》,作者钟华,来自腾讯云。

Istio 在 1.1 后提供了两类多集群的连通的部署模式:

1. 多控制面2. 单控制面,也称为 “共享控制面” 模式

多控制面模式

多控制面模式,各网格之间服务实例无法自动共享,互相访问不透明。应用场景有限,实现相对简单。

单控制面模式

单控制面模式,根据各集群是否属于同一个网络,还可以细分为「单网络单控制面」和「多网络单控制面」:

 单网络单控制面模式,支持多 Kubernetes 集群融合为一个服务网格,但是该种模式对网络有严格的要求:需要所有集群处于同一个扁平网络,Pod IP 互通且不重叠,使用 VPN 连通多集群网络是常见的一个选项。不过这些网络需求在实际环境可能难以满足,也限制了该模式的应用场景。• 多网络单控制面模式,同样实现了多 Kubernetes 集群融合为一个服务网格,且在网络上没有上述限制,每个多 Kubernetes 集群是一个独立的网络,甚至可以分布于不同地域。但其实现也最复杂,且该模式要求开启服务间 mTLS 通信,通信效率上也有一定影响。

多控制面

多控制面部署模式中,每个 Kubernetes 集群中都包含一套独立的 istio 控制面,istio 并不会主动打通各集群间的服务访问,用户需要主动注册集群间互访的服务条目,这些包括设置 DNS 和 gateway,注册 ServiceEntry 等。下面我们以集群 1 访问集群 2 中的 httpbin.bar 服务为例,解析多控制面服务网格连通的核心流程。

配置各集群 CA 证书

多控制面模式下的集群间互访,要求使用双向 TLS 通信。因为每个集群中都有独立的 CA,如果这些 CA 使用自签名证书将无法互相验证,因此各集群需要共享 root CA,利用 root CA 再为每个子集群签发 intermediate CA 证书。

我们以 istio 源码中提供的示例 CA 证书为例,在各集群中创建一个名为 cacerts 的 secret,istiod 中的 CA 会自动读取并使用这些证书。

                kubectl create namespace istio-system
kubectl create secret generic cacerts -n istio-system \
    --from-file=samples/certs/ca-cert.pem \
    --from-file=samples/certs/ca-key.pem \
    --from-file=samples/certs/root-cert.pem \
    --from-file=samples/certs/cert-chain.pem
            

Istio 源码中提供了一套示例的 CA 证书,位于 samples/certs/ 目录下,需要注意这套证书已广泛播,仅供线下测试使用,一定不要在生产环境使用!以避免不必要的安全风险。

安装控制面

使用 IstioOperator 在各集群中分别安装控制面:

                $ istioctl install \
    -f manifests/examples/multicluster/values-istio-multicluster-gateways.yaml
            

Operator manifest 配置概要如下:

                apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  addonComponents:
    istiocoredns:
      enabled: true


  components:
    egressGateways:
      - name: istio-egressgateway
        enabled: true


  values:
    global:
      podDN
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值