前言
随着业务,及数据爆发增长,很多公司都开始吧应用向云原生迁移,靠自己来运维这一套庞大的k8s应用,实在是有点费劲。所以先来体验一下阿里云这套现成的产品。
一,前期准备
-
开通阿里云容器服务kubernetes版ack
-
开通容器镜像服务
-
准备测试代码
废话不多说,先来开通阿里云容器服务kubernetes版ack。 初学者建议选择按量付费,初步估算了一下半天大概花了50大洋,新用户有1个月的免费体验。
二,创建集群
创建集群注意事项
1.集群的地域和容器镜像的地域一定要在一起,不然后面拉去镜像会有问题。
2.选节点池根据自己的需求来,我选的是最便宜的4h4g通用算力型。
下面贴出我的配置图,仅供参考。
1.集群配置
2.节点池配置
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集群
刚进来集群连接是空的,需要新建连接,这里选择容器服务,点击刚刚创建的集群即可。
(4).配置相关的变量
这里需要填充yaml文件里面的变量,注意image需要配置成你们自己仓库地址
(5).保存运行流水线
ok,这两流水线就配置好了,点击保存并运行。显示部署成功,已经成功了一大半了,继续!
五,检查部署状态
查看集群部署状态,发现是异常的,不要慌。这是应为k8s集群部署的时候拉取镜像失败了,按照诊断提示去安装一个免密组件即可
点进去查看事件,顺便诊断一下。其实看日志大概就能知道了,是镜像拉不下来。这里是因为镜像仓库需要授权才行,我们可以按照诊断后的提示去安装一个免密组件,
六,安装免密组件
具体安装方法可以参考官方文档,超详细,注意个人版只需要实现步骤一即可。
1.安装aliyun-acr-credential-helper组件,tokenMode选择auto。
2.配置项acr-configuration设置相关配置,这里我贴出我的配置,注意acr-registry-info这一项没有#号了。
七,配置路由
安装好插件后再去配置一个路由即可访问我们代码里面的接口咯。这里的域名是自己测试用的,本地配一个host映射即可。
八,端点host映射
配置好后,拿端点ip在本地host文件做一层映射就可以。
九,接口测试
这样就可以访问了,大功告成!