IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> GitLab之Runner注册K8S -> 正文阅读

[系统运维]GitLab之Runner注册K8S

获取gitlab token

Setting->CI/CID Settings界面

在这里插入图片描述

需要借助helm完成

#添加源
helm repo add gitlab https://charts.gitlab.io

或者直接拉官网一个yaml

https://gitlab.com/gitlab-org/charts/gitlab-runner/blob/main/values.yaml
  • 修改后如下:
egrep -v "#" gitlab-runn.yaml | grep -v "^$"

imagePullPolicy: IfNotPresent
#gitlab服务器地址
gitlabUrl: http://192.168.10.9/
#runner注册token
runnerRegistrationToken: "mNaxzsqyxpwQQCxJkSTa"
#当停止管道时等待其他作业终止时间
terminationGracePeriodSeconds: 3600
#最大并发作业数量
concurrent: 10
#新作业检查时隔
checkInterval: 30
sessionServer:
  enabled: false
rbac:
  create: true
  resources: ["pods", "pods/exec", "secrets"]
  verbs: ["get", "list", "watch", "create", "patch", "delete"]
  rules: []
  clusterWideAccess: false
  podSecurityPolicy:
    enabled: false
    resourceNames:
    - gitlab-runner
metrics:
  enabled: true
  portName: metrics
  port: 9252
  serviceMonitor:
    enabled: false
service:
  enabled: false
  type: ClusterIP
runners:
  config: |
    [[runners]]
      [runners.kubernetes]
        namespace = "{{.Release.Namespace}}"
        image = "ubuntu:16.04"
  #执行器类型
  executor: kubernetes
  #是否锁定false
  locked: false
  #你的tags
  tags: "k8s-runner,k8s"
  #是否运行没有标签的项目
  runUntagged: true
  #开启docker in docker
  privileged: true
  cache: {}
  builds: {}
  services: {}
  helpers: {}
securityContext:
  runAsUser: 100
  fsGroup: 65533
resources: {}
affinity: {}
nodeSelector: {}
tolerations: []
hostAliases: []
podAnnotations: {}
podLabels: {}
secrets: []
configMaps: {}

重要参数列表

gitlabUrlhttp://192.168.10.9/
runnerRegistrationTokenrunner注册toke
terminationGracePeriodSeconds:当停止管道时等待其他作业终止时间: 3600
concurrent:最大并发作业数量 10
checkInterval:新作业检查时隔 30
executor执行器类型 : kubernetes
locked是否锁定 false
tags你的"k8s-runner,k8s"
runUntagged是否运行没有标签的项目 true
privileged开启docker in docker
个人比较喜欢yaml类型的,所以我生成yaml文件执行
helm template --namespace gitlab  gitlab-runner -f gitlab-runn.yaml gitlab/gitlab-runner > runner-manifest.yaml
#执行
kubectl -n gitlab apply -f runner-manifest.yaml

在这里插入图片描述

最后配置连接k8s的api

  • 1 设置全局变量
  • 2 在左侧导航栏中,选择Settings > CI / CD。
  • 3 单击Variables右侧的Expand。添加GitLab Runner可用的环境变量。本示例中,添加以下三个变量。
  • REGISTRY_USERNAME:镜像仓库用户名。

  • REGISTRY_PASSWORD:镜像仓库密码。

  • kube_config:KubeConfig的编码字符串。

  • 执行以下命令生成KubeConfig的编码字符串

echo $(cat ~/.kube/config | base64) | tr -d " "

在这里插入图片描述

应用部署阶段

deploy:
  tags:
    - k8s
  #image: rancher/kubectl:v1.23.3
  image: registry.cn-hangzhou.aliyuncs.com/haoshuwei24/kubectl:1.16.6
  stage: deploy
  script:
    - mkdir -p /etc/deploy
    - echo $kube_config |base64 -d > $KUBECONFIG
    - kubectl  get pods -n gitlab

完成yaml

services:
  - docker:19.03.7-dind
  - golang:1.17.8-alpine3.15
  - docker:stable
stages:
  - package
  - build and push docker image
  - deploy
variables:
  KUBECONFIG: /etc/deploy/config
build:
  tags:
    - k8s
  image: golang:1.17.8-alpine3.15
  stage: package
    # 只作用在main分支
  only:
    - main
  script:
    - export GO111MODULE=on
    - export GOPROXY=https://goproxy.cn
    - go mod init app
    - go mod tidy
    - go build .
docker build:
  tags:
    - k8s
  variables:
    DOCKER_HOST: tcp://0.0.0.0:2375
    DOCKER_TLS_CERTDIR: ""

  image: docker:stable
  stage: build and push docker image
  # 只作用在main分支
  only:
    - main
  script:
    - docker build -t test:v01 .

deploy:
  tags:
    - k8s
  #image: rancher/kubectl:v1.23.3
  image: registry.cn-hangzhou.aliyuncs.com/haoshuwei24/kubectl:1.16.6
  stage: deploy

  script:
    - mkdir -p /etc/deploy
    - echo $kube_config |base64 -d > $KUBECONFIG
    - kubectl  get pods -n gitlab

官网参考价:

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:35:20  更:2022-03-06 13:35:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:25:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码