非常重要!!!
- 构建优化:pipline中生成dockerfile的时候,我们是使用k8s方式部署不需要etcd,但是这种方式部署需要指定账号(有去k8s的endpoints中get的权限,使用默认default就好了,每次创建一个新的命名空间k8s会自动帮我们创建好一个default),但是使用goctl 生成的 k8s yml没有添加指定账号选项,这个已经反馈了,可能后续版本会加上,这里我们也用模版做了,同样模版是在项目目录下https://github.com/Mikaelemmmm/go-zero-looklook/tree/main/deploy/goctl,pipline中构建指定这个模版即可
- 要替换为你的具体凭据值,即【添加凭据】模块中的一串字符串,我们之前配置的是所以这里就填写,如果你不是这个自己要更换,{gitUrl}需要替换为你代码的git仓库地址,其他的${xxx}形式的变量无需修改,保持原样即可 。
- 这里跟官方文档有一点点不一样,由于我项目文件夹目录不同,goctl生成的dockerfile文件我手动做了点调整,在一个我不是在构建时候生成的dockerfile,是在创建项目时候就把dockerfile一起放在目录下,这样构建镜像时候不需要goctl了
1、先在jenkins发布机器登陆harbor
$ docker login 192.168.1.180:8077$ Username: admin$ Password:Login Succeeded2、在k8s中生成登陆harbor配置文件#查看上一步登陆harbor生成的凭证$ cat /root/.docker/config.json{ "auths": {"192.168.1.180:8077": {"auth": "YWRtaW46SGFyYm9yMTIzNDU="}}3、对秘钥文件进行base64加密$ cat /root/.docker/config.json| base64 -w 0ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjEuMTgwOjgwNzciOiB7CgkJCSJhdXRoIjogIllXUnRhVzQ2U0dGeVltOXlNVEl6TkRVPSIKCQl9Cgl9Cn0=4、创建docker-secret.yamlapiVersion: v1kind: Secretmetadata:name: docker-logintype: kubernetes.io/dockerconfigjsondata:.dockerconfigjson: ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjEuMTgwOjgwNzciOiB7CgkJCSJhdXRoIjogIllXUnRhVzQ2U0dGeVltOXlNVEl6TkRVPSIKCQl9Cgl9Cn0=$ kubectl create -f docker-secret.yaml -n go-zero-looklooksecret "docker-login" created6、构建我们进入首页,点击idenity进入详情页
文章插图
然后可以看到,上面我们配置好的identity服务,如下图,点击“Build with Parameters”,然后选择rpc,点击“开始构建”

文章插图
第一次构建在拉代码时候都会失败,应该是初始化啥东西,再点一次就好了 。部署成功

文章插图

文章插图

文章插图
同样道理,去构建identity-api,再去配置usercenter服务 构建usercenter-rpc、构建usercenter-api,接着配置其他服务、构建即可,本次我们先只构建identity-api、identity-rpc、usercenter-rpc、usercenter-api给大家演示 。
6、添加网关因为我们的api服务通过goctl发布在k8s中都会暴露nodeport端口,索引我们看下k8s中go-zero-looklook命名空间下的service的nodeport端口服务,然后将nodeport配置在nignx即可 。
本次我们独立一台虚拟机在k8s之外,安装Nginx,将k8s后端api服务通过nodeport方式把端口暴露给nginx,然后nginx在配置中配置此api服务,这样nginx就充当网关使用 。
nginx的安装就不再这里多说了,记得一定要有auth_request模块,没有的话自己去安装 。
nginx的配置
server{listen 8081;access_log /var/log/nginx/looklook.com_access.log;error_log /var/log/nginx//looklook.com_error.log;location /auth {internal;proxy_set_header X-Original-URI $request_uri;proxy_pass_request_body off;proxy_set_header Content-Length "";proxy_pass http://192.168.1.182:31001/identity/v1/verify/token;}location ~ /usercenter/ {auth_request /auth;auth_request_set $user $upstream_http_x_user;proxy_set_header x-user $user;proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://192.168.1.182:31002;}location ~ /travel/ {auth_request /auth;auth_request_set $user $upstream_http_x_user;proxy_set_header x-user $user;proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://192.168.1.182:31003;}location ~ /order/ {auth_request /auth;auth_request_set $user $upstream_http_x_user;proxy_set_header x-user $user;proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://192.168.1.182:31004;}location ~ /payment/ {auth_request /auth;auth_request_set $user $upstream_http_x_user;proxy_set_header x-user $user;proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://192.168.1.182:31005;}}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 微软|电脑卡得受不了还误杀?教你一键关闭Defender
- 教你通过微信搜一搜截流 不能忽略的引流重要阵地
- 基于Vue3+TS+ElementPlus+Qiankun构建微应用项目
- 北大|批评北大教授语病者 感到失望:116字微博被指有12处语病 让人难以理解
- 微信头像如何设置全图?
- 红茶的主要成分和功效,茶的功效与作用微信
- Centos 7部署Suricata
- 一篇文章教会你使用Python定时抓取微博评论
- 微软|2022全球17款杀毒软件实测:微软免费杀软Defender倒数第二
- 部署云探针,配置轻量级监控系统
