本文为您介绍容器网络中的常见问题。
手动升级了Flannel镜像版本后,如何解决无法兼容1.16以上版本集群的问题?
问题现象:
集群版本升级到1.16之后,集群节点变成NotReady。
问题原因:
手动升级了Flannel版本,而并没有升级Flannel的配置,导致Kubelet无法识别。
解决方法:
如何解决Pod启动后存在时延的问题?
问题现象:
Pod启动后网络需要延迟一会才能通信。
问题原因:
配置Network Policy会有一定的时延,关闭Network Policy后,就能解决该问题。
解决方法:
如何让Pod访问自己暴露的服务?
问题现象:
Pod无法访问自己暴露的服务,存在时好时坏或者调度到自己就出问题的现象。
问题原因:
Flannel目前默认不允许回环访问。
解决方法:
- 使用Headless Service暴露服务和访问,具体操作,请参见Headless Services。
说明 推荐使用此方法。
- 重建集群使用Terway的网络插件,具体操作,请参见使用Terway网络插件。
- 修改Flannel的配置,然后重建Flannel和Pod。
说明 不推荐此方法,可能会被后续升级覆盖。
- 在cni-config.json中增加
hairpinMode: true
。kubectl edit cm kube-flannel-cfg -n kube-system
返回结果中增加以下字段。
hairpinMode: true
- 重启Flannel。
kubectl delete pod -n kube-system -l app=flannel
- 删除并重新创建Pod。
- 在cni-config.json中增加
如何选择Kubernetes集群Terway和Flannel网络插件?
下面为您详细介绍在ACK创建集群时使用的两种网络插件:Terway和Flannel。
在创建Kubernetes集群时,阿里云容器服务提供以下两种网络插件:
- Flannel:使用的是简单稳定的社区的Flannel CNI插件,配合阿里云的VPC的高速网络,能给集群高性能和稳定的容器网络体验,但功能偏简单,支持的特性少,例如:不支持基于Kubernetes标准的Network Policy。
- Terway:是阿里云容器服务自研的网络插件,功能上完全兼容Flannel,支持将阿里云的弹性网卡分配给容器,支持基于Kubernetes标准的NetworkPolicy来定义容器间的访问策略,支持对单个容器做带宽的限流。对于不需要使用Network Policy的用户,可以选择Flannel,其他情况建议选择Terway。了解更多Terway网络插件的相关内容,请参见使用Terway网络插件。
如何规划集群网络?
在创建ACK集群时,需要指定专有网络VPC、虚拟交换机、 Pod网络CIDR(地址段)和Service CIDR(地址段)。建议您提前规划ECS地址、Kubernetes Pod地址和Service地址。详情请参见Kubernetes集群网络规划。
ACK是否支持hostPort的端口映射?
- 不支持hostPort。
- 容器服务ACK的Pod地址是可以直接被VPC中其他资源访问的,不需要额外的端口映射。
- 如果需要把服务暴露到外部,可以使用NodePort或者LoadBalancer类型的Service。
在文档使用中是否遇到以下问题
更多建议
匿名提交