微服务从代码到k8s部署应有尽有系列(十四、部署环境搭建)

网友投稿 428 2022-09-11

微服务从代码到k8s部署应有尽有系列(十四、部署环境搭建)

1、概述

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

gitlab: 放代码,可以做cijenkins: 做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 ' #使用这个地址访问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

访问 ​​12345678

账号默认是root

2.3 创建项目

2.4 配置ssh公钥

2.5 上传项目

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

3、harbor

3.1 部署harbor

下载harbo ​​github.com/goharbor/ha…​​

下载解压后进入harbor文件夹

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

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

hostname: 192.168.1.180 #修改为本机ip,不能使用localhost、127.0.0.1 port: 8077 #改一下 #暂时将 port: 443# certificate: /your/certificate/path# private_key: /your/private/key/pathdata_volume: /root/harbor/data #修改一下数据目录位置log: level: info local: rotate_count: 50 rotate_size: 200M location: /root/harbor/log #修改一下日志目录位置

直接运行 “sudo ./install.sh” 稍作等待。

3.2 访问harbor

浏览器输入 ​​admin

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

登陆成功

3.3 新建私有项目

查看push命令

$ docker push 192.168.1.180:8077/go-zero-looklook/REPOSITORY[:TAG]

3.4支持, 由于我们这里没有, 所以我们要在deploy-server.com服务器上执行如下

$ echo '{"insecure-registries":["192.168.1.180:8077"] }' >> /etc/docker/daemon.json

到此我们harbor搭建完成。

4、jenkins

4.1 部署jenkins

创建文件夹

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

docker-compose.yml

version: '3'services: jenkins: image: 'jenkins/jenkins:lts' container_name: jenkins restart: always environment: - TZ=Asia/Shanghai user: root ports: - '8989:8080' - '50000:50000' volumes: - './jenkins_home:/var/jenkins_home' - '/var/run/docker.sock:/var/run/docker.sock' - '/usr/bin/docker:/usr/bin/docker' - '/root/port.sh:/root/port.sh'

【注】/root/port.sh内容如下

#!/bin/shcase $1 in"identity-api") echo 1001;;"identity-rpc") echo 1101;;"usercenter-api") echo 1002;;"usercenter-rpc") echo 1102;;"message-mq") echo 1207;;"mqueue-rpc") echo 1106;;"order-api") echo 1004;;"order-mq") echo 1204;;"order-rpc") echo 1104;;"payment-api") echo 1005;;"payment-rpc") echo 1105;;"travel-api") echo 1003;;"travel-rpc") echo 1103esac

执行

$ docker-compose up -d

这个时间也不慢,可以再去喝一杯coffee

4.2 挂载工具

1)将goctl 复制到 jenkins容器中

$ docker cp $GOPATH/bin/goctl jenkins:/usr/local/bin$ docker exec -it jenkins /bin/sh #进入jenkins 容器$ goctl -v #验证成功goctl version 1.3.0-20220201 linux/amd64

2)将kubectl文件复制到jenkins容器中

$ curl -LO "-L -s sudo chmod a+x kubectl$ docker cp kubectl jenkins:/usr/local/bin$ docker exec -it jenkins /bin/sh #进入jenkins 容器$ kubectl versionClient 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 nsdefault Active 43mkube-node-lease Active 43mkube-public Active 43mkube-system Active 43mlocal-path-storage Active 43m

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

4.3 访问jenkins

​​创建用户

账号:root/root

4.5 部署完成

到此 jenkins 部署完成

4.6 添加凭据

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

确定即可。

4.7 添加harbor仓库配置

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

4.8 配置git

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

配置pipline需要的Git Parameter插件

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

5、k8s

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

项目地址

​​github.com/zeromicro/g…​​

欢迎使用 ​​go-zero​​ 并 star 支持我们!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微服务从代码到k8s部署应有尽有大结局(k8s部署)
下一篇:二次号要与“前任”一刀两断,二次号怎么解决
相关文章

 发表评论

暂时没有评论,来抢沙发吧~