如何在谷歌云单区域单集群中部署Istio多复制控制平面
在GKE单区域集群部署Istio复制型多控制平面
1. 前置准备
- 确保已创建单区域GKE集群(建议K8s版本1.24+,兼容Istio 1.18+)
- 安装最新版
istioctl工具 - 切换kubectl上下文到目标GKE集群:
kubectl config use-context <你的GKE集群上下文名称>
2. 定义复制型控制平面配置
创建istio-multi-replica.yaml配置文件,明确指定istiod副本数及高可用参数:
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator metadata: namespace: istio-system spec: profile: default components: pilot: k8s: replicaCount: 3 # 单区域场景建议配置3个副本,保证高可用 resources: requests: cpu: 500m memory: 1Gi hpaSpec: minReplicas: 3 maxReplicas: 5 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 80 - type: Resource resource: name: memory target: type: Utilization averageUtilization: 80 values: pilot: autoscaleEnabled: true # 启用HPA实现自动扩缩容
3. 部署Istio复制型控制平面
执行部署命令:
istioctl install -f istio-multi-replica.yaml --skip-confirmation
4. 验证部署状态
检查istiod副本运行状态:
kubectl get pods -n istio-system -l app=istiod
预期输出应显示3个处于Running状态的pod:
NAME READY STATUS RESTARTS AGE istiod-7f9d6d7c84-2xqzk 1/1 Running 0 5m istiod-7f9d6d7c84-5l8vn 1/1 Running 0 5m istiod-7f9d6d7c84-9k7xm 1/1 Running 0 5m
检查HPA配置生效情况:
kubectl get hpa -n istio-system istiod
5. 额外高可用优化
- 配置PodDisruptionBudget,避免集群维护时同时终止过多istiod副本:
应用配置:apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: istiod-pdb namespace: istio-system spec: minAvailable: 2 selector: matchLabels: app: istiodkubectl apply -f istiod-pdb.yaml - 确保GKE节点分布在单区域的不同可用区,进一步降低单点故障风险
内容的提问来源于stack exchange,提问作者Rakesh Kumar
相关产品推荐
相关产品推荐

