第16关 弹性容器
革新云计算:如何利用弹性容器与托管K8S实现极速服务POD扩缩容
天下武功,唯快不破!
下面是全球主流云平台弹性容器相关使用文档:
aliyun ACK使用ECI : https://help.aliyun.com/document_detail/119207.html
aws Fargate : https://docs.aws.amazon.com/eks/latest/userguide/fargate.html
华为云 cce+cci: https://support.huaweicloud.com/bestpractice-cce/cce_bestpractice_0133.html
google GKE+Cloud Run: Cloud Run on a GKE cluster https://www.cloudskillsboost.google/focuses/5147?locale=zh&parent=catalog
火山云 VKE容器服务 + VCI弹性容器实例 https://www.volcengine.com/docs/6460/76908
这里以阿里云的ACK托管K8S平台+阿里云的ECI来聊一聊,其他云平台名称虽然不一样,但底层原理和使用基本差不多。阿里云弹性容器实例(Elastic Container Instance)是敏捷安全的Serverless容器运行服务。您无需管理底层服务器,也无需关心运行过程中的容量规划,只需要提供打包好的Docker镜像,即可运行容器,并仅为容器实际运行消耗的资源付费。
优势
弹性容器实例的核心优势主要体现在以下几方面:
采用Severless架构,基础设施托管。您无需关心底层服务器,只需要提交容器镜像;无需预先创建集群和维护集群,无需关注运行过程中的容量规划,可以专注业务领域创新。
灵活部署 以阿里云全球计算基础设施作为资源池,提供海量、高并发、多种资源类型(CPU、高主频、GPU等)的容器计算资源,您可以根据需要灵活部署。
低成本 按实例启动到结束时间段内消耗的资源计费,时长精确到秒。配合Kubernetes或者您自建的调度系统,ECI可根据业务流量自动弹性伸缩,减少空置费用。 vCPU单价(vCPU):0.000049 元/秒 内存单价(GiB): 0.00000613 元/秒 指定vCPU和内存创建一台2 vCPU、4 GiB内存的ECI实例,则每小时该ECI实例的费用为: vCPU(vCPU):0.00004936002=0.3528元 内存(GiB):0.0000061336004=0.088272元
高弹性 支持快速秒级启动实例,您无需提前预估集群容量和业务流量,可以按需扩容,轻松应对百倍的业务突发流量。
兼容性 兼容Kubernetes,Kubernetes集群上的Pod能直接调度至ECI。支持无缝集成至阿里云容器服务托管版Kubernetes(ACK)和Serverless版Kubernetes(ASK),同时支持通过virtual kubelet对接您自建的Kubernetes集群。
集成 自动集成阿里云的其它服务,可快速实现网络访问、日志采集、数据持久化存储、服务监控等功能。例如:日志服务SLS、文件存储NAS、监控服务ARMS等。
使用步骤
https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/scale-out-elastic-container-instances#87a5d35f24dqp
ack集群–组件管理–安装 ACK Virtual Node
完成后,查看虚拟节点
kubectl get node|grep virtual然后编辑配置
# kubectl -n kube-system edit configmap eci-profile
apiVersion: v1
data:
enableClusterIp: "true"
enableHybridMode: "false"
enableLogController: "false"
enablePVCController: "false"
enablePrivateZone: "false"
enableReuseSSLKey: "false"
featureGates: MetricsVpcNet=true,WaitForFirstConsumer=false
resourceGroupId: ""
securityGroupId: sg-gggggggggggggggggggg
selectors: ""
slsMachineGroup: ""
vSwitchIds: vsw-yyyyyyyyyyyyyyyyyy,vsw-xxxxxxxxxxxxxxxxxxx
vpcId: vpc-aaaaaaaaaaaaaaaaaaaaaaaavpc专有网络 交换机(vSwitch)
补充知识 https://blog.csdn.net/DynmicResource/article/details/120470322测试ECI
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx
name: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
alibabacloud.com/eci: "true" # 在pod这部分添加这个label即代表使用ECI
app: nginx
spec:
containers:
- image: nginx
imagePullPolicy: Always
name: nginx
ports:
- containerPort: 80
name: http80
protocol: TCP
resources: {} # 自己填写配置资源ECI混合服务架构

**问:**云上的K8S不都是可以自动扩缩容节点吗,为什么还要使用这个容器弹性实例?
**答:**简单来说弹性容器相当于一个无限资源的虚拟节点,可以节省扩容NODE的时间,加速服务POD的启动,这个时间很关键。
补充
https://blog.csdn.net/DynmicResource/article/details/120470322
Region
云资源所在的区域,比如华北3,华东1等等。下图的华北3(张家口)就是

VPC
VPC:Virtual Private Cloud,简称VPC。基于阿里云创建的自定义私有网络, 不同的专有网络之间二层逻辑隔离,可以在自己创建的专有网络内创建和管理云产品实例,比如ECS、负载均衡、RDS等。在创建前,您需要结合具体业务,规划 VPC和交换机的数量及网段等。
每个专有网络都由至少一个私网网段、一个路由器和至少一个交换机组成。

详见:https://www.aliyun.com/product/vpc
vRouter
路由器(vRouter)是专有网络的枢纽。作为专有网络中重要的功能组件,它可以连接专有网络内的各个交换机,同时也是连接专有网络和其他网络的网关设备。每个专有网络创建成功后,系统会自动创建一个路由器。每个路由器关联一张路由表。
详见:https://help.aliyun.com/document_detail/106224.htm
vSwitch
云资源不可以直接部署在专有网络(VPC)中,必须属于专有网络内的一个交换机(vSwitch)内

交换机(vSwitch)是组成专有网络的基础网络设备,用来连接不同的云资源。创建专有网络后,您可以通过创建交换机为专有网络划分一个或多个子网。同一专有网络内的不同交换机之间内网互通。您可以将应用部署在不同可用区的交换机内,提高应用的可用性。
详见:https://help.aliyun.com/document_detail/65387.htm