容器化管理ACK
容器是实现快速扩缩容和快速无脑部署启动服务的基础,现在容器化管理也是变为一种应用功能的基础组件。
容器化管理的难点在于各种基础镜像的制作和服务以及安全的管理,阿里云的ACK就可以实现这一种功能。利用负载均衡器可以实现,不同机器的负载管理,以及拉起服务的快速均衡。
ACK架构主要是面对Kubernetes的管理,可以对接多个Kubernetes集群,并进行统一调度管理,实现多云部署、弹性伸缩等等的功能。
主要技术架构是通过多个ECS组成集群实现统一调度,部署方式也是通过创建ecs以及vpc等基础资源,然后将其加入ACK集群。
配置管理是通过ini配置管理,需要对内容加深研究,具有一定的门槛,例如:
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
name: ecs-ack-test-service-a
labels:
app: ecs-ack-test-service-a
spec:
replicas: 2
selector:
matchLabels:
app: ecs-ack-test-service-a
template:
metadata:
labels:
app: ecs-ack-test-service-a
spec:
initContainers:
- name: download-jar
image: dragonwell-registry.cn-hangzhou.cr.aliyuncs.com/dragonwell/dragonwell:8-alinux
command:
- "/bin/sh"
- "-c"
- "curl -o /app/app.jar https://help-static-aliyun-doc.aliyuncs.com/tech-solution/MicroServiceOnAckDemo-1.0.1.jar && echo 'Download jar OK!'"
volumeMounts:
- name: app-jar
mountPath: /app
containers:
- args:
- '-DbHost=http://ecs-ack-test-service-b:8080'
- '-jar'
- '/app/app.jar'
command:
- java
name: ecs-ack-test-service-a
image: dragonwell-registry.cn-hangzhou.cr.aliyuncs.com/dragonwell/dragonwell:8-alinux
ports:
- containerPort: 8080
resources:
limits:
cpu: '2'
ephemeral-storage: 40Gi
memory: 2Gi
requests:
cpu: '1'
ephemeral-storage: 20Gi
memory: 1Gi
volumeMounts:
- name: app-jar
mountPath: /app
volumes:
- name: app-jar
emptyDir: {}
整体的创建流程非常简单,使用功能也非常简单,就是需要一些基础的资源,然后通过ACK加配置文件整合即可,使用非常方便。