Jenkins结合git与k8s 的简单部署

基本大概流程如下:
在这里插入图片描述

思路一: ssh方式连接k8s master节点,然后执行kubectl命令即可。

思路二: 使用插件的方式管理k8s。

这次要通过 思路1 来实现
需要用6台服务器,其中 :

server123为kubernetes节点(1为master,23为nodes)
server4为harbor仓库
server5为jenkins
server6为git

一. 实验前的一些配置

1.配置harbor仓库

详情请阅读此博客

注意事项

安装docker以及harbor仓库的一些注意事项:
若认证后也登陆失败docker是openssl版本低所致
只需升级openssl版本并重新生成证书时修改参数即可 类似于:

openssl11 req -newkey rsa:4096 -nodes -sha256 -keyout certs/westosorg.key -addext "subjectAltName = DNS:reg.westos.org" -x509 -days 365 -out certs/westos.org.crt

仓库内需要有nginx镜像
在这里插入图片描述

2.配置kubernetes集群

详细步骤请查看此篇博客

注意事项

server1 2 3 的etc/docker 目录下都需要有从 安装harbor仓库的服务器认证文件 ca.crt (即server4的westos.org.crt)

/etc/docker/certs.d/reg.westos.org/ca.crt    

3.配置git及私有gitlab搭建

详细步骤请阅读此篇博客

4.配置jenkins

详细步骤请阅读此篇博客

注意事项

jenkins服务器也需要安装git

yum install git -y

二. 部署

server1

mkdir svc #创建svc服务

server5

因为需要scp所以需要给server5的jenkins用户权限实现免密
我们编辑passwd文件 使他可以登陆

vim /etc/passwd
jenkins:x:998:996:Jenkins Automation Server:/var/lib/jenkins:/bin/bash

免密认证

su jenkins
ssh-keygen
ssh-copy-id root@server1:

server6

mkdir /root/middle-compose-service
cd /root/middle-compose-service
git init
vim deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
    name: deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
---
apiVersion: v1
kind: Service
metadata:
  name: web-service
spec:
  ports:
    - name: http
      port: 80
      targetPort: 80
  selector:
      app: nginx
  type: NodePort
vim k8s_auto_deploy.sh

kubectl apply -f deployment.yaml
kubectl get pods -o wide

我们每次提交都需要

git add *
git commit -m "*"
git push origin master

172.25.76.5 即gitlab

项目中需要有middle-compose-service
在这里插入图片描述
在偏好设置里的SSH密钥中需要git仓库和Jenkins进行SSH免密连接,方法:
将server5的公钥上传到git

ssh-keygen 
cat /.ssh/id_rsa.pub

在这里插入图片描述
随后在管理员—设置----网络—外发请求允许Webhooks和服务对本地网络的请求
在这里插入图片描述
在项目设置----Webhooks添加策略
在这里插入图片描述
其中token的获取方式为
构建触发器–Build when a change is pushed to GitLab. GitLab webhook URL: http://172.25.76.5:8080/project/k8s—Comment (regex) for triggering a build下点击***高级***后出现并复制到那里(jenkins前段页面的配置会在下面介绍
在这里插入图片描述

172.25.76.6:8080 jenkins前端页面

在系统管理中选中插件管理,分别安装如下插件
SSH 和Gitlab
在系统配置中添加SSH remote hosts
在这里插入图片描述保存

新建一个k8s的任务后
配置如下
在这里插入图片描述
其中Repository URL在gilab中复制
在这里插入图片描述
在这里插入图片描述
选中高级后发现token可以复制到gitlab去

在这里插入图片描述
构建环境中选择Delete workspace before build starts
构建 中选择执行shell以及Excute shell script on remote host using ssh 内容如下

在这里插入图片描述保存后 我们立即构建
立即构建后查看是否运行成功
运行成功! 我们查看控制台输出

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lll_cf

喜欢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值