在使用阿里云Kubernetes容器服务Istio 1.0的过程中,如果遇到以下类似问题,请参考具体的问题分析。 我们会持续更新遇到的问题及其解决方法。
集群内无法访问集群之外的 URL问题
缺省情况下,Istio 服务网格内的 Pod,由于其 iptables 将所有外发流量都透明的转发给了 Sidecar,所以这些集群内的服务无法访问集群之外的 URL,而只能处理集群内部的目标。
可以通过定义 ServiceEntry 来调用外部服务;或者简单的对 Istio 进行配置,要求其直接放行对特定 IP 范围的访问。
具体可参见官方介绍。
Tiller版本问题
如果在安装中遇到类似如下提示: Can't install release with errors: rpc error: code = Unknown desc = Chart incompatible with Tiller v2.7.0, 那么说明当前集群的Tiller版本较低,需要升级。
具体升级的方法如下:
helm init --tiller-image registry.cn-hangzhou.aliyuncs.com/acs/tiller:v2.9.1 --upgrade
AI 代码解读
CRD版本问题
如果在第一次创建Istio 1.0时,出现如下提示信息,根据[Istio官方文档], 需要升级 Custom Resource Definitions。
升级方法:
在下载的Istio安装包中,可以找到新版本CRD的YAML文件,通过kubectl apply
命令可以完成更新。
kubectl apply -f install/kubernetes/helm/istio/templates/crds.yaml -n istio-system
AI 代码解读
按照官方文档,如果使用的Helm版本为 2.10.0之前的,会遇到上述CRD问题。
此外,如果启用了certmanager
,还需要通过如下命令按照相关CRD:
kubectl apply -f install/kubernetes/helm/istio/charts/certmanager/templates/crds.yaml
AI 代码解读
子账户权限问题
如果在安装中遇到类似如下提示,那么说明当前使用的账号权限不具备安装Istio,请切换到主账号或者赋予账号足够权限,如自定义角色中cluster-admin
(具体参见https://help.aliyun.com/document_detail/87656.html)。
Error from server (Forbidden): error when retrieving current configuration of:
Resource: "apiextensions.k8s.io/v1beta1, Resource=customresourcedefinitions", GroupVersionKind: "apiextensions.k8s.io/v1beta1, Kind=CustomResourceDefinition"
AI 代码解读
卸载Istio
如果使用的Helm版本早于2.9.0,则需要手工清除Job资源:
kubectl -n istio-system delete job --all
AI 代码解读
清除CRD的话,则需要执行如下命令:
kubectl delete -f install/kubernetes/helm/istio/templates/crds.yaml -n istio-system
AI 代码解读
总结
在使用阿里云Kubernetes容器服务Istio 1.0的过程中,如果遇到以下类似问题,请参考具体的问题分析。 我们会持续更新遇到的问题及其解决方法。敬请关注。