安装多主节点
按照本指南在 cluster1
和 cluster2
上安装 Istio 控制平面,使每个集群成为 主集群。 两个集群都位于 network1
网络中,这意味着两个集群中的 Pod 之间存在直接连接。
在继续之前,请确保您已完成 在您开始之前 下的步骤。
在此配置中,每个控制平面都会观察两个集群中的 API 服务器以获取端点。
服务工作负载在集群边界之间直接通信(Pod 到 Pod)。
将 cluster1
配置为主节点
为cluster1
创建 Istio 配置。
$ cat <<EOF > cluster1.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
values:
global:
meshID: mesh1
multiCluster:
clusterName: cluster1
network: network1
EOF
将配置应用于cluster1
。
$ istioctl install --context="${CTX_CLUSTER1}" -f cluster1.yaml
将 cluster2
配置为主节点
为cluster2
创建 Istio 配置。
$ cat <<EOF > cluster2.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
values:
global:
meshID: mesh1
multiCluster:
clusterName: cluster2
network: network1
EOF
将配置应用于cluster2
。
$ istioctl install --context="${CTX_CLUSTER2}" -f cluster2.yaml
启用端点发现
在cluster2
中安装一个远程密钥,用于访问cluster1
的 API 服务器。
$ istioctl create-remote-secret \
--context="${CTX_CLUSTER1}" \
--name=cluster1 | \
kubectl apply -f - --context="${CTX_CLUSTER2}"
在cluster1
中安装一个远程密钥,用于访问cluster2
的 API 服务器。
$ istioctl create-remote-secret \
--context="${CTX_CLUSTER2}" \
--name=cluster2 | \
kubectl apply -f - --context="${CTX_CLUSTER1}"
恭喜!您已成功在多个主集群中安装 Istio 网格!
下一步
您现在可以验证安装。
清理
卸载
cluster1
中的 Istio。$ istioctl uninstall --context="${CTX_CLUSTER1}" -y --purge $ kubectl delete ns istio-system --context="${CTX_CLUSTER1}"
卸载
cluster2
中的 Istio。$ istioctl uninstall --context="${CTX_CLUSTER2}" -y --purge $ kubectl delete ns istio-system --context="${CTX_CLUSTER2}"