• IBM Cloud Kubernetes Service & IBM Cloud Private
    • 设置两个集群
    • 配置跨 IBM Cloud Kubernetes Service 和 IBM Cloud Private pod 的集群通信
    • 多集群安装 Istio

    IBM Cloud Kubernetes Service & IBM Cloud Private

    本文示例演示了如何使用 Istio 多集群功能,借助 基于 VPN 的多集群设置将 IBM Cloud Private 和 IBM Cloud Kubernetes Service 两个集群连接起来。

    设置两个集群

    • 安装一个 IBM Cloud Private 集群.注意: 确保各个集群的 Pod CIDR ranges 和 service CIDR ranges 是相互独立的、没有重叠。这可以通过配置文件 cluster/config.yaml中的 network_cidrservice_cluster_ip_range 配置。
    1. ## IPv4 CIDR 格式的网络
    2. network_cidr: 10.1.0.0/16
    3. ## Kubernetes 设置
    4. service_cluster_ip_range: 10.0.0.1/24
    • 创建一个 IBM Cloud Kubernetes Service 集群。注意:默认情况下,配置 IBM Cloud Kubernetes 服务群集时,CIDR 如下所示。
    1. pod subnet CIDR: 172.30.0.0/16.
    2. service subnet CIDR: 172.21.0.0/16.

    配置跨 IBM Cloud Kubernetes Service 和 IBM Cloud Private pod 的集群通信

    由于这两个集群处于隔离的网络环境中,我们需要在它们之间建立 VPN 连接。

    • 在 IBM Cloud Kubernetes Service 集群中设置 strongSwan:

      • 按照在 IBM Cloud Kubernetes Service 中设置 Helm。

      • 按照使用 helm 图安装 strongSwan ,来自 config.yaml 的示例配置参数:

    1. ipsec.auto: add
    2. remote.subnet: 10.0.0.0/24,10.1.0.0/16
    • 获取 vpn-strongswan 服务的外部 IP:
    1. $ kubectl get svc vpn-strongswan
    • 在 IBM Cloud Private 中设置 strongSwan:

      • 按照IBM Cloud Private 的 strongSwan 安装办法完成。

      • 按照在目录中部署 Helm 图表的方法,从管理控制台中的目录安装 strongSwan,示例配置参数:

    1. Namespace: default
    2. Operation at startup: start
    3. Local subnets: 10.0.0.0/24,10.1.0.0/16
    4. Remote gateway: Public IP of IKS vpn-strongswan service that you get earlier
    5. Remote subnets: 172.30.0.0/16,172.21.0.0/16
    6. Privileged authority for VPN pod: checked
    • 通过在 IBM Cloud Kubernetes Service 集群上运行以下命令,验证 IBM Cloud Private 是否可以连接到 IBM Cloud Kubernetes Service :
    1. $ export STRONGSWAN_POD=$(kubectl get pod -l app=strongswan,release=vpn -o jsonpath='{ .items[0].metadata.name }')
    2. $ kubectl exec $STRONGSWAN_POD -- ipsec status
    • 确认 pod 可以通过从 IBM Cloud Kubernetes Service ping IBM Cloud Private 中的 pod IP 来进行通信。
    1. $ ping 10.1.14.30
    2. PING 10.1.14.30 (10.1.14.30) 56(84) bytes of data.
    3. 64 bytes from 10.1.14.30: icmp_seq=1 ttl=59 time=51.8 ms

    多集群安装 Istio

    按照基于 VPN 的多集群安装步骤进行安装和配置IBM Cloud Private 和 IBM Cloud Kubernetes Service 上的本地 Istio 控制平面和 Istio 远程控制。

    此示例使用 IBM Cloud Private 作为 Istio 本地控制平面,使用 IBM Cloud Kubernetes Service 作为 Istio 远程控制平面。

    按照IBM Cloud Private在集群中部署 Bookinfo 示例