使用阿里云k8s构建服务
一. 上传镜像
- 在阿里云控制台找到
“容器镜像服务”
,开启镜像服务,这里选择个人实例
即可(个人版限额,企业版付费)
- 选择好之后点击
个人版
,进入
- 选择
“镜像仓库”
,创建镜像仓库,然后输入参数创建一个仓库,如下:
- 点击下一步,开始选择代码源:
- 这里我配置的是gitlab私服地址,之后你的镜像就会从对应的gitlab项目拉取。
- 点击刚才创建的仓库,进入仓库选择左侧的构建,开始构建你的第一个项目镜像
到现在,镜像已经创建完毕!
二. k8s运行
- 在阿里云控制台选择
“[容器服务 Kubernetes 版]”
,点击集群,创建一个集群,然后在集群下创建节点池(加节点就是加机器)
- 节点池会直接格式化为k8s节点,由k8s自己管理,无需人工介入。可以将已有的ecs直接添加给节点池,会格式化整个ecs,自动归属为一个node。
- 下一步:在工作负责下选择“无状态”,点击右上角“使用镜像创建”,开始创建服务。
三. 服务配置导入
-
在k8s集群内有一个“配置管理”的选项,添加你的配置文件到这里
-
这里创建好配置文件后,在创建无状态服务的第二步“容器配置”下方的“数据卷”一栏进行选择
如果是java项目,需要在生命周期这里添加一个指定配置文件的路径,这个也可以放在Dockerfile中:
ENTRYPOINT ["java","-Dspring.config.location=/opt/application.yml","-jar","/opt/xxx.jar"]
或:
在生命周期这里添加参数:
["–spring.config.location=/opt/website/website-backend.yaml"]
四. 服务路由
- 在服务创建得第三步,高级配置这里选择“路由创建”,
k8s服务会默认生成一个slb(负载均衡),这里配置好服务域名后,在负载均衡控制台找到对应的外网ip,将它配置到DNS解析即可。
这里还可以配置TLS(https安全访问),只需要将你的域名安全证书下载后上传到K8s的保密字典即可。
五. 节点亲和性和污点管理
你的服务可以固定在一些节点上运行,这就需要用到K8S的节点标签管理。
- 选择右上角的“标签于污点管理”
在这里你可以为节点添加标签,或者污点。
标签的作用就是在选择部署的时候直接选择亲和某些标签的节点进行部署,而污点则是给这台节点添加污点后,服务默认不会部署到该节点,可以通过配置服务的污点容忍性进行反向利用。标签与污点管理适用于不同的场景,我们这里先选择标签进行操作:
- 给节点添加好标签后,在部署服务时,在“高级配置”处选择节点亲和性进行添加即可。