Verrazzano不是一键安装型平台,需Kubernetes集群就绪(节点Ready、CNI就位、无swap、内核参数合规)、operator真实启动(日志含“Reconciling Verrazzano”)、镜像可拉取、ingress网关类型与环境匹配,且dev profile的自签名证书需适配浏览器校验。

直接上结论:Verrazzano 不是「一键安装」型平台,它依赖 Kubernetes 底层稳定性、网络插件兼容性、存储就绪度三者齐备才能正常启动;跳过 kubectl -n verrazzano-install rollout status deployment/verrazzano-platform-operator 等待环节,90% 会卡在 CrashLoopBackOff 或 Pending 状态。
确认 Kubernetes 集群已就绪且满足 Verrazzano 最低要求
Verrazzano 对集群状态敏感,不是“能跑 kubectl get nodes 就算行”。常见失败根源是节点未真正 Ready 或 CNI 插件缺失。
- 必须等所有节点状态为
Ready(非NotReady或Unknown),且kubectl get nodes -o wide中INTERNAL-IP可路由 —— 某些私有环境 NAT 后节点 IP 不可达,会导致 operator 无法拉取镜像或调度组件 - 必须安装并验证 CNI 插件:Verrazzano 默认依赖 Calico 或 Flannel。若用
canal.yaml(Calico + Flannel 混合),需确认calico-node和canalDaemonSet 均 Running,且calicoctl get nodes能列出全部节点 - 检查
kubeadm init时是否禁用了Swap:Verrazzano 组件 Pod 会因swap on直接拒绝启动,错误日志含"running with swap on is not supported" - 内核参数必须包含
net.bridge.bridge-nf-call-iptables = 1,否则 Istio sidecar 注入失败,istio-system下 Pod 大量Init:CrashLoopBackOff
安装 platform operator 时必须验证 pod 真实就绪而非仅 “Running”
verrazzano-platform-operator Pod 显示 1/1 Running 并不等于可用 —— 它可能卡在拉取镜像、连接 API Server 或初始化 CRD 阶段。
- 执行
kubectl -n verrazzano-install logs -l app=verrazzano-platform-operator --tail=50,重点看最后几行是否有"Starting manager"和"Reconciling Verrazzano",没出现说明 operator 未真正启动 - 若日志卡在
"Waiting for CRD installation",大概率是 RBAC 权限不足或集群中已有同名 CRD 冲突(尤其重装时),需手动清理:kubectl get crd | grep verrazzano→kubectl delete crd <name> - operator 镜像默认从公网拉取,离线环境必须提前
docker pull并docker tag到私有 registry,再修改operator.yaml中的image:字段,否则 Pod 一直ImagePullBackOff
dev profile 安装后无法访问 ingress gateway 的典型原因
部署完 Verrazzano CR 后,istio-ingressgateway Service 仍无 EXTERNAL-IP,或 nip.io 域名解析失败,问题往往不在 Verrazzano 本身。
- 检查云环境 LB 类型:OCI/OKE 上需显式添加 annotation,如
service.beta.kubernetes.io/oci-load-balancer-shape: flexible,否则 LoadBalancer 类型 Service 会永久 Pending - 裸金属或本地环境必须用 NodePort 或 HostNetwork 模式替代 LoadBalancer —— 直接改
istio-ingressgatewayService 的type: NodePort,并开放对应端口(如 31380/31390) -
nip.io依赖 DNS 解析,若本地/etc/resolv.conf指向不可靠 DNS(如某些企业内网 DNS 屏蔽外部域名),curl -H "Host: app.dev.192.168.1.100.nip.io" http://192.168.1.100:31380才是真实验证方式 - 确认
verrazzano-system和istio-system命名空间下所有 Pod 的READY状态为1/1或2/2,任意 Pod 出现0/1都会导致网关链路中断
最易被忽略的一点:Verrazzano 的 dev profile 默认启用自签名证书,但部分浏览器(如 Chrome 120+)对 nip.io 域名的证书校验更严格,即使加 --resolve 也可能报 SSL_ERROR_BAD_CERT_DOMAIN —— 此时必须用 curl -k 或临时导入 CA 证书,而不是反复重装平台。


















