自动化运维环境搭建过程

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

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的运行日志
  • 以及工作负载情况

猜你喜欢

转载自blog.csdn.net/qq_16485855/article/details/123095855