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

2023-05-16

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安装配置完毕

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[Gitops--2]Argocd和Gitlab-runner安装配置 的相关文章

  • 【从0到1】组装深度学习台式机

    本文旨在为有从事深度学习研究的同学提供一份装机攻略 xff0c 望对您有帮助 1 前言 目前 新基建 热潮 xff0c 人工智能如火如荼 xff0c 国内大部分院校 企业都会为学生 员工配置实验集群 xff0c 但是有时候想在本地自己跑些d
  • 【ROS学习】节点运行管理launch文件的基本操作

    launch文件的概念和作用 launch 文件是一个 XML 格式的文件 xff0c 可以启动本地和远程的多个节点 xff0c 还可以在参数服务器中设置参数 launch文件的作用是 xff1a 简化节点的配置与启动 xff0c 提高RO
  • 系统提示“该设备无法启动(代码:10)”,USB设备不能开始工作怎么办?

    文章来源 xff1a https www reneelab com cn this device cannot start html 目录 原因分析解决方法一 xff1a 在设备管理器中更新驱动程序解决方法二 xff1a 重新安装有问题的U
  • printf 在Linux终端上输出彩色字体 (串口也适用)

    有时我们希望在LINUX终端上按照调试级别打印不同颜色的调试信息 xff0c 如 include lt stdio h gt define DBG PRINT format arg do fprintf stdout 34 ld d fla
  • vSLAM重读(4): OKVIS--KeyFrame-based Visual-Inertial SLAM

    1 摘要 视觉传感器与IMU传感器互补 61 61 gt VIO系统 xff1b 由最初的以滤波为主题 xff0c 现在逐渐转换为非线性优化来实现SLAM xff1b 提出一种方法将视觉信息与IMU测量数据紧密结合 xff0c 将IMU的误
  • vSLAM重读(5): vSLAM中对双目相机的数据处理及与单目相对比

    1 双目相机概述 双目立体视觉模型 双目模型求取深度 双目立体相机分别校准可参考 ROS 单目相机 分别校准 双目立体匹配算法案例 https www cnblogs com riddick p 8486223 html https www
  • ROS回顾学习(11): TF之static_transform_publisher

    主要用于静态坐标转换 两种发布形式 1 俯仰角 43 位置坐标 span class token comment static transform publisher x y z yaw pitch roll frame id child
  • 菜鸟专学:从头到尾创建自己的SLAM系统

    RobotSlamApplication项目二 xff1a 小型SLAM系统 研究背景 xff1a 因为之前比较浮躁 xff0c 总是喜欢研究别人的库然后测试跑通 xff0c 效果好就拿来修修改改 然后测试测试就用 xff0c 效果不好就抛
  • 伽马分布与 贝塔分布

    伽马函数 称 为伽马函数 xff0c 其中参数 xff0c 伽马函数具有如下性质 xff1a n为自然数 xff1b 或写作 余元公式 xff1a 对于 有 与贝塔函数 的关系 对于 伽马函数是严格凹函数 x足够大时 xff0c 可以用St
  • Hanoi汉诺塔步骤实现图示说明(C程序设计,例7.8)

    一 题目 古代有一个梵塔 塔内有3个座A B C 开始时A座上有64个盘子 盘子大小不等 大的在下 小的在上 如下图所示 有个老和尚想把这64个盘子从A座移到C座 但规定每一次只允许移动一个盘 且在移动过程中在3个座上都始终保持大盘在下 小
  • PX4飞行模式整理

  • docker打包、部署、添加用户组

    docker的打包与部署 参考文章 xff1a link 1 xff0c 查看当前正常运行的容器 docker ps docker ps a 显示所有容器 xff0c 包括未运行容器 2 xff0c 将正在运行的容器打包成镜像 docker
  • 树莓派VNC连接失败,认证界面无法输入用户名

    文章目录 问题背景思考 xff1a 解决方法 xff1a 第一步 xff1a 使用命令新建桌面 xff1a 第二步 xff1a vnc客户端连接时 xff0c 并且指定桌面号连接成功 xff01 优化方案 xff1a 参考引用 问题背景 由
  • vue按钮获取元素

    下面展示一些 内联代码片 64 click 61 34 search event 34 search e 获取所有元素 console log e 获取文字 console log e currentTarget innerText
  • ORBSLAM2在Ubuntu20.04&ROS noetic下配置与测试

    在解决问题过程中看了很多大佬的文章 总结一下资源及bug及bug可能有效的解决方案 有些忘了 1 bug 最常见的应该是编译器版本不同和库文件版本不同导致的语法差异 1 1 Eigen版本问题 CMakelist 44行改为find pac
  • 虚拟机开机黑屏(硬盘空间不足)

    1 现象 开机后正常运转 xff0c 出现 11 548785 piix4 smbus 0000 00 07 3 SHBus Host Controller not enabled i12 241671 sd 32 0 0 0 sda As
  • slam报错大讲堂

    1 g2o链接文件找不到 error while loading shared libraries libg2o csparse extension so cannot open shared object file No such fil
  • initramfs错误导致无法进入系统

    说是不正常关机 导致的错误 总之就是开不了机了 并且弹出对话框 不知道输入啥 查网上说要 strong span style color 4da8ee fsck t ext4 dev sda1 span strong 但是没有卵用 其实到这
  • ubuntu下vscode 突然打不开

    https stackoverflow com questions 51027327 ubuntu 18 04 var lib snapd has other write 40777 报错如下 xff1a var lib snapd has
  • 普罗米修斯踩坑解法大合集

    主流1 仿真环境下报错 Not arming geofence RTL requiers valid home xff1b 以及Compass Sensors inconsistent等 去年买的跑个仿真还有地理围栏和校准传感器 xff0c

随机推荐