实操手册丨使用谷歌云实现CICD(三):使用Cloud Build 将应用程序自动部署到 Kubernetes

执行参考文档:

https://cloud.google.com/build/docs/deploying-builds/deploy-gke#automating_deployments

作者另外一台GCE(34.142.232.36)模拟研发人员的本地环境

也在上面执行GKE的创建,构建任务查询步骤


01

使用google cloud console 界面创建一个zone GKE集群


参考“Create a zonal cluster”章节:

https://cloud.google.com/kubernetes-engine/docs/how-to/creating-a-zonal-cluster#console




02

在研发人员本地环境运行gcloud 初始化命令


gcloud init --console-only

然后按照提示进行操作








后续正常设置gcloud region,建议选择和gke集群相同位置的location



03

在研发人员本地环境安装kubectl和required plugins


执行下图中红框中的2个章节内容

需要在GCE虚机(模拟研发人员本地环境)上运行kubectl连接GKE

就需要安装kubectl和需要的插件

https://cloud.google.com/kubernetes-engine/docs/how-to/cluster-access-for-kubectl#install_plugin


安装完成后,运行kubectl get namespaces

正常的显示如下



设置IAM权限

https://cloud.google.com/build/docs/deploying-builds/deploy-gke#required_iam_permissions




04

使用cloud build从谷歌代码仓库gcr.io自动化部署应用到GKE


打开cloud build trigger:

https://cloud.google.com/build/docs/deploying-builds/deploy-gke#automating_deployments



05

在inline这编辑yaml构建文件



我用的测试命令如下:

作用是当gitlab的webhook发送url请求给cloud build trigger后,

这个cloud build trigger就会在GKE集群luke-cicd-cluster-1上部署一个应用,

这个应用通过gs://luke-lab1-bucket/resource3.yml文件定义

一个build file里面可以有很多个steps,

每个setps里面可以执行多条命令


具体的cloud build语法,build配置,build步骤(steps),支持的代码库等信息参考官方链接

https://cloud.google.com/build/docs/overview



一次完整的build构建过程如下




--filename参数后面的值,是自定义的一个放在GCS里面的yml脚本



gs://luke-lab1-bucket/resource3.yml文件内容如下:

下面的Yaml文件定义了一个k8s对象:deployment,

使用default命名空间部署这个duployment对象,

指定了3个副本,

使用了谷歌的docker库gcr.io做演示,

可以根据客户具体情况改成其他的库gitlab,github等,

里面定义了一个docker容器cdn-prefetch-sha256-1,

deployment,pod,container,HorizontalPodAutoscaler它们的名称和tag都可以定义,

具体的参数可以在k8s的官网查到



06

resource3.yml




07

验证


理想的结果:

当gitlab上有Push代码动作的时候,

Cloud Build 将使用自定义的build file把应用程序部署到 GKE。


先检查GKE集群的workload里面没有任何工作负载



在gitlab模拟push动作



Cloud build的History里面能看到,

build file定义的内容执行完毕,

以及详细的build log,执行细节,

构建组件等信息



Build log显示已经在GKE里面部署了相应的应用





在开发人员本地环境的运行一些查询k8s对象的命令




当前容器运行的进程查询




———

WebEye是中国大陆地区首家获得 Google Cloud MSP 资质的合作伙伴。WebEye致力于用创新的技术向中国企业提供数字化效率创新服务,实现数字化赋能。我们不断帮助客户打造新的运营与协作方式,打造新的竞争优势,构建资源高效链接,共创价值生长空间。

WebEye整合全球资源,打造全球数字化营销体系,为企业提供营销增长服务营销增长引擎以及企业上云三大板块业务,涵盖数字营销、数字创意、游戏发行、流量变现、程序化广告、数据洞察、云计算等一站式全链条增长产品矩阵,是中国互联网出海领军企业。

返回全部