执行参考文档:
https://cloud.google.com/build/docs/deploying-builds/deploy-gke#automating_deployments
作者另外一台GCE(34.142.232.36)模拟研发人员的本地环境
也在上面执行GKE的创建,构建任务查询步骤
参考“Create a zonal cluster”章节:
https://cloud.google.com/kubernetes-engine/docs/how-to/creating-a-zonal-cluster#console
gcloud init --console-only
然后按照提示进行操作
后续正常设置gcloud region,建议选择和gke集群相同位置的location
执行下图中红框中的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
打开cloud build trigger:
https://cloud.google.com/build/docs/deploying-builds/deploy-gke#automating_deployments
我用的测试命令如下:
作用是当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的官网查到
理想的结果:
当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整合全球资源,打造全球数字化营销体系,为企业提供营销增长服务、营销增长引擎以及企业上云三大板块业务,涵盖数字营销、数字创意、游戏发行、流量变现、程序化广告、数据洞察、云计算等一站式全链条增长产品矩阵,是中国互联网出海领军企业。