阿里云ACK完全生产环境规划和搭建

在生产环境来创建阿里ACK托管k8s集群的过程:

完全用于生产,不是搭建来做测试用的。

授公司委托,给的RAM用户,所以阿里云RAM第一次登录后,强制修改密码

image-20211026125509729

然后授权资源管理, 正式开始建立过程

一、准备条件

  • 两台及以上ecs服务器

  • 阿里云账户余额100元以上(阿里云要求)

  • 阿里云oss一个(oss和ecs在一个区域最好)

首先阿里云创建k8s集群要求至少有两台ecs服务器,可以创建集群的时候再购买,不要预先购买。

二、下面开始创建:

阿里云最左上角的菜单(新版本首页)->产品与服务->容器服务kubernetes版本

第一次创建会让开启ram授权,正常点击授权就可以

点击创建集群

image-20211026130410655

点击后如下

image-20211026130535880

各个选项的详细说明:

第一部分:

image-20211026130641164

集群版本: 最上面可以选择ACK托管版,和其他4个版本,着重说一下专有版和托管版的区别

专有版本:master和worker都需要自己创建,如果需要高可用,那么master需要至少三个,也就是说,如果你不想把master和worker放在同一台服务器上,就要多使用三台服务器。

ACK托管版:master由阿里云给创建,自己只需要购买worker服务器。

集群名称: k8s-hbb

地域: 请选择自己ecs和rds等资源所在区域,这里是华东2(上海)

Kubernetes版本:阿里云已经做好充分的测试了,所以选择默认的即可。这里是 1.18.8-aliyun.1

容器运行时: Docker 19.03.5

image-20211026130846435

第二部分:

image-20211026130933798

专有网络: 专有网络选择和ecs,rds同一个专有网络,这里是vpc-uf6pcr7nvp3dqmx86yyk0,网段是172.19.0.0/16

虚拟交换机: 同一个专有网络下面的交换机是可以互通的,这里新建一个虚拟交换机,网段是172.19.240.0/20

image-20211026131011787

网络插件: 选Flannel,除去阿里云自己的区别描述,还有一点 如果使用flannel插件,则worker端对外,访问外网(比如短信接口等)使用的是worder所在ecs自己的eip或者如果使用的是snat模式,就是snat绑定的eip。如果使用的terway插件则走的就是snat的eip。注意,创建集群成功后,会为集群创建一个对外服务的ingress的slb,worker内部的容器直接对外访问,使用的不是这个slb的ip。slb只是进来的通道。

pod网络 CIDR:为统一起见,10.240.0.0/20

service CIDR:为统一起见,192.168.240.0/20

注意以上 建立好了三个网段,三个网段中均有240字段,便于记忆

ECS(2台):172.19.240.0/20

POD网段:10.240.0.0/20

Service网段:192.168.240.0/20

节点IP数量:256,指单个节点可运行 Pod 数量的上限。 一定要拉到最大量256 ,弄到16的话,一个节点本身要跑10多个system的pod,就无法跑应用pod了。

image-20211026131504133

第三部分:

image-20211026131541717

配置SNAT:必选配置SNAT,对外主动访问的时候IP需要一致。解释:如果ecs没有访问外网能力,则必须使用snat,snat就是把vpc绑定一个eip,然后给内部的ecs使用nat方式主动外出访问用的,比如主动反问第三方的接口等。如果ecs自己已经绑定了eip或者自带ip带宽,可以不选择。

APISERVER访问:必选公网EIP暴露,这个绑定以后ip不收费,可以使用流量包,管理master用的。如果要使用『云效』必选。

默认不选中使用EIP暴露API Server。 API Server提供了各类资源对象(Pod,Service等)的增删改查及watch等HTTP Rest接口。 - 如果选择开放,会创建一个EIP,并挂载到内网SLB上。此时,Master节点的6443端口(对应API Server)暴露出来,用户可以在外网通过kubeconfig连接并操作集群。 - 如果选择不开放,则不会创建EIP,您只能在VPC内部用kubeconfig连接并操作集群。

RDS白名单:这个注意选择,目前阿里云显示出来的只有普通的mysql-rds,redis的和polardb的都不显示

安全组:选择企业类型就可以,后期可以修改规则。

第四部分

image-20211026131725238

Kube-proxy模式:选IPVS,比IPTABLES性能高

集群本地域名: hbb.local,.local结尾的统统是本地域名

下一步,增加worker

image-20211026131813452

必须选新增实例,不要选择现有实例

新增实例:就是新购买ecs,要注意自己选择vpc和交换机

选择已有实例:可以选择现有的服务器,注意:现有服务器会被更换硬盘,硬盘内容会被清空。

image-20211026132442986

企业级实例规格族

实例规格族名称格式为ecs.<规格族>,实例规格名称为ecs.<规格族>.large。

  • ecs:云服务器ECS的产品代号。
  • <规格族>:由小写字母加数字组成。
    • 小写字母为某个单词的缩写,并标志着规格族的性能领域。部分小写字母的含义如下所示。
      • c:一般表示计算型(computational)
      • g:一般表示通用型(general)
      • r:一般表示内存型(ram)
      • ne:一般表示网络增强型(network enhanced)
    • 数字一般区别同类型规格族间的发布时间。更大的数字代表新一代规格族,拥有更高的性价比,价格低性能好。
  • large:n越大,vCPU核数越多。

例如,ecs.g6.2xlarge表示通用型g6规格族中的一个实例规格,拥有8个vCPU核。相比于g5规格族,g6为新一代通用型实例规格族。

image-20211026132533500

按上面选ecs.c6.large,费用0.95/时,似乎比ecs.n1.medium 1.34/时好。

节点数量:最少是2个,无法减到0,没办法。

image-20211026132602652

系统盘:选ESSD,速度快,40G即可。不要开云盘备份,会要求设置snapshot策略,要收钱。

image-20211026132630860

操作系统:选CentOS 7.9,不要选aliyun的自定义版本。更加标准化,便于升级。

image-20211026132753224

这里选择操作系统的时候,只有两个系统可以选择,一个是centos7,一个是阿里云linux。为什么操作系统不能选很多种?因为阿里云要使用Cloud-init自动安装docker的各种工具包进作为worker角色的ecs,所以他对系统的要求更高,否则很可能出现各种各样的问题。这里才会有这种限制。

密钥对选则新建一个k8s-ssh。

下一步组件配置

image-20211026132819407

安装ingress组件:需要对外服务,这个必选,会给分配一个slb负载均衡

如果想K8S集群的服务直接提供服务给用户访问,可以选择『公网』,它会创建一个SLB并用EIP暴露公网,后端是k8s-ingress入口。

负载类型: 公网,对外服务就要写公网。

存储插件: 必选CSI,对之后创建数据卷语法没影响

监控插件: 基础版是免费的,可以放心使用

日志服务: 日志服务可以加,尤其是以后如果想采集内部doker里面的日志,这里还是推荐加一下最好,他会自动创建标记采集,后面使用这个标记可以方便的自动添加日志节点。

slb费用: 0.66/小时,带宽费用0.8/g

下一步确认配置

image-20211026133109715

核对一下是否和自己选择的一样

核对无误后点击创建集群。注意:创建集群的时候,会检测一些权限,如果权限未开通,可以令开页面进行开通授权,比如ess弹性伸缩,开通后点小按钮刷新状态, 状态都ok以后,点击创建集群。

image-20211026133137645

等待十分钟左右集群创建成功。到此创建集群已经完成。

image-20211026133214205

然后到控制台可以查看,这样ACK集群就创建好了。

image-20211026133241235

后记:

毁掉ACK的时候,切忌去删除arms-prom的helm,再删除ack集群,否则会清不干净东西。

下次重建的时候会装不上prometheus

image-20211026133313031


Centos Auto Install Cdrom自动安装cdrom的制作
Bitwarden(vaultwarden)如何在非Docker环境下安装使用
comments powered by Disqus