阿里云Kubernetes容器服务Istio实践之常见问题分析

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 在使用阿里云Kubernetes容器服务Istio 1.0的过程中,如果遇到以下类似问题,请参考具体的问题分析。 我们会持续更新遇到的问题及其解决方法。

在使用阿里云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

CRD版本问题

如果在第一次创建Istio 1.0时,出现如下提示信息,根据Istio官方文档, 需要升级 Custom Resource Definitions。

图片.png

升级方法:
在下载的Istio安装包中,可以找到新版本CRD的YAML文件,通过kubectl apply命令可以完成更新。

可以通过此处下载CRD文件。

kubectl apply -f install/kubernetes/helm/istio/templates/crds.yaml -n istio-system

按照官方文档,如果使用的Helm版本为 2.10.0之前的,会遇到上述CRD问题。

此外,如果启用了certmanager,还需要通过如下命令按照相关CRD:

kubectl apply -f install/kubernetes/helm/istio/charts/certmanager/templates/crds.yaml

子账户权限问题

如果在安装中遇到类似如下提示,那么说明当前使用的账号权限不具备安装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"

卸载Istio

如果使用的Helm版本早于2.9.0,则需要手工清除Job资源:

kubectl -n istio-system delete job --all

清除CRD的话,则需要执行如下命令:

kubectl delete -f install/kubernetes/helm/istio/templates/crds.yaml -n istio-system

总结

在使用阿里云Kubernetes容器服务Istio 1.0的过程中,如果遇到以下类似问题,请参考具体的问题分析。 我们会持续更新遇到的问题及其解决方法。敬请关注。

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1天前
|
Kubernetes Shell 容器
在k8S中,当一个Pod有多个容器时,如何连接到指定容器?
在k8S中,当一个Pod有多个容器时,如何连接到指定容器?
|
1天前
|
Kubernetes 容器 Perl
在K8S中,如何查看Pod中某个容器日志?
在K8S中,如何查看Pod中某个容器日志?
|
1天前
|
Kubernetes 负载均衡 网络协议
在K8S中,Pod能否实现对容器健康检查,如果服务有异常,该如何处理?
在K8S中,Pod能否实现对容器健康检查,如果服务有异常,该如何处理?
|
1天前
|
Kubernetes 容器 Perl
在k8S中,如何向Pod中指定容器传递环境变量?有哪些方式?
在k8S中,如何向Pod中指定容器传递环境变量?有哪些方式?
|
1天前
|
Kubernetes 算法 容器
在k8S中,Pod的容器重启策略有哪些?
在k8S中,Pod的容器重启策略有哪些?
|
1天前
|
Kubernetes 容器 Perl
在k8S中,如何实现Pod中容器的文件和宿主机之间相互拷贝?
在k8S中,如何实现Pod中容器的文件和宿主机之间相互拷贝?
|
1天前
|
Kubernetes 容器 Perl
在k8S中,如何查看Pod中上一个挂掉的容器日志?
在k8S中,如何查看Pod中上一个挂掉的容器日志?
|
1天前
|
存储 Kubernetes Java
在k8S中,容器内日志是怎么采集的?
在k8S中,容器内日志是怎么采集的?
|
2天前
|
消息中间件 Kubernetes 数据库
在k8S中,初始化容器(init container)概念原理是什么?
在k8S中,初始化容器(init container)概念原理是什么?
|
2天前
|
Kubernetes API 容器
在K8s中,容器内如何获取pod和namespace名?
在K8s中,容器内如何获取pod和namespace名?

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版