阿里云容器服务ack从零到一部署springboot应用

前言

随着业务,及数据爆发增长,很多公司都开始吧应用向云原生迁移,靠自己来运维这一套庞大的k8s应用,实在是有点费劲。所以先来体验一下阿里云这套现成的产品。

一,前期准备

  1. 开通阿里云容器服务kubernetes版ack
  2. 开通容器镜像服务
  3. 准备测试代码

废话不多说,先来开通阿里云容器服务kubernetes版ack。 初学者建议选择按量付费,初步估算了一下半天大概花了50大洋,新用户有1个月的免费体验。

二,创建集群

创建集群注意事项

1.集群的地域和容器镜像的地域一定要在一起,不然后面拉去镜像会有问题。
2.选节点池根据自己的需求来,我选的是最便宜的4h4g通用算力型。

下面贴出我的配置图,仅供参考。

1.集群配置

在这里插入图片描述

2.节点池配置

这里我选的ecs是最低配的,大家可以根据自己的需求来选择

3.组件配置在这里插入图片描述

确认好配置开始创建集群,这里大概需要等十分钟左右

在这里插入图片描述

三,开通容器镜像服务

这里因为我之前就开通了,很简单就不过多介绍了。只需要创建对应的命名空间和镜像仓库即可。jdk也可以直接用开源的仓库的。

在这里插入图片描述

四,设置部署流水线

这里我是直接用的阿里云效这款devops,天然支持了阿里云的k8s部署。上面我贴了代码的demo,因为云效仓库只针对企业用户开源,所以需要大家动动手指把代码贴到云效代码仓库里面去。

项目里面有两个重要的文件,大家根据自己的实际情况可以加以调整
1.dockerfile

FROM registry.cn-hangzhou.aliyuncs.com/vck/vck:11 #jdk,大家仓库没有可以直接用开源的
LABEL maintainer=vck 
ARG active=dev
ENV active ${active}
ADD ./target/demo3-0.0.1-SNAPSHOT.jar demo.jar
ENTRYPOINT ["java", "-jar", "demo.jar","--spring.profiles.active=${active}"]

2.yaml文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo-${envactive}
  namespace: ${namespace}
spec:
  replicas: ${replicas}
  minReadySeconds: 80
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  selector:
    matchLabels:
      app: demo-${envactive}
  template:
    metadata:
      labels:
        app: demo-${envactive}
    spec:
      containers:
        - name: demo-${envactive}
          imagePullPolicy: Always
          image: ${IMAGE}
---
kind: Service
apiVersion: v1
metadata:
  namespace: ${namespace}
  name: demo-${envactive}
spec:
  selector:
    app: demo-${envactive}
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 8080
1.创建流水线

代码准备好后就可以开始创建流水线了,按照图示一步一步操作下去即可。

在这里插入图片描述

2.选择流水线模板

选择这个模板就行,可以吧把代码扫描和maven单元测试给去掉,因为这里是做测试就没表保留这两个哈,避免浪费时间。

在这里插入图片描述

3.流水线流程配置
(1).构建docker镜像并推送至镜像仓库

这里分两步,第一是java构建,需要选择对应的jdk版本,我用的是11,大家按照自己代码里面的版本来选择就行。

在这里插入图片描述

(2).镜像构建并推送至阿里云镜像仓库个人版

这里选择之前开通的镜像仓库即可,注意选择对应的仓库。我这里直接写死用1.0,如果修改过代码,记得修改一下,不然是不会生效的

(3).连接到Kubernetes集群

刚进来集群连接是空的,需要新建连接,这里选择容器服务,点击刚刚创建的集群即可。

选择容器服务,ack集群里面可以选到刚刚开通的集群

(4).配置相关的变量

这里需要填充yaml文件里面的变量,注意image需要配置成你们自己仓库地址

在这里插入图片描述

(5).保存运行流水线

ok,这两流水线就配置好了,点击保存并运行。显示部署成功,已经成功了一大半了,继续!

在这里插入图片描述

五,检查部署状态

查看集群部署状态,发现是异常的,不要慌。这是应为k8s集群部署的时候拉取镜像失败了,按照诊断提示去安装一个免密组件即可

在这里插入图片描述
点进去查看事件,顺便诊断一下。其实看日志大概就能知道了,是镜像拉不下来。这里是因为镜像仓库需要授权才行,我们可以按照诊断后的提示去安装一个免密组件,
在这里插入图片描述

六,安装免密组件

具体安装方法可以参考官方文档,超详细,注意个人版只需要实现步骤一即可。

1.安装aliyun-acr-credential-helper组件,tokenMode选择auto。

在这里插入图片描述

在这里插入图片描述

2.配置项acr-configuration设置相关配置,这里我贴出我的配置,注意acr-registry-info这一项没有#号了。

在这里插入图片描述

七,配置路由

安装好插件后再去配置一个路由即可访问我们代码里面的接口咯。这里的域名是自己测试用的,本地配一个host映射即可。

注意添加的ingress的命名空间和刚才部署的服务是同一个哈,不要弄错了

八,端点host映射

配置好后,拿端点ip在本地host文件做一层映射就可以。

在这里插入图片描述
在这里插入图片描述

九,接口测试

这样就可以访问了,大功告成!
在这里插入图片描述

  • 29
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较具体的技术问题,我会尽力回答。在阿里云云效中部署一个Spring Boot项目基于Docker发布ACK,你可以采用以下几种方式: 1. 使用阿里云云效的“容器构建”功能:将Spring Boot项目打包成Docker镜像,然后通过容器构建功能将镜像推送到阿里云容器镜像服务(ACR)中,最后使用云效的“应用部署”功能将镜像部署ACK中。这种方式的优点是操作简单,可以在云效中完成所有操作,缺点是需要手动打包Docker镜像。 2. 使用阿里云云效的“容器构建”+“Kubernetes部署”功能:与第一种方式类似,将Spring Boot项目打包成Docker镜像并推送到ACR中,然后使用云效的“Kubernetes部署”功能将镜像部署ACK中。这种方式的优点是可以自动化部署,缺点是需要对Kubernetes有一定的了解。 3. 使用阿里云CLI工具:使用阿里云CLI工具将Spring Boot项目打包成Docker镜像并推送到ACR中,然后使用Kubectl命令将镜像部署ACK中。这种方式的优点是可以在本地完成所有操作,缺点是需要手动输入命令。 4. 使用Jenkins+Docker插件:使用Jenkins自动化构建Spring Boot项目,将项目打包成Docker镜像并推送到ACR中,然后使用Docker插件将镜像部署ACK中。这种方式的优点是可以自动化部署,缺点是需要额外安装Jenkins和Docker插件。 以上是几种常见的方式,具体选择哪种方式需要根据实际情况进行权衡。需要注意的是,无论使用哪种方式,都需要提前准备好Dockerfile文件和Kubernetes部署文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值