阿里云ACK产品评测

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 阿里云 ACK (Alibaba Cloud Container Service for Kubernetes) 是一站式容器管理服务,简化容器应用部署、管理及运维。具备友好Web界面与CLI工具;无缝集成阿里云RDS、SLB、OSS等服务;提供RBAC、网络策略及镜像安全扫描等功能确保安全;基于阿里云基础设施,支持自动伸缩与负载均衡保证高性能。通过部署WordPress案例演示具体流程,包括集群创建、kubectl配置及WordPress+MySQL部署。ACK适合各类用户,高效便捷。注意:官方镜像可能拉取失败,建议使用阿里云ECS拉取或上传至容器镜像服务。

阿里云ACK产品评测

概述

阿里云ACK(Alibaba Cloud Container Service for Kubernetes)是阿里云推出的容器服务,基于Kubernetes提供一站式的容器管理解决方案。ACK旨在帮助用户简化容器应用的部署、管理和运维,支持多种场景,包括微服务、DevOps、弹性伸缩等。本文将详细评测阿里云ACK的功能和性能,并通过一个部署WordPress的案例来展示其具体使用方法。

功能评测

1. 易用性

阿里云ACK提供了友好的Web控制台和强大的命令行工具,用户可以轻松创建和管理Kubernetes集群。控制台界面简洁明了,各项功能分布合理,用户可以通过几步简单的操作创建一个Kubernetes集群。

2. 集成性

ACK与阿里云的其他产品无缝集成,例如RDS(关系型数据库服务)、SLB(负载均衡)、OSS(对象存储服务)等。用户可以方便地将这些资源与Kubernetes集群结合使用,构建高可用、高性能的应用。

3. 安全性

ACK提供多种安全特性,包括RBAC(基于角色的访问控制)、网络策略、镜像安全扫描等,帮助用户保障容器应用的安全。此外,ACK还支持VPC(虚拟私有云),用户可以将Kubernetes集群部署在私有网络中,进一步提升安全性。

4. 性能

ACK基于阿里云强大的计算和网络资源,提供高性能的容器运行环境。通过自动伸缩和负载均衡功能,ACK可以根据应用负载动态调整资源,保证应用的高可用和稳定性。

部署WordPress的案例

接下来,我们将通过一个具体的示例,展示如何使用阿里云ACK部署WordPress。使用ALB+ACK服务以及在kubernetes集群内设置ingress规则来完成部署,这个示例将涵盖从创建Kubernetes集群到部署WordPress的全部过程。

1. 创建Kubernetes集群

首先,登录阿里云控制台,进入ACK服务页面,点击“创建集群”。按照向导填写必要的信息,例如集群名称、节点数量、节点规格等。完成后点击“创建”,等待几分钟,Kubernetes集群就会创建完成。

2. 安装kubectl

安装并配置kubectl以管理Kubernetes集群。您可以在本地机器上运行以下命令安装kubectl:

curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x ./kubectl
mv ./kubectl /usr/local/bin/kubectl

然后,下载阿里云提供的kubeconfig文件并配置kubectl:

mkdir /root/.kube
cd /root/.kube
# 将从ACK下载的配置文件上传到这里并命名为config

3. 创建ALB示例

  1. 在阿里云控制台左侧导航栏中选择“负载均衡 > 应用型负载均衡ALB”。
  2. 点击“创建实例”按钮。
  3. 配置实例基本信息:
    • 区域:选择与ACK集群相同的区域。
    • 实例规格:选择合适的规格,例如“slb.s1.small”。
    • 网络:选择ACK集群所在的VPC和交换机。
  4. 配置监听器:
    • 协议:选择HTTP或HTTPS。
    • 端口:例如80或443。
  5. 完成其他必要配置后,点击“确认创建”。

根据操作可以创建一个ALB示例

4. ALB关联后端服务器组

  1. 在ALB实例页面,选择你刚刚创建的实例。
  2. 选择“服务器组”选项卡。
  3. 点击“创建服务器组”。
  4. 配置服务器组信息:
    • 服务器组类型:选择“常规服务器组”。
    • 协议:选择HTTP或HTTPS。
    • 健康检查:配置健康检查参数。
  5. 添加后端服务器:
    • 选择ACK集群中的节点IP地址。
    • 配置权重和端口。

5. 部署WordPress

5.1 创建命名空间

为了更好地管理资源,首先创建一个命名空间

kubectl create ns wordpress

5.2 部署ALB控制器

  1. 登录容器服务管理控制台,在左侧导航栏选择集群。
  2. 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > 组件管理。
  3. 在组件管理页面,单击网络页签,在网络组件区域,在ALB Ingress Controller组件卡片的右下角单击安装。
  4. 在安装组件 ALB Ingress Controller对话框,为选择ALB 云原生网关实例来源选择新建,使用已有或暂不创建选项。

5.3 部署MySQL

由于wordpress是需要数据库来支撑的,所以我们需要来部署一个mysql,文件名为mysql-deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: wordpress-mysql
  namespace: wordpress
spec:
  selector:
    matchLabels:
      app: wordpress
      tier: mysql
  template:
    metadata:
      labels:
        app: wordpress
        tier: mysql
    spec:
      containers:
      - image: mysql:5.7
        name: mysql
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: password
        - name: MYSQL_DATABASE
          value: wordpress
        ports:
        - containerPort: 3306
          name: mysql
---
apiVersion: v1
kind: Service
metadata:
  name: wordpress-mysql
  namespace: wordpress
spec:
  ports:
  - port: 3306
  selector:
    app: wordpress
    tier: mysql

应用此yaml文件

kubectl apply -f mysql-deploy.yaml

等到数据库正常启动并运行之后我们就可以开始部署wordpress了

5.4 部署wordpress

文件名为wordpress-deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: wordpress-deploy
  name: wordpress-deploy
  namespace: wordpress
spec:
  replicas: 1
  selector:
    matchLabels:
      app: wordpress-deploy
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: wordpress-deploy
    spec:
      containers:
      - image: wordpress
        name: wordpress
        resources: {
   }
        env:
        - name: WORDPRESS_DB_HOST
          value: wordpress
        - name: WORDPRESS_DB_USER
          value: root
        - name: WORDPRESS_DB_PASSWORD
          value: password
status: {
   }
---
apiVersion: v1
kind: Service
metadata:
  name: wordpress
  namespace: wordpress
spec:
  ports:
  - port: 80
  selector:
    app: wordpress
  type: ClusterIP

然后我们应用此文件

kubectl apply -f wordpress-deploy.yaml

5.5 创建ALBconfigmap

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb
spec:
  config:
    name: alb-test
    addressType: Internet
    zoneMappings:
    - vSwitchId: 你的vSwitchID
  listeners:
    - port: 80
      protocol: HTTP

然后应用这个文件

kubectl apply -f ALBconfigmap.yaml

5.6 创建ingressClass

apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: alb
spec:
  controller: ingress.k8s.alibabacloud/alb
  parameters:
    apiGroup: alibabacloud.com
    kind: AlbConfig
    name: alb

应用此文件

kubectl apply -f ingressClass.yaml

5.7 创建ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: wordpress-ingress
  namespace: wordpress
spec:
  ingressClassName: alb
  rules:
  - host: wordpress.fushudi.cn
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: wordpress
            port:
              number: 80

然后应用这个文件

kubectl apply -f ingress.yaml

可能遇到的错误

由于文中所采用的镜像皆为docker的官方镜像,照着我的模板去应用是会报错的。pod会处于镜像拉取失败的一个状态,这个不是咱们的问题,所需要的镜像大家可以在阿里云购买一台香港的ECS然后使用这个机器去拉取镜像,然后搭建一个harbor仓库或者直接上传到阿里云的容器镜像服务内(建议上传到阿里云),最后大家再将我的yaml文件中的所有镜像改为阿里云为你提供的镜像地址即可。
ingress的部署流程均为阿里云官方文档流程
ALB文档地址
部署完成之后如需访问的话必须是基于域名去访问,没有域名的建议将wordpress的类型改为loadbalancer,然后在你本地机器修改hosts文件

结论

由ACK给ALB提供后端服务,所有的流量都会经过ALB来转发,可以达到一个负载均衡的效果,这样也避免了单机流量过大而其他机器负载太低的情况,大大减少了使用者的资源浪费和维护成本。ALB通过智能流量管理和健康检查,确保每个实例的负载在合理范围内,提高了系统的稳定性和可靠性。此外,ALB的自动化功能简化了流量管理的过程,使得应用的运维更加高效,用户能够专注于业务逻辑而非底层基础设施的管理。通过这种方式,用户可以实现更高效的资源利用和更优质的用户体验。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
5天前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
19天前
|
Kubernetes 算法 调度
阿里云 ACK FinOps成本优化最佳实践
本文源自2024云栖大会梁成昊演讲,讨论了成本优化策略的选择与实施。文章首先介绍了成本优化的基本思路,包括优化购买方式、调整资源配置等基础策略,以及使用弹性、资源混部等高级策略。接着,文章详细探讨了集群优化和应用优化的具体方法,如使用抢占式实例降低成本、通过资源画像识别并优化资源配置,以及利用智能应用弹性策略提高资源利用效率。
|
19天前
|
弹性计算 调度 数据中心
阿里云 ACK One 注册集群云上弹性:扩展业务新利器
随着企业数字化转型深入,传统IDC数据中心因物理容量限制,难以实现动态扩容,缺乏弹性能力。阿里云ACK One注册集群凭借其高度灵活性和丰富资源选择,成为解决此问题的最佳方案。通过与阿里云资源的整合,ACK One不仅实现了计算资源的按需扩展,提高了资源利用率,还通过按需付费模式降低了成本,使企业能够更高效地应对业务增长和高峰需求。
|
19天前
|
运维 Kubernetes Serverless
阿里云Argo X K8s玩转工作流引擎,实现大规模并行计算
本文基于2024云栖大会田双坤的演讲,介绍了Kubernetes作为云原生操作系统的角色及其在各类任务中的应用,重点探讨了Argo Workflows在Kubernetes上编排并行任务的能力。面对自建Argo Workflows的挑战,如稳定性、成本和安全性等问题,阿里巴巴云推出了全托管的Serverless Argo工作流,提供全托管、免运维、可观测和易集成的特点,显著提升了任务编排的效率和稳定性。适用于数据处理、科学计算、自动驾驶仿真等多个领域。
|
19天前
|
Kubernetes 容灾 调度
阿里云 ACK 高可用稳定性最佳实践
本文整理自2024云栖大会刘佳旭的演讲,主题为《ACK高可用稳定性最佳实践》。文章探讨了云原生高可用架构的重要性,通过Kubernetes的高可用案例分析,介绍了ACK在单集群高可用架构设计、产品能力和最佳实践方面的方法,包括控制面和数据面的高可用策略、工作负载高可用配置、企业版容器镜像服务高可用配置等内容,旨在帮助企业构建更加可靠和高效的应用运行环境。
|
19天前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
本文源自2024云栖大会苏雅诗的演讲,探讨了K8s集群业务为何需要灾备及其重要性。文中强调了集群与业务高可用配置对稳定性的重要性,并指出人为误操作等风险,建议实施周期性和特定情况下的灾备措施。针对容器化业务,提出了灾备的新特性与需求,包括工作负载为核心、云资源信息的备份,以及有状态应用的数据保护。介绍了ACK推出的备份中心解决方案,支持命名空间、标签、资源类型等维度的备份,并具备存储卷数据保护功能,能够满足GitOps流程企业的特定需求。此外,还详细描述了备份中心的使用流程、控制台展示、灾备难点及解决方案等内容,展示了备份中心如何有效应对K8s集群资源和存储卷数据的灾备挑战。
|
容器 Kubernetes Perl
阿里云Kubernetes平台构建和管理实践(上)
阿里云智能容器平台解决方案架构师徐征讲解阿里云Kubernetes平台构建和管理实践,徐征主要从事帮助企业在面向云原生的应用转型的过程中提供解决方案和相应的工作。
10916 0
|
容器 Perl 监控
阿里云Kubernetes平台构建和管理实践(下)
阿里云智能容器平台解决方案架构师徐征讲解阿里云Kubernetes平台构建和管理实践,徐征主要从事帮助企业在面向云原生的应用转型的过程中提供解决方案和相应的工作。
3292 0
|
2天前
|
Kubernetes Ubuntu 网络安全
ubuntu使用kubeadm搭建k8s集群
通过以上步骤,您可以在 Ubuntu 系统上使用 kubeadm 成功搭建一个 Kubernetes 集群。本文详细介绍了从环境准备、安装 Kubernetes 组件、初始化集群到管理和使用集群的完整过程,希望对您有所帮助。在实际应用中,您可以根据具体需求调整配置,进一步优化集群性能和安全性。
29 12
|
7天前
|
Kubernetes 网络协议 应用服务中间件
Kubernetes Ingress:灵活的集群外部网络访问的利器
《Kubernetes Ingress:集群外部访问的利器-打造灵活的集群网络》介绍了如何通过Ingress实现Kubernetes集群的外部访问。前提条件是已拥有Kubernetes集群并安装了kubectl工具。文章详细讲解了Ingress的基本组成(Ingress Controller和资源对象),选择合适的版本,以及具体的安装步骤,如下载配置文件、部署Nginx Ingress Controller等。此外,还提供了常见问题的解决方案,例如镜像下载失败的应对措施。最后,通过部署示例应用展示了Ingress的实际使用方法。
23 2

相关产品

  • 容器服务Kubernetes版