如何在极狐GitLab 启用依赖代理功能

2024-04-10 10:52

本文主要是介绍如何在极狐GitLab 启用依赖代理功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文作者:徐晓伟

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。

本文主要讲述了如何在[极狐GitLab]启用依赖代理功能,用于加速构建过程,用于代理 Docker Hub 仓库。

文档

  1. 依赖代理
  2. 管理 极狐GitLab 依赖代理
  3. 加快作业执行速度
  4. 构建容器镜像并将其推送到容器镜像库
  5. 极狐GitLab artifacthub
  6. 镜像

说明

该功能只能在群组下的项目中使用

配置

默认依赖代理是关闭的

不同版本的 GitLab 菜单可能存在差异

image.png

开启依赖代理

  1. 导出 helm GitLab 配置

    # 将已配置的值导出到文件中
    helm -n gitlab-test get values my-gitlab > my-gitlab.yaml
    
  2. 更新配置

    helm upgrade -n gitlab-test --install my-gitlab gitlab/gitlab --timeout 600s -f my-gitlab.yaml --set global.appConfig.dependencyProxy.enabled=true --version 7.7.0
    
  3. 查看开启结果

    不同版本的 gitlab 菜单可能存在差异

image.png

image.png

使用

  1. 原始配置

    docker-build:image: docker:20.10.16stage: buildvariables:DOCKER_HOST: tcp://docker:2375DOCKER_TLS_CERTDIR: ""services:- docker:20.10.16-dind
    
  2. 使用群组依赖代理

    # 项目地址:https://gitlab.test.helm.xuxiaowei.cn/xuxiaowei/docker
    # CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX:代表群组环境变量,也可直接使用 gitlab.test.helm.xuxiaowei.cn/xuxiaowei/dependency_proxy/containers
    docker-build:image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/docker:20.10.16stage: buildvariables:DOCKER_HOST: tcp://docker:2375DOCKER_TLS_CERTDIR: ""services:- ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/docker:20.10.16-dind
    

无法解析域名

  1. 问题

image.png

  1. 原因

    k8s 工作节点无法解析 gitlab 域名,需要在 k8s 所有工作节点 的 宿主机 增加本机 hosts 解析

  2. 解决(在所有工作节点上操作

    增加 GitLab 域名 host

    [root@anolis-7-7 ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6172.25.25.31 	anolis-7-7172.25.25.32 	gitlab.test.helm.xuxiaowei.cn[root@anolis-7-7 ~]# 
    
    [root@anolis-7-9 ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6172.25.25.32 	anolis-7-9172.25.25.32 	gitlab.test.helm.xuxiaowei.cn[root@anolis-7-9 ~]# 
    

域名证书信任

  1. 问题

image.png

  1. 原因

    1. 域名证书无法验证
  2. 解决

    1. 新建群组项目,在群组中的项目测试

    2. 查看 webservice 端口

      kubectl -n gitlab-test get svc | grep webservice
      

      记录下方的 IP 10.110.211.99,端口 8080

      [root@anolis-7-9 ~]# kubectl -n gitlab-test get svc | grep webservice
      my-gitlab-webservice-default                 ClusterIP      10.110.211.99    <none>        8080/TCP,8181/TCP,8083/TCP                6d3h
      [root@anolis-7-9 ~]#
      
    3. 创建配置文件夹(在所有工作节点上操作

      mkdir -p /etc/containerd/certs.d/_default
      
    4. 创建配置文件,使用上方 webservice 的 IP、端口(在所有工作节点上操作

      cat > /etc/containerd/certs.d/_default/hosts.toml << EOF
      [host."https://gitlab.test.helm.xuxiaowei.cn"]capabilities = ["pull", "resolve", "push"]skip_verify = trueEOFcat /etc/containerd/certs.d/_default/hosts.toml
      
    5. 修改 containerd 配置文件 /etc/containerd/config.toml,结果如下( 在所有工作节点上操作

           [plugins."io.containerd.grpc.v1.cri".registry]config_path = "/etc/containerd/certs.d"
      
    6. 重启 containerd(在所有工作节点上操作

      systemctl restart containerd
      
  3. 查看结果

image.png

    # 节选[root@anolis-7-9 ~]# kubectl -n gitlab-test describe pod runner-wxpkss5w-project-7-concurrent-0-n5ovuw2o ...Events:Type    Reason     Age   From               Message----    ------     ----  ----               -------Normal  Scheduled  3s    default-scheduler  Successfully assigned gitlab-test/runner-wxpkss5w-project-7-concurrent-0-n5ovuw2o to anolis-7-7Normal  Pulled     3s    kubelet            Container image "registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_64-f5da3c5a" already present on machineNormal  Created    3s    kubelet            Created container init-permissionsNormal  Started    2s    kubelet            Started container init-permissionsNormal  Pulled     1s    kubelet            Container image "gitlab.test.helm.xuxiaowei.cn:443/xuxiaowei-com-cn/dependency_proxy/containers/docker:20.10.16" already present on machineNormal  Created    1s    kubelet            Created container buildNormal  Started    1s    kubelet            Started container buildNormal  Pulled     1s    kubelet            Container image "registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_64-f5da3c5a" already present on machineNormal  Created    1s    kubelet            Created container helperNormal  Started    1s    kubelet            Started container helperNormal  Pulled     1s    kubelet            Container image "gitlab.test.helm.xuxiaowei.cn:443/xuxiaowei-com-cn/dependency_proxy/containers/docker:20.10.16-dind" already present on machineNormal  Created    1s    kubelet            Created container svc-0Normal  Started    1s    kubelet            Started container svc-0[root@anolis-7-9 ~]# 

号外号外!
极狐GitLab 正在推出DevSecOps 成熟度测评!链接:https://gitlab.cn/devsecops-assessment/ 测评非常全面并提供了可靠建议,即使不付费买产品,对自己想要落地 DevSecOps 的用户具有很高的参考意义!快来动手试试吧!

DevSecOps 成熟度评估.png

这篇关于如何在极狐GitLab 启用依赖代理功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/890862

相关文章

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

Java反射实现多属性去重与分组功能

《Java反射实现多属性去重与分组功能》在Java开发中,​​List是一种非常常用的数据结构,通常我们会遇到这样的问题:如何处理​​List​​​中的相同字段?无论是去重还是分组,合理的操作可以提高... 目录一、开发环境与基础组件准备1.环境配置:2. 代码结构说明:二、基础反射工具:BeanUtils

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3

SpringCloud使用Nacos 配置中心实现配置自动刷新功能使用

《SpringCloud使用Nacos配置中心实现配置自动刷新功能使用》SpringCloud项目中使用Nacos作为配置中心可以方便开发及运维人员随时查看配置信息,及配置共享,并且Nacos支持配... 目录前言一、Nacos中集中配置方式?二、使用步骤1.使用$Value 注解2.使用@Configur