阿里devops实验课1-搭建K8s环境并部署三个微服务
这两天参加了阿里云的 云效 体验动手实验课,分别加了钉钉群,大概一周的时间利用阿里老师准备的实验代码从打包到服务成功提供进行了N个步骤,最终要求是利用微服务示例在阿里“云效”上建立Pipline进行服务发布
本次总结一下在本地 k8s 1.18环境中部署示例微服务的步骤;
1、本地环境描述:
由于要使用K8S环境,所以按照一博主的博客快速使用kubeadm搭建了一套本地环境,搭建蛮顺利的,按照步骤走基本很流畅
https://blog.csdn.net/weixin_38320674/article/details/105781372
2、利用搭建好的本地环境开始了实验动手课程
a、熟悉项目代码,项目代码见:https://code.aliyun.com/groups/alpd-demo
b、参照项目代码里面的README,在本地构建出alpd-bot-auth、alpd-bot-query、alpd-bot-ssh三个应用的容器镜像
c、在本地k8s集群中将三个应用部署起来
以上是从阿里云官方实验说明页面截的图,将微服务的三个部分及功能描述都已经说清楚了,目的要将三个服务部署到自己本地的k8s环境当中,另外需要注意的是auth模块中git pull下来的代码protos是空的,这个简单粗暴的方式就是从其他两个模块直接复制进去即可
我是将代码直接放到Master节点的vm中直接运行 docker build -t Dockerfile 进行编译的,还是蛮顺利的三个服务都顺利打成指定的镜像,由于本地没有搭建镜像仓库所以直接使用的阿里云的ACR服务。
将三个镜像上传到ACR中,并部署到本地K8s中
步骤如下:
1、分别进入alpd-bot-auth和alpd-bot-ssh和alpd-bot-query文件夹进行Docker build :
docker build -f Dockerfile .
2、将build后的pull到ACR中:
3、更改不同服务中的 deployment-local.yml 文件,从ACR中获取指定镜像并运行部署到本地K8S中,三个服务我主要更改的是pull镜像的方式:
由于pull镜像需要仓库密码,所以需要提前在k8s中创建 Secrets ,这里需要注意Secrets有namespace区分,之后环境中都创建在default命名空间下
kubectl create secret docker-registry registry-key --docker-server=registry.cn-hangzhou.aliyuncs.com --docker-username={用户名} --docker-password={ACR设置的密码} --docker-email={邮件地址}
ACR可以设置镜像pull的用户名和密码,直接拷贝到命令行即可,创建完成后可以在本地环境中查看
至此,配置完成后可以直接运行命令创建服务:
kubectl apply -f deployment-local.yml
alpd-bot-ssh服务依赖alpd-bot-auth服务,所以最后创建alpd-bot-ssh服务即可,创建完成后可以查看三个服务及相关service的运行状态(不同服务之间通过Service ClusterIP进行访问):
至此我们将三个微服务都已部署到本地环境中,接下来可以测试一下可用性,在Master节点可以ssh alpd-bot-ssh-svc进行服务访问(用户名和密码是admin和pass):
以上功能说明三个微服务已经可以在本地跑通,接下来需要使用阿里kt-connct开源工具将 k8s 服务暴露,配置本地访问