本文介绍阿里云容器服务ACK在开通集群时常见问题的分析和处理流程。
创建集群时网络插件怎么选择?
有两种模式可供选择:Flannel模式与Terway。
Flannel模式
容器服务ACK中有四个网段:VPC网段、交换机网段、Pod地址段、Service地址段。其中前两个网段,都是IaaS层网络。交换机网段必须是当前VPC网段的子集,而Pod地址段和Service地址段是K8s中特有的,Pod地址段用于选取ECS中的某块资源,不能与VPC网段和Service地址段重叠。Service地址段用于给每个服务分配自己的IP地址,用于集群内部通信,不能与VPC网段和Pod地址段重叠。
各网段的互斥关系如下:
Pod地址段不能和VPC网段重叠。
Pod地址段不能和Service地址段重叠。
Service地址只在Kubernetes集群内使用,不能在集群外使用。
Service地址段不能和VPC网段重叠。
Service地址段不能和Pod地址段重叠。
如果您拥有多个K8s集群, 需要注意不同集群之间的网络规划问题。更多信息,请参见Kubernetes集群网络规划。
Terway模式
Terway模式除了有上述四个网段配置之外,还需增加虚拟交换机配置。
使用Terway网络插件,您需要在一个VPC网络下创建两个在同一个可用区内的虚拟交换机。
虚拟交换机网段,对应节点所使用网段。
Pod虚拟交换机网段,对应Pod所使用的网段。
快速搭建网络可以使用下表所示的网络规划配置:
专有网络网段
Node虚拟交换机
Pod虚拟交换机
Service CIDR
192.168.0.0/16
192.168.0.0/19
192.168.32.0/19
172.21.0.0/20
更多信息,请参见使用Terway网络插件和网络概述。
创建一个K8s集群,为什么会多出来两个SLB? Ingress组件需要安装吗?
多出来两个SLB是K8s中组件需要的,组件分别是API Server和Ingress。
API Server
API Server是一个K8s集群的核心组件,是整个系统的数据总线和数据中心,位于Master节点上,负责与Master节点内其他组件以及所有Worker节点的交互。
API Server起到路由的作用。因此ACK为其创建了一个最小规格的私网型SLB(您可将其配置成大规格SLB实例规格),其为按量付费。该SLB必须由ACK创建,且不可更改和删除,否则整个K8s集群都会瘫痪。
说明如果需要从公网访问集群,在创建集群的时候选中使用EIP暴露API Server,为API Server绑定一个公网EIP,ACK对应的带宽是按量计费的。
如果集群创建时候没选中使用EIP暴露API Server,需后续手动添加。
具体操作,请参见控制集群API Server的公网访问能力。
Ingress
当您创建集群时,推荐您安装该组件。ACK通过软件层Nginx Ingress Controller和资源层负载均衡SLB实现该组件功能。 创建集群时,可以选择默认选中Ingress的规格、公私网类型,默认选中创建的Ingress为按量计费。更多信息,请参见Ingress概述。
说明您可以手动更改Ingress的SLB配置。具体操作,请参见Service的负载均衡配置注意事项。
如果您在创建集群时没有选择安装该组件,则需要到容器服务控制台的管理组件。
中一键安装。具体操作,请参见
K8s的容器需要访问RDS实例,RDS白名单该如何设置?
在创建集群的集群配置向导页,高级选项里面有RDS白名单参数设置项。
如果K8s集群已经创建完成,则需要在RDS 管理控制台手动配置白名单。
如果您选择的网络是Flannel模式,配置的是ECS的IP。具体操作,请参见设置白名单。
如果您选择的网络是Terway模式,配置的是Pod的IP。具体操作,请参见为Pod动态配置阿里云产品白名单。
怎么把已经购买的ECS添加到K8s集群中?
可以选择将已有的ECS实例(云服务器)加入到集群中,也可以让容器服务创建新的ECS实例(云服务器)。如果是添加已有的ECS实例,请确保添加的云服务器必须与集群在同一地域同一VPC下。具体操作,请参见添加已有节点。
在添加现有节点至集群的时候,需要手动添加集群的安全组。建议使用创建集群时创建的默认安全组,不要使用现有安全组。如果涉及到企业安全组和普通安全组的替换,请参见替换ECS实例的安全组。
我想使用ACK运行我的一个应用,但是不知道如何把它做成Docker镜像,是否有相应指导?
ACR为您提供了便捷的容器镜像构建功能。关于制作应用Docker镜像的详细步骤,请参见在Dockerfile中使用构建打包镜像并运行。同时,您也可以使用开源工具Derrick降低您应用容器化的复杂度。
我不会制作镜像,是否可以使用ACK?
除了支持部署您在容器镜像服务中托管的镜像,ACK也支持选择官方镜像,即您在容器镜像服务上收藏或者搜索到的公开镜像。具体操作,请参见使用镜像快速创建无状态Deployment应用。
创建集群前如何规划网络?
创建ACK集群时,VPC CIDR、Service CIDR和Pod CIDR不允许重叠。通常情况下,您可以选择自动创建的专有网络,使用默认的网络地址。但在某些复杂的场景下,需要您自主规划ECS地址、Kubernetes Pod地址和Service地址。具体操作,请参见Kubernetes集群网络规划。
创建集群时如何选择Terway和Flannel网络插件?
Flannel使用的是简单稳定的社区CNI插件,但功能偏简单,不支持基于Kubernetes标准的Network Policy。Terway是阿里云容器服务ACK自研的网络插件,支持Network Policy和容器的带宽限流,网络性能相对Flannel也更高。具体操作,请参见使用Terway网络插件。
集群创建失败,该如何处理?
您可以查看集群日志,然后根据相应的解决方法解决问题。具体操作,请参见集群管理FAQ。
如何拉取私有镜像?
推荐使用aliyun-acr-credential-helper组件。该组件会默认安装在所有ACK集群中,支持在ACK集群中免密拉取容器镜像服务ACR中的私有镜像。具体操作,请参见使用免密组件拉取容器镜像。