学堂 学堂 学堂公众号手机端

自动化运维环境搭建过程

lewis 1年前 (2024-04-09) 阅读数 10 #技术

本文介绍下"代码提交自动部署到云原生并实时查看服务的运行状态"运行环境的搭建过程

k8s方式安装gitlab

​下载gitlab yaml文件​

git clone https://gitee.com/pingfanrenbiji/gitlab


​安装postgresql、redis、gitlab​

镜像下载

docker pull sameersbn/postgresql:10

docker pull sameersbn/redis

docker pull sameersbn/gitlab:11.8.1

k8s部署

kubectl apply -f .

gitlab还在启动中

查看启动情况

kubectl logs -f gitlab-7cc4bd85ff-459lf -n kube-ops

查看启动情况

截止目前都启动成功了

gitlab的ingress域名是gitlab.demo.com

暴露的http.nodePort端口是30003

所以可以通过

​​http://gitlab.demo.com:30003​​

访问

账号:root/admin321

​域名配置​

sudo vim /etc/hosts

172.16.0.114 gitlab.demo.com

访问url是http://gitlab.demo.com:30003

是否可以直接通过域名访问呢即http://gitlab.demo.com

那么就需要通过nginx做下代理转发

docker run --name=nginx  --volume=/opt/docker/nginx03/html:/usr/share/nginx/html --volume=/opt/docker/nginx03/conf/nginx.conf:/etc/nginx/nginx.conf --volume=/opt/docker/nginx03/conf/conf.d:/etc/nginx/conf.d --volume=/opt/docker/nginx03/logs:/var/log/nginx -p 443:443 -p 81:81 -d  nginx

mengfaniaodeMBP:nginx03 mengfanxiao$ cat conf/conf.d/gitlab.conf 
server{
server_name gitlab.demo.com ;

access_log /var/log/nginx/gitlab.access.log main;
error_log /var/log/nginx/gitlab.error.log notice;

location / {
proxy_pass http://gitlab.demo.com:30003/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

这样就可以通过http://gitlab.demo.com/域名直接访问了

​查看gitlab-runner所需的配置信息​

gitlab地址 http://gitlab.demo.com/token BZncyg6pxxN6ugtKzFnm二进制方式部署gitlab-runner

​官方部署文档​

​​https://docs.gitlab.com/runner/install/osx.html​​

我是在本地mac环境部署的 其他操作系统请自行选择安装版本

# 下载二进制文件
sudo curl --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64"
# 设置执行权限
sudo chmod +x /usr/local/bin/gitlab-runner
# 启动
gitlab-runner install
gitlab-runner start

​查看启动情况​

​在gitlab-runner注册gitlab​

gitlab-runner register

这里需要注意 如果gitlab地址写成http://gitlab.demo.com/

那么就说明 gitlab-runner访问gitlab是通过nginx访问的

这里建议直接访问gitlab不经过nginx即gitlab地址写成

​​http://gitlab.demo.com:30003/​​

注册成功之后就可以在gitlab上看到gitlab-runner这个执行器了

创建新的仓库

比较简单具体就不演示了

这里需要说一点就是

本地代码可以直接上传到gitlab

而不经过nginx

因为nginx对于http请求的限制可能会影响代码的提交

# 在项目跟目录下
git config -e

安装docker镜像仓库
docker run --name=registry --volume=/opt/docker/registry:/var/lib/registry -p 5000:5000  -d --restart=always registry
编写gitlab-ci.yaml文件

​​https://gitee.com/pingfanrenbiji/gitlab/blob/master/.gitlab-ci.yml​​

​配置maven环境变量​

​定义自动化部署的四个阶段​

源码maven编译

通过mvn clean pacakge命令对源码进行编译打包

docker镜像生成

通过docker build 生成docker镜像文件

将docker镜像推送到镜像仓库

将镜像文件推送到镜像仓库

k8s部署

通过k8s部署服务

这里指定的是提交到release分支 会自动触发gitlab-ci部署

一个流程包含4个阶段或4个任务

安装kuboard

​​https://gitee.com/pingfanrenbiji/gitlab/blob/master/kuboard-v3.yaml​​

​下载镜像并上传到本地仓库​

docker pull eipwork/etcd-host:3.4.16-1
docker pull eipwork/kuboard:v3

docker tag eipwork/etcd-host:3.4.16-1 127.0.0.1:5000/eipwork/etcd-host:3.4.16-1
docker push 127.0.0.1:5000/eipwork/etcd-host:3.4.16-1

docker tag eipwork/kuboard:v3 127.0.0.1:5000/eipwork/kuboard:v3
docker push 127.0.0.1:5000/eipwork/kuboard:v3

​启动kuboard​

kubectl apply -f kuboard-v3.yaml

​查看启动结果​

kubectl get pod -n kuboard

​访问kuboard​

​​http://localhost:30080/​​

admin/Kuboard123

​导入现有的k8s集群​

查看k8s集群配置
cat ~/.kube/config 
查看集群所在node的ip
kubectl get node
kubectl describe node docker-desktop|grep InternalIP

将上面获取的信息配置到页面中

​集群导入成功之后 就可以查看集群内容了​

选择一个身份进去集群

选择一个命名空间

就可以看到这个命名空间下的集群运行情况了

可以查看某一个pod的运行日志

以及工作负载情况


版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门