在k8s中使用cert-manager部署gitlab集群

写在前面的话:前面有详细的分享过在k8s集群中部署gitlab,不过当时使用gitlab的访问证书是阿里云上免费的ssl证书,今天特意专门介绍下另外一种基于cert-manager发布自签证书的方式实现部署gitlab到k8s集群中。

往期gitlab部署系列如:

环境信息

  • k8s集群版本:v1.24.14
  • containerd版本:containerd containerd.io 1.6.21 3dce8eb055cbb6872793272b4f20ed16117344f8
  • gitlab版本:16.3.6
  • helm版本:v3.10.2

文章目录

    • 环境信息
    • [1. 部署k8s集群版本](#1. 部署k8s集群版本)
    • [2. 添加gitlab的repo 源](#2. 添加gitlab的repo 源)
    • [3. 拉取目标版本的gitlab charts包](#3. 拉取目标版本的gitlab charts包)
      • [3.1 gitlab版本和charts的版本对应信息](#3.1 gitlab版本和charts的版本对应信息)
      • [3.2 修改values.yaml文件](#3.2 修改values.yaml文件)
    • [4. 部署](#4. 部署)
      • [4.1 修改gitlab的nginx-ingress为`NodePort`](#4.1 修改gitlab的nginx-ingress为NodePort)
    • [5. 验证](#5. 验证)

1. 部署k8s集群版本

参考 基于helm的方式在k8s集群中部署gitlab中的5. 部署k8s集群即可

2. 添加gitlab的repo 源

参考 基于helm的方式在k8s集群中部署gitlab中的6.1 添加gitlab的helm源即可

3. 拉取目标版本的gitlab charts包

3.1 gitlab版本和charts的版本对应信息

bash 复制代码
helm fetch gitlab-jh/gitlab --version 7.3.6
tar -xf gitlab-7.3.6.tgz
mv gitlab gitlab-7.3.6-certmanager
cd gitlab-7.3.6-certmanager

3.2 修改values.yaml文件

本地尽可能精简配置,因为只需要修改如下信息

cat values.yaml

bash 复制代码
global:
  ...
  ...
  # 域名配置
  hosts:
    domain: bdeet.top
    hostSuffix:
    https: true
    externalIP:
    ssh:
      name: gitlabcm.bdeet.top
    gitlab:
      name: gitlabcm.bdeet.top
    minio:
      name: miniocm.bdeet.top
    registry:
      name: registrycm.bdeet.top
    tls: {}
    smartcard: {}
    kas: {}
    pages: {}
  # 禁用kas
  kas:
    enabled: false
...
...
# 启动certmanager-issuer的emails
certmanager-issuer:
  email: wkx_0422@163.com
...
...
# 禁用prometheus
prometheus:
  install: false
...
...
# 禁用gitlab-runner
gitlab-runner:
  install: false

4. 部署

bash 复制代码
kubectl create ns glcm
helm install glcm gitlab-jh/gitlab --version 7.3.6 --timeout 600s --values values.yaml -n glcm

4.1 修改gitlab的nginx-ingress为NodePort

说明:这里之所以要修改gitlab的nginx-ingress的访问方式,是因为我们在k8s集群是两台虚拟机,因此通过将LoadBlalancer的方式改成NodePort的方式,但同时会带来另外一个问题,就是我们在dns做域名解析的时候,没有办法做到将gitlab的web端、minio、registry的域名解析到IP:PORT的方式,而由于已经是NodePort的暴露方式,因此暂定集群的node某个节点作为解析的ip,同时我们在浏览器中访问gitlab的时候,我们对应的加上nodeport的端口就可以,格式为https://domian_name:NodePort。

修改前

bash 复制代码
kubectl edit svc glcm-nginx-ingress-controller -n glcm
bash 复制代码
...
...
  sessionAffinity: None
  type: NodePort #由LoadBalancer改为NodePort
...
...

修改后

5. 验证



相关推荐
colinu9 小时前
Create gitlab-runner
gitlab
无言听风雨丶9 小时前
Kubernetes GitOps 持续交付实战:用 Argo CD 让 Git 成为集群事实源
git·elasticsearch·kubernetes
无言听风雨丶19 小时前
Kubernetes 控制平面深度剖析:从 kubectl apply 到 etcd 写入的全链路
平面·kubernetes·etcd
openFuyao20 小时前
openFuyao x 复旦大学软件工程实验室 Panel 回顾:Agentic时代,集群调度技术体系将如何演进?
kubernetes·openfuyao
螺蛳粉 螺蛳粉21 小时前
第 05 篇:etcd 深入:Raft 共识、watch 机制与快照备份恢复实战(底座认知 05)
docker·云原生·容器·kubernetes·etcd·分布式存储·kube-apiserver
相思难忘成疾1 天前
从零搭建 Kubernetes 1.30 集群:kubeadm 部署一主多从实战(RHEL 9.3 + Docker + flannel)
linux·运维·kubernetes
weirong1 天前
给 K8s 加一个自动值班员:分级故障自愈引擎
kubernetes
云和数据.ChenGuang1 天前
Python 闭包详解:从原理到实战
linux·开发语言·人工智能·python·kubernetes
weirong1 天前
为什么 HPA 会震荡?手写一个带冷却窗口的伸缩决策引擎
kubernetes
-星空下无敌1 天前
Windows Docker K8s 安装部署Naocs ,SpringBoot 3.x 4.x 整合Naocs 版本兼容 配置中心、服务注册与发现
windows·docker·nacos·kubernetes·springboot·alibaba