[Gitops--2]Argocd和Gitlab-runner安装配置

news2025/3/13 6:55:05

ArgoCd

Argo是一组k8s原生工具集,用于运行和管理k8s上的作业和应用程序.Argo提供了一种在k8s上创建工作和应用的三种计算模式:服务模式,工作流模式和基于事件模式.所有的Argo工具都实现为了创建控制器和自定义资源.

为什么选ArgoCD

应用程序的定义,配置和环境都应该是声明性的,并授权版本控制.应用程序部署和生命周期管理应该是自动化的,可审计的,易于理解的.

1. 安装ArgoCd

1.1 创建命名空间

kubectl create ns argocd

1.2 修改安装文件

wget https://raw.githubusercontent.com/argoproj/argo-cd/v2.4.11/manifests/install.yaml
vi install.yaml
## 略
      containers:
      - command:
        - argocd-server
        ## 追加这行
        - --insecure
        env:
        - name: ARGOCD_SERVER_INSECURE

创建资源

kubectl apply -f install.yaml -n argocd

确认服务正常

root@master-01:/opt/argocd# kubectl get pods,svc -n argocd
NAME                                                    READY   STATUS    RESTARTS   AGE
pod/argocd-application-controller-0                     1/1     Running   0          2m3s
pod/argocd-applicationset-controller-78b8b554f9-7d6xn   1/1     Running   0          2m3s
pod/argocd-dex-server-86947f7b-t8447                    1/1     Running   1          2m3s
pod/argocd-notifications-controller-775d9954cb-922wb    1/1     Running   0          2m3s
pod/argocd-redis-599b855497-tmqn8                       1/1     Running   0          2m3s
pod/argocd-repo-server-54785f99fd-k956p                 1/1     Running   0          2m3s
pod/argocd-server-d7b97c76d-cwgrb                       1/1     Running   0          2m3s

NAME                                              TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
service/argocd-applicationset-controller          ClusterIP   10.200.31.42     <none>        7000/TCP,8080/TCP            2m3s
service/argocd-dex-server                         ClusterIP   10.200.102.68    <none>        5556/TCP,5557/TCP,5558/TCP   2m3s
service/argocd-metrics                            ClusterIP   10.200.191.92    <none>        8082/TCP                     2m3s
service/argocd-notifications-controller-metrics   ClusterIP   10.200.149.16    <none>        9001/TCP                     2m3s
service/argocd-redis                              ClusterIP   10.200.150.231   <none>        6379/TCP                     2m3s
service/argocd-repo-server                        ClusterIP   10.200.122.178   <none>        8081/TCP,8084/TCP            2m3s
service/argocd-server                             ClusterIP   10.200.164.173   <none>        80/TCP,443/TCP               2m3s
service/argocd-server-metrics                     ClusterIP   10.200.133.227   <none>        8083/TCP                     2m3s

1.3 创建ingress

ingress-argocd.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: argocd-ingress
  namespace: argocd
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  rules:
  - host: argocd.intra.com
    http:
      paths:
      - path: "/"
        pathType: Prefix
        backend:
          service:
            name: argocd-server
            port:
              number: 80

创建ingress

kubectl apply -f ingress-argocd.yaml -n argocd

当ingress正常后,添加hosts进行解析或者配置dns

# kubectl get ingress -n argocd
NAME             CLASS    HOSTS              ADDRESS         PORTS   AGE
argocd-ingress   <none>   argocd.intra.com   192.168.31.52   80      103s
# kubectl get svc -n ingress-nginx
NAME                                 TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)                      AGE
ingress-nginx-controller             LoadBalancer   10.200.77.80   192.168.31.230   80:30363/TCP,443:30914/TCP   5h14m
ingress-nginx-controller-admission   ClusterIP      10.200.42.99   <none>           443/TCP                      105d

hosts中追加

192.168.31.230 argocd.intra.com

1.4 获取登录密码

kubectl get secret -n argocd argocd-initial-admin-secret -o yaml

获取到password为:

MG5vdnVtY05MR1V4d2xxVw==

解密

echo MG5vdnVtY05MR1V4d2xxVw==|base64 -d

结果为

0novumcNLGUxwlqW

默认用户名为admin,密码就是刚才解密出来的

请添加图片描述

2. 下载argocd客户端

wget https://github.com/argoproj/argo-cd/releases/download/v2.4.11/argocd-linux-amd64
chmod +x argocd-linux-amd64
mv argocd-linux-amd64 /usr/local/bin/argocd

查看版本

argocd version
argocd: v2.4.11+3d9e9f2
  BuildDate: 2022-08-22T09:35:38Z
  GitCommit: 3d9e9f2f95b7801b90377ecfc4073e5f0f07205b
  GitTreeState: clean
  GoVersion: go1.18.5
  Compiler: gc
  Platform: linux/amd64
FATA[0000] Argo CD server address unspecified

3. 登录Argocd

3.1 域名解析

192.168.31.230 argocd.intra.com
argocd login argocd.intra.com

请添加图片描述

3.2 更新密码

argocd account update-password

请添加图片描述

4. Kustomize安装

当开发者push代码以后,gitlab-runner会在gitlab-ce服务器执行流水线里定义具体的操作,流水线步骤里定义了gitlab-runner通过kustomize客户端工具修改应用部署资源清单文件里的容器镜像版本,并重新push代码到代码仓库,所以需要在gitlab-ce服务器中安装Kustomize

wget https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv4.5.7/kustomize_v4.5.7_linux_amd64.tar.gz
tar xf kustomize_v4.5.7_linux_amd64.tar.gz
mv kustomize /usr/bin/

确认版本

# kustomize version
{Version:kustomize/v4.5.7 GitCommit:56d82a8378dfc8dc3b3b1085e5a6e67b82966bd7 BuildDate:2022-08-02T16:35:54Z GoOs:linux GoArch:amd64}

5. Gitlab runner安装

Gitlab Runner是一个开源项目,用于运行作业并将结果发送给Gitlab,他与Gitlab CI一起使用,Gitlab CI是Gitlab的持续集成服务,用于协调作业.相当于流水线工人.

5.1 创建组

请添加图片描述

选择创建组

请添加图片描述

请添加图片描述

5.2 创建项目

请添加图片描述

请添加图片描述

请添加图片描述

5.3 安装runnner

在gitlab服务器上操作

wget https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64 -O /usr/bin/gitlab-runner
chmod +x /usr/bin/gitlan-runner

5.4 配置gitlab-runner

创建gitlab-runner用户

useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

配置工作目录

gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner

启动gitlab-runner

gitlab-runner start

查看gitlab-runner状态

root@gitlab-ce:~# ps -aux |grep gitlab-runner
root     102988  0.0  1.0 765700 42680 ?        Ssl  04:32   0:00 /usr/bin/gitlab-runner run --working-directory /home/gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlab-runner --user gitlab-runner
root     103030  0.0  0.0  13140  1060 pts/2    S+   04:33   0:00 grep --color=auto gitlab-runner

5.4 添加gitlab-runner实例

gitlab-runner register

请添加图片描述

依次填入
- url(来自上图)
- token(上图)
- 项目名称
- 执行方式

请添加图片描述

调整配置文件

cat /etc/gitlab-runner/config.toml
concurrent = 1
check_interval = 0
shutdown_timeout = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "apidemo"
  url = "http://192.168.31.14/"
  id = 1
  token = "EZwQzJkSVhCcBEXUU4Ds"
  token_obtained_at = 2023-03-29T04:37:36Z
  token_expires_at = 0001-01-01T00:00:00Z
  executor = "shell"
  [runners.custom_build_dir]
  ## 添加这行来固定日志文件位置
    enabled=true
  [runners.cache]
    MaxUploadedArchiveSize = 0

5.5 启动gitlab-runner

gitlab-runner run &

输出

arch=amd64 os=linux pid=103251 revision=456e3482 version=15.10.0
Starting multi-runner from /etc/gitlab-runner/config.toml...  builds=0
Running in system-mode.

Configuration loaded                                builds=0
listen_address not defined, metrics & debug endpoints disabled  builds=0
[session_server].listen_address not defined, session endpoints disabled  builds=0
Initializing executor providers                     builds=0

5.6 gitlab-runner Docker配置

授权gitlab-runner用户使用docker

usermod -G docker gitlab-runner
# id gitlab-runner
uid=1001(gitlab-runner) gid=1001(gitlab-runner) groups=1001(gitlab-runner),994(docker)

5.7 项目配置gitlab-runner

请添加图片描述

去掉 □ Lock to current projects的选中

请添加图片描述

请添加图片描述

至此argocd和gitlab-runner安装配置完毕

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/433187.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT和GPT-4帮你写人物传记

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

研读Rust圣经解析——Rust learn-11(测试,迭代器,闭包)

研读Rust圣经解析——Rust learn-11&#xff08;测试&#xff0c;迭代器&#xff0c;闭包&#xff09; 测试编写测试模块声明test模块编写测试方法执行测试测试结果检查 闭包定义一个闭包完整写法闭包可以捕获环境闭包类比函数闭包类型推断闭包获取所有权将被捕获的值移出闭包和…

Jenkins配置邮件通知

1、下载Email Extension插件 2、配置发件人邮箱地址 系统管理 > 系统配置 3、配置邮件通知 系统管理 > 系统配置 > 邮件通知 往下滑找到 通过发送测试邮件测试配置 测试 如果以上配置没有问题,会发送一封测试邮件到服务器中,如果有问题请优先检查一下端口号和是…

网络协议-HTTP协议详情讲解

目录 HTTP协议内容和方法 HTTP请求常见请求头 HTTP常见返回头 HTTP协议基本方法 常见HTTP状态码 面试解惑&#xff1a;301 vs 308 面试解惑&#xff1a;302 / 303 / 307 常见HTTP头 User-Agent Content-Type Origin Accept Referer Connection HTTP协议内容和方法…

Nginx中location规则 与 URL重写(rewrite)详解

1.Nginx中location与rewrite 1.1 location与rewrite常用的正则表达式 符号作用^匹配输入字符串的起始位置$ 匹配输入字符串的结束位置*匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll” 匹配前面的字符一次或多次。如“ol”能匹配“ol”及“oll”、“olll”…

微信为什么使用 SQLite 保存聊天记录

SQLite “只是”一个库&#xff0c;它不是传统意义上的服务器。因此&#xff0c;在某些场合下&#xff0c;它确实不合适。但是&#xff0c;在相当多的其他场合&#xff0c;它却是最合适的选择。SQLite 号称是部署和使用最广泛的数据库引擎。我认为这很有可能&#xff0c;因为 S…

《PyTorch 深度学习实践》第10讲 卷积神经网络(基础篇)

文章目录1 卷积层1.1 torch.nn.Conv2d相关参数1.2 填充&#xff1a;padding1.3 步长&#xff1a;stride2 最大池化层3 手写数字识别该专栏内容为对该视频的学习记录&#xff1a;【《PyTorch深度学习实践》完结合集】 专栏的全部代码、数据集和课件全放在个人GitHub了&#xff…

SpringCloud之OpenFeign介绍案例+相关面试题

概述 OpenFeign是一个声明式的WEB服务客户端&#xff0c;它使WEB服务客户端变得更加容易。具有可插拔的注解支持&#xff0c;SpringCloud中添加了SpringMVC注解的支持。SpringCloud中集成了Ribbon和Eureka&#xff0c;以及SpringCloud LoadBalance&#xff0c;以便在使用Feign时…

C++数据结构:树

树 树是一种数据结构&#xff0c;它是n(n>0)个节点的有限集。n0时称为空树。n>0时&#xff0c;有限集的元素构成一个具有层次感的数据结构。 根 有且仅有一个结点的非空树&#xff0c;那个结点就是根。 A就是上面树的根节点 子树 在一棵非空树中&#xff0c;除根外&a…

由浅入深,一文彻底搞懂Mybatis+面试题分享

mybatis常见面试题链接&#xff1a;2023年-Mybatis常见面试题_是Smoky呢的博客-CSDN博客 MVC架构模式和三层架构 在说Mybatis之前&#xff0c;需要知道MVC架构模式和三层架构的这种思想 MVC架构模式 M&#xff1a;Model&#xff0c;数据层。都是和数据相关&#xff0c;比如实体…

MongoDB实现---事务机制

事务机制 原子性是MongoDB实现事务的难点&#xff0c;隔离性和持久性则是MongoDB事务机制的亮点 ACID支持&#xff1a;由于前面说过MongoDB是基于大数据、提供高度可扩展和高可用&#xff1b;所以其事务机制不仅仅是一般ACID还是结合了BASE理论下的ACID 原子性&#xff1a;保…

键盘录入及标识符

键盘录入 键盘录入介绍&#xff1a; ●为什么要有键盘录入? 目的&#xff1a;为了让我们操作的数据,变得更加灵活 举例&#xff1a;int a10; 这里a虽然是个变量&#xff0c;但记录的值&#xff0c;却是手动写死的。 提问&#xff1a;能不能让a变量记录的值&#xff0c;灵活…

Elasticsearch-mapping

1.Mapping基本概念 Mapping 也称之为映射&#xff0c;定义了 ES 的索引结构、字段类型、分词器等属性&#xff0c;是索引必不可少的组成部分。 ES 中的 mapping 有点类似与RDB中“表结构”的概念&#xff0c;在 MySQL 中&#xff0c;表结构里包含了字段名称&#xff0c;字段的…

# IMAGE - Image Perimeters

# IMAGE - Image Perimeters ## 题面翻译 ### 描述 给出一张由"x"和"."组成的矩阵。每个"x"可以向上下左右及两个斜对角进行连通&#xff0c;请问由某个点开始的"x"&#xff0c;它所连通的图形的周长为多少。 ### 输入 整个测试有多…

SpringBoot 整合ChatGPT API项目实战

准备工作 &#xff08;1&#xff09;已成功注册 OpenAI 的账号。 &#xff08;2&#xff09;创建 API KEY&#xff0c;这个 API KEY 是用于 HTTP 请求身份验证的&#xff0c;可以创建多个。 注意这个创建之后需要马上复制好保存&#xff0c;关闭弹框之后就看不到了。 &#xf…

excel的导入导出的两种方案 (1 EasyExcel 2 Hutool工具类)

文章目录 前言1 EasyExcel的导入导出导出1 导入依赖2 项目中的CourseEntity实体类3 CoureseVo VO类 (对CourseEntity进行EasyExcel导入导出操作)4 导出代码的编写 并最终测试导出效果5 (前端内容 可选)通过vue按钮点击 导出 导入1 导入依赖 跟导出相同2 创建回调监听器3 编写导…

1、Typescript基础入门与环境搭建

1、开发工具安装与基本配置 1.1、软件下载安装 如果你还没有使用过VSCode&#xff0c;当然先要去官网下载了。下载完成后双击安装&#xff0c;一直下一步即可。 1.2、编辑器汉化 如果你英语不是很好&#xff0c;配置中文版界面是很有必要的&#xff0c;安装个插件就可以了。打…

虚化背景 - 基于镜头模糊滤镜的深度映射

镜头模糊 Lens Blur等滤镜可以使用深度映射 Depth Map来设置像素在视觉上的前后关系。因此&#xff0c;常利用深度映射来创建真实感虚化效果&#xff0c;或者进行超越镜头的任意虚化处理。 ◆ ◆ ◆ 基于 Alpha 通道的深度映射关系 一般可通过建立 Alpha 通道或图层蒙版来创建…

【算法基础】DP第三弹 —— 竞赛篇

一、计数问题 (一)Question 1. 问题描述 2. Input 输入包含多组测试数据。每组测试数据占一行,包含两个整数 a 和 b。当读入一行为 0 0 时,表示输入终止,且该行不作处理。(0 < a, b < 100000000) 3. Output 每组数据输出一个结果,每个结果占一行。每个结果包…

MIPI D-PHYv2.5笔记(21) -- Forward High-Speed Data Transmission Timing

声明&#xff1a;作者是做嵌入式软件开发的&#xff0c;并非专业的硬件设计人员&#xff0c;笔记内容根据自己的经验和对协议的理解输出&#xff0c;肯定存在有些理解和翻译不到位的地方&#xff0c;有疑问请参考原始规范看 DDR时钟差分信号和Data差分信号的时序关系如下图所示…