使用rancher在k8s上完成第一个CI/CD的项目_.NET篇

隔了几天没写了。一是忙的不行,二是遇到一个问题一直没解决。我们自己搭建的harbor仓库是没有域名的,也没做nginx转发,所以都是http请求的。构建项目时会在两个地方遇到关于docker访问http仓库不通的问题。
第一个:构建成功push镜像到私有仓库的时候。
第二个:构建成功部署的时候从仓库pull镜像来部署的时候。
这里需要设置一些东西:
首先我们所有含有docker环境的模板镜像都是提前做了配置信任私有仓库的:
vi /etc/docker/daemon.json

rancher流水线文件 :.rancher-pipeline.yml文件需要加一个设置:

 设置集群node私有仓库:这里需要注意,工作节点和控制节点都需要设置
 vi /etc/rancher/rke2/registries.yaml

192.168.21.8 controller1
192.168.21.9 controller2
192.168.21.230 controller3
控制节点修改了后需要执行:
systemctl restart rke2-server.service
systemctl status containerd.service

192.168.21.233 worker1
192.168.21.234 worker2
192.168.21.235 worker3
工作节点修改后需要执行
systemctl restart rke2-agent.service
systemctl status containerd.service

开始第一个CICD项目:
rancher如何配置ci/cd?https://blog.csdn.net/wangxin123wangxin/article/details/122984551
开发环境.net6 +vs2022

新建一个net6 api项目

 

 

选中项目右键:添加docker支持

 修改Dockerfile文件:

 镜像加速代理:默认用微软官方镜像。非常慢。修改成我们私有仓库,但是我们私有仓库需要设一个镜像代理
登录到镜像仓库harbor :192.168.21.4:8081

 

 

新建一个项目:

 设置好代理后,拉取我们私有仓库镜像时,如果本地没有,就会走代理去取。拉取过后私有镜像仓库就会缓存。 

 在项目里添加一个健康检查控制器:(为啥要监控检查。这个很重要,集群需要知道任何服务,站点的监控状态,就需要站点或者服务暴露出一个可以供集群健康检查的方式)

 

 

 准备流水线文件:(rancher pipiline要求必须项目有流水线文件。才能进行自动化发布和部署,流水线文件名称必须时:.rancher-pipeline.yml,所在目录和解决方案一个目录)

 准备部署文件:deployment.yaml,所在目录和流水线文件一个目录,也可以不同,需要修改流水线文件中相对路径

apiVersion: v1
kind: Service
metadata:
  name: hellok8s      #服务名称,建议就是项目小写,统一后面很好处理
  namespace: default
  labels:
    app: hellok8s     
    service: hellok8s
spec:
  ports:
  - port: 80
    name: http
  selector:
    app: hellok8s
---
apiVersion: apps/v1
kind: Deployment    #部署名称
metadata:
  name: hellok8s
  namespace: default
  labels:
    app: hellok8s
    version: v1
spec:
  replicas: 1   #副本数
  selector:
    matchLabels:
      app: hellok8s
      version: v1
  template:
    metadata:
      labels:
        app: hellok8s
        version: v1
    spec:
      containers:
      - name: hellok8s
        image: 192.168.21.4:8081/test/hellok8s:${CICD_GIT_BRANCH}-${CICD_GIT_COMMIT}  #镜像,这里也用到了变量
        readinessProbe:
          httpGet:
            path: /health/status   #健康检查,这就是为什么要写健康检查接口
            port: 80
          initialDelaySeconds: 10
          periodSeconds: 5
        ports:
        - containerPort: 80
      imagePullSecrets:
        - name: mydockerhub     #还记得我们创建集群私有仓库吗。这里就是那个名字

 这个文件内容比较多,不懂的可以私信我。

 最后把代码和部署文件都提交上去就可以去发布了。

等待。。。。。(性能好的机器就很快)出错了可以查看错误信息。 

 查看部署结果:

 查看服务:

 为什么有个服务? 
service是k8s中的一个重要概念,主要是提供负载均衡和服务自动发现。一个服务可以对应多个pod,pod重新部署或者重启ip都会发生变化,但是可以通过服务,找得到对应的pod,

 负载均衡?下一篇再说。。。。。

CI/CD精髓在于:CI/CD 创建了一个可重复的、可靠的且可预见的发布流程,从而大大缩短了发布周期,使得新增功能和缺陷修复能更早与用户见面。这么做为我们节省下了巨大的金钱成本,还节省了包括建立和维护这样一个发布系统所需要的时间投入。

试想一下,修改代码,git提交,触发部署,环境部署完成。测试介入,开发根本不用关心无休止的打包部署。人工打包,人工部署,操作失误,定位半天原来少部署了个dll?浪费了开发资源。
 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Rancher搭建Kubernetes集群,可以按照以下步骤进行操作: 1. 首先,使用以下命令启动Rancher容器: ``` docker run -d --name=rancher --restart=unless-stopped \ -p 8080:80 -p 8443:443 \ --privileged \ -v /data/rancher:/var/lib/rancher \ rancher/rancher:latest \ --acme-domain rancher.example.cn ``` 这个命令会启动Rancher容器,并将数据挂载到`/data/rancher`目录,用于数据持久化。`--acme-domain`后面的域名`rancher.example.cn`是用于访问Rancher管理后台的域名,Rancher会自动为该域名申请Let's Encrypt证书。你可以将`rancher.example.cn`解析到你的服务器IP地址。如果你不想使用域名,可以去掉`--acme-domain`选项,并挂载自己的证书。 2. 打开Rancher的管理后台,在首页的右上角点击"添加集群"。 3. 在添加集群页面选择"自定义",填写集群名称,其他参数保持默认,点击"下一步"进入添加主机的页面。 4. 勾选"Etcd"和"Control"角色,并展开高级选项,填写master主机的信息。 5. 复制页面下方的`sudo docker run`命令,在master主机上执行,等待Kubernetes集群的master节点安装完毕。 6. 安装完毕后返回首页,你会看到集群的主机数变成了1。 7. 点击主机数列上的数字可以进入查看主机列表,如果主机状态为"Active",说明节点已经初始化完毕。 8. 点击右上方的"编辑集群",页面拉到最下面会有添加主机命令。这次选择角色为"worker",并填写node1的信息,然后复制命令到node1主机执行。再将参数改成node2主机的信息,复制命令到node2主机执行。 9. 等待node1和node2两个节点初始化完毕后,Kubernetes集群就搭建完毕了。 通过以上步骤,你可以使用Rancher搭建Kubernetes集群。 #### 引用[.reference_title] - *1* *2* *3* [Rancher操作指南(一):快速搭建k8s集群](https://blog.csdn.net/l2931050/article/details/124110605)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值