如何完整搭建微服务至K8s部署环境,系列教程第十四篇?

2026-05-27 15:321阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1746个文字,预计阅读时间需要7分钟。

如何完整搭建微服务至K8s部署环境,系列教程第十四篇?

1、概述项目开发完成后,我们需要部署。接下来,我们将基于gitlab、jenkins、harbor和k8s搭建部署环境。gitlab:负责代码托管,可以进行CI(持续集成)。jenkins:执行CD(持续交付),发布项目。harbor:镜像仓库。k8s:运行服务。我们只在k8s内部部署。

1、概述

项目开发好后,我们需要部署,我们接下来就基于gitlab + jenkins + harbor + k8s 搭建部署环境

  • gitlab: 放代码,可以做ci
  • jenkins: 做cd发布项目
  • harbor: 镜像仓库
  • k8s: 运行服务

我们只在k8s内部运行服务,至于中间件(mysql、redis、es等)就会部署在k8s之外,如果你是线上使用云服务可以直接使用云服务,如果自建也最好运行在k8s之外。由于我是在本地演示,这里的中间件我就使用之前开发环境的中间件了,不要纠结这个,主要演示如何部署go-zero服务到k8s中

k8s部署这里就不介绍了,如果没有k8s环境自己用rancher或者kubeadm等搭建即可,再不行就去买个按时付费的云服务k8s

所以我们需要配置如下:

服务器名称 作用 Ip deploy-server.com 部署gitlab、jenkins、harbor(预先装好docker、docker-compose) 192.168.1.180 srv-data.com 部署mysql、redis、es等等,模拟独立环境,k8s内部连接到此服务器 192.168.1.181 nginx-gateway.com 网关,独立于k8s集群外部 192.168.1.182 k8s集群 K8s 集群 192.168.1.183 2、gitlab 2.1 部署gitlab

创建文件夹

$ mkdir gitlab && cd gitlab $ vim docker-compose.yml

docker-compose.yml

version: '3' services: gitlab: image: 'twang2218/gitlab-ce-zh' container_name: 'gitlab' restart: always hostname: '192.168.1.180' #部署机器的ip,非容器ip(因为是本地不是线上所以用ip,线上的话可以用域名) environment: TZ: 'Asia/Shanghai' GITLAB_OMNIBUS_CONFIG: | external_url '192.168.1.180' #使用这个地址访问gitlab web ui(因为是本地不是线上所以用ip,线上的话可以用域名) gitlab_rails['gitlab_shell_ssh_port'] = 2222 #ssh clone代码地址 unicorn['port'] = 8888 #gitlab一个内部端口 ports: - '80:80' #web 80 端口 #- '443:443' #web 443 端口,本次未使用就不开放了 - '2222:22' #ssh 检出代码 端口 volumes: - ./etc:/etc/gitlab #Gitlab配置文件目录 - ./data:/var/opt/gitlab #Gitlab数据目录 - ./logs:/var/log/gitlab #Gitlab日志目录

执行

$ docker-compose up -d

这个执行时间可能稍微有点长,不妨你可以去泡一杯coffee休息一下~~

2.2 访问gitlab

访问 192.168.1.103(即"docker-compose中ip/域名")

首次设置新密码: 12345678

账号默认是root

2.3 创建项目

如何完整搭建微服务至K8s部署环境,系列教程第十四篇?

2.4 配置ssh公钥

点击头像位置下箭头,“设置”

将自己的公钥配置上,点击“Add key”即可 (公钥不会生成的自己搜索,这里不详细说了)

2.5 上传项目

再点击项目,回到刚才创建的项目,将go-zero-looklook项目上传到此仓库ssh://git@192.168.1.180:2222/root/go-zero-looklook.git即可,到此我们的gitlab搭建就结束了。

本次不做gitlab-runner演示,后续如果有时间再补充。

3、harbor 3.1 部署harbor

下载harbo github.com/goharbor/harbor/releases/download/v2.2.0/harbor-offline-installer-v2.2.0.tgz,下载离线的offline安装会快点

下载解压后进入harbor文件夹

$ cd harbor && cp harbor.yml.tmpl harbor.yml

我们打开harbor.yml,修改如下

hostname: 192.168.1.180 #修改为本机ip,不能使用localhost、127.0.0.1 192.168.1.180:8077

账号: admin

密码: Harbor12345 (在harbor.yml中记录的,默认是Harbor12345)

登陆成功

3.3 新建私有项目

查看push命令

$ docker push 192.168.1.180:8077/go-zero-looklook/REPOSITORY[:TAG] 3.4支持dl.k8s.io/release/$(curl -L -s dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" $ sudo chmod a+x kubectl $ docker cp kubectl jenkins:/usr/local/bin $ docker exec -it jenkins /bin/sh #进入jenkins 容器 $ kubectl version Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.3" .....

3)将k8s的配置.kube/config复制到jenkins容器

$ docker cp ~/.kube jenkins:/root/ #前提是家目录下的.kube文件夹中存在k8s的config配置 $ docker exec -it jenkins /bin/sh #进入jenkins 容器 $ kubectl ge ns default Active 43m kube-node-lease Active 43m kube-public Active 43m kube-system Active 43m local-path-storage Active 43m

上面这四步,也可以直接打进镜像中,我这里只是演示,留给你们自己处理。

4.3 访问jenkins

192.168.1.180:8989

第一次访问出现上面图不要慌,让你稍等一会,它在进行准备工作,准备好后会自动跳到登陆页面。

出现如下界面,说明准备好了,因为我们目录是挂载出来的,我们查看本机jenkins_home/secrets/initialAdminPassword密码,输入下一步即可

选择“安装推荐插件“

然后等待插件安装完成

4.4 创建用户

账号:root/root

4.5 部署完成

到此 jenkins 部署完成

4.6 添加凭据

点击左边菜单“Manage Jenkins”

点击 "Manage Credentials"

点击“全局”后面的三角标,然后再点击“添加凭据”

进入“添加凭据”页面,类型我们选择 “SSH Username with private key” 使用私钥方式,Username是gitlab一个标识,后面添加pipeline你知道这个标识是代表gitlab的凭据自行定义的,Private Key即在gitlab配置的私钥(之前我们配置在gitlab的公钥对应的私钥,在这里就是我们自己本机的私钥),我们这个凭证就是给jenkins用来去gitlab时候免密拉代码用的

确定即可。

4.7 添加harbor仓库配置

进入首页,点击左侧菜单Manage Jenkins->Configure System

下滑动到全局属性条目,添加docker私有仓库相关信息,如图为docker用户名docker用户密码docker私有仓库地址

点击 “保存”

4.8 配置git

进入Manage Jenkins->Global Tool Configureation,找到Git条目,填写jenkins所在机器git可执行文件所在path,如果没有的话,需要在jenkins插件管理中下载Git插件, 有就不需要管了(如下图)

配置pipline需要的Git Parameter插件

点击 “系统配置” -> “插件管理”

然后点击“可选插件” , 搜索中输入 “Git Parameter” , 如下图

安装好,重启后即可,到此jenkins搭建完成。

5、k8s

k8s的部署这里就不介绍了,自己用kubeadm、rancher、kind去安装吧,或者买个按量云容器服务,总之有一个k8s集群就好了。

项目地址

github.com/zeromicro/go-zero

欢迎使用 go-zerostar 支持我们!

微信交流群

关注『微服务实践』公众号并点击 交流群 获取社区群二维码。

本文共计1746个文字,预计阅读时间需要7分钟。

如何完整搭建微服务至K8s部署环境,系列教程第十四篇?

1、概述项目开发完成后,我们需要部署。接下来,我们将基于gitlab、jenkins、harbor和k8s搭建部署环境。gitlab:负责代码托管,可以进行CI(持续集成)。jenkins:执行CD(持续交付),发布项目。harbor:镜像仓库。k8s:运行服务。我们只在k8s内部部署。

1、概述

项目开发好后,我们需要部署,我们接下来就基于gitlab + jenkins + harbor + k8s 搭建部署环境

  • gitlab: 放代码,可以做ci
  • jenkins: 做cd发布项目
  • harbor: 镜像仓库
  • k8s: 运行服务

我们只在k8s内部运行服务,至于中间件(mysql、redis、es等)就会部署在k8s之外,如果你是线上使用云服务可以直接使用云服务,如果自建也最好运行在k8s之外。由于我是在本地演示,这里的中间件我就使用之前开发环境的中间件了,不要纠结这个,主要演示如何部署go-zero服务到k8s中

k8s部署这里就不介绍了,如果没有k8s环境自己用rancher或者kubeadm等搭建即可,再不行就去买个按时付费的云服务k8s

所以我们需要配置如下:

服务器名称 作用 Ip deploy-server.com 部署gitlab、jenkins、harbor(预先装好docker、docker-compose) 192.168.1.180 srv-data.com 部署mysql、redis、es等等,模拟独立环境,k8s内部连接到此服务器 192.168.1.181 nginx-gateway.com 网关,独立于k8s集群外部 192.168.1.182 k8s集群 K8s 集群 192.168.1.183 2、gitlab 2.1 部署gitlab

创建文件夹

$ mkdir gitlab && cd gitlab $ vim docker-compose.yml

docker-compose.yml

version: '3' services: gitlab: image: 'twang2218/gitlab-ce-zh' container_name: 'gitlab' restart: always hostname: '192.168.1.180' #部署机器的ip,非容器ip(因为是本地不是线上所以用ip,线上的话可以用域名) environment: TZ: 'Asia/Shanghai' GITLAB_OMNIBUS_CONFIG: | external_url '192.168.1.180' #使用这个地址访问gitlab web ui(因为是本地不是线上所以用ip,线上的话可以用域名) gitlab_rails['gitlab_shell_ssh_port'] = 2222 #ssh clone代码地址 unicorn['port'] = 8888 #gitlab一个内部端口 ports: - '80:80' #web 80 端口 #- '443:443' #web 443 端口,本次未使用就不开放了 - '2222:22' #ssh 检出代码 端口 volumes: - ./etc:/etc/gitlab #Gitlab配置文件目录 - ./data:/var/opt/gitlab #Gitlab数据目录 - ./logs:/var/log/gitlab #Gitlab日志目录

执行

$ docker-compose up -d

这个执行时间可能稍微有点长,不妨你可以去泡一杯coffee休息一下~~

2.2 访问gitlab

访问 192.168.1.103(即"docker-compose中ip/域名")

首次设置新密码: 12345678

账号默认是root

2.3 创建项目

如何完整搭建微服务至K8s部署环境,系列教程第十四篇?

2.4 配置ssh公钥

点击头像位置下箭头,“设置”

将自己的公钥配置上,点击“Add key”即可 (公钥不会生成的自己搜索,这里不详细说了)

2.5 上传项目

再点击项目,回到刚才创建的项目,将go-zero-looklook项目上传到此仓库ssh://git@192.168.1.180:2222/root/go-zero-looklook.git即可,到此我们的gitlab搭建就结束了。

本次不做gitlab-runner演示,后续如果有时间再补充。

3、harbor 3.1 部署harbor

下载harbo github.com/goharbor/harbor/releases/download/v2.2.0/harbor-offline-installer-v2.2.0.tgz,下载离线的offline安装会快点

下载解压后进入harbor文件夹

$ cd harbor && cp harbor.yml.tmpl harbor.yml

我们打开harbor.yml,修改如下

hostname: 192.168.1.180 #修改为本机ip,不能使用localhost、127.0.0.1 192.168.1.180:8077

账号: admin

密码: Harbor12345 (在harbor.yml中记录的,默认是Harbor12345)

登陆成功

3.3 新建私有项目

查看push命令

$ docker push 192.168.1.180:8077/go-zero-looklook/REPOSITORY[:TAG] 3.4支持dl.k8s.io/release/$(curl -L -s dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" $ sudo chmod a+x kubectl $ docker cp kubectl jenkins:/usr/local/bin $ docker exec -it jenkins /bin/sh #进入jenkins 容器 $ kubectl version Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.3" .....

3)将k8s的配置.kube/config复制到jenkins容器

$ docker cp ~/.kube jenkins:/root/ #前提是家目录下的.kube文件夹中存在k8s的config配置 $ docker exec -it jenkins /bin/sh #进入jenkins 容器 $ kubectl ge ns default Active 43m kube-node-lease Active 43m kube-public Active 43m kube-system Active 43m local-path-storage Active 43m

上面这四步,也可以直接打进镜像中,我这里只是演示,留给你们自己处理。

4.3 访问jenkins

192.168.1.180:8989

第一次访问出现上面图不要慌,让你稍等一会,它在进行准备工作,准备好后会自动跳到登陆页面。

出现如下界面,说明准备好了,因为我们目录是挂载出来的,我们查看本机jenkins_home/secrets/initialAdminPassword密码,输入下一步即可

选择“安装推荐插件“

然后等待插件安装完成

4.4 创建用户

账号:root/root

4.5 部署完成

到此 jenkins 部署完成

4.6 添加凭据

点击左边菜单“Manage Jenkins”

点击 "Manage Credentials"

点击“全局”后面的三角标,然后再点击“添加凭据”

进入“添加凭据”页面,类型我们选择 “SSH Username with private key” 使用私钥方式,Username是gitlab一个标识,后面添加pipeline你知道这个标识是代表gitlab的凭据自行定义的,Private Key即在gitlab配置的私钥(之前我们配置在gitlab的公钥对应的私钥,在这里就是我们自己本机的私钥),我们这个凭证就是给jenkins用来去gitlab时候免密拉代码用的

确定即可。

4.7 添加harbor仓库配置

进入首页,点击左侧菜单Manage Jenkins->Configure System

下滑动到全局属性条目,添加docker私有仓库相关信息,如图为docker用户名docker用户密码docker私有仓库地址

点击 “保存”

4.8 配置git

进入Manage Jenkins->Global Tool Configureation,找到Git条目,填写jenkins所在机器git可执行文件所在path,如果没有的话,需要在jenkins插件管理中下载Git插件, 有就不需要管了(如下图)

配置pipline需要的Git Parameter插件

点击 “系统配置” -> “插件管理”

然后点击“可选插件” , 搜索中输入 “Git Parameter” , 如下图

安装好,重启后即可,到此jenkins搭建完成。

5、k8s

k8s的部署这里就不介绍了,自己用kubeadm、rancher、kind去安装吧,或者买个按量云容器服务,总之有一个k8s集群就好了。

项目地址

github.com/zeromicro/go-zero

欢迎使用 go-zerostar 支持我们!

微信交流群

关注『微服务实践』公众号并点击 交流群 获取社区群二维码。