CI/CD:基于kubernetes的Gitlab搭建

1. 项目目标

(1)熟悉使用k8s环境搭建Gitlab

(2)熟练应用Gitlab基本配置

2. 项目准备

2.1. 规划节点

|------------|----------|-------------|
| 主机名 | 主机IP | 节点规划 |
| k8s-master | 10.0.1.1 | kube_master |
| k8s-node1 | 10.0.1.2 | kube_node |
| k8s-node2 | 10.0.1.3 | kube_node |

2.2. 基础准备

系统镜像:CentOS 7.9

**环境准备:**K8S集群

3. 项目实施

3.1. 部署GitLab

3.1.1. 编写GitLab资源清单文件:
复制代码
[root@master ~]# vi gitlab-deploy.yaml 
apiVersion: v1
kind: Service
metadata:
  name: gitlab
spec:
  type: NodePort
  ports:
  - port: 443
    nodePort: 30443
    targetPort: 443
    name: gitlab-443
  - port: 80
    nodePort: 30888
    targetPort: 80
    name: gitlab-80
  selector:
    app: gitlab
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: gitlab
spec:
  selector:
    matchLabels:
      app: gitlab
  revisionHistoryLimit: 2
  template:
    metadata:
      labels:
        app: gitlab
    spec:
      containers:
      - image: gitlab/gitlab-ce:latest
        name: gitlab
        imagePullPolicy: IfNotPresent
        env:
        - name: GITLAB_ROOT_PASSWORD  # 设置root用户密码
          value: admin@123
        - name: GITLAB_PORT
          value: "80"
        ports:
        - containerPort: 443
          name: gitlab-443
        - containerPort: 80
          name: gitlab-80
3.1.2. 部署GitLab:
复制代码
[root@master ~]# kubectl -n devops apply -f gitlab-deploy.yaml
service/gitlab created
deployment.apps/gitlab created
3.1.3. 查看Pod:
复制代码
[root@master ~]# kubectl -n devops get pods -o wide
NAME                      READY   STATUS    RESTARTS      AGE     IP               NODE         NOMINATED NODE   READINESS GATES
gitlab-5fcc866774-779wv   1/1     Running   0             9m28s   172.20.102.145   10.0.1.150   <none>           <none>
jenkins-75b6c4878-flrbm   1/1     Running   2 (16m ago)   13d     172.20.102.144   10.0.1.150   <none>           <none>
3.1.4. 查看GitLab Service:
复制代码
[root@master ~]# kubectl get svc -n devops
NAME      TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)                          AGE
gitlab    NodePort   10.68.140.186   <none>        443:30443/TCP,80:30888/TCP       11m
jenkins   NodePort   10.68.241.36    <none>        8080:30880/TCP,50000:30850/TCP   13d

GitLab启动较慢,可以通过"kubectl logs"查看其启动状态。启动完成后,在Web端访问GitLab(http://master:30888),输入账号root,密码admin@123

3.2. Gitlab基本配置

3.2.1. projects界面

登录之后直接进入到gitlab的project界面。

3.2.2. 汉化gitlab

单击右上角头像->"preferences"->下拉找到"language"->修改为"中文"->"save changes"。

3.2.3. 关闭注册

根据实际情况开启关闭注册,在公网上没关的话,任何人都可以注册,被恶意攻击就麻烦了。

展开"菜单"-> "管理员"->"通用"->取消"启用注册功能"

4. 项目总结

本博客使用kubernetes环境搭建了Gitlab,并进行基本的配置。

相关推荐
maomao大哥闯天下18 小时前
K8s如何实现滚动更新、健康检查与探测机制
docker·容器·kubernetes
张忠琳20 小时前
【kubernetes v1.21】(一)Kubernetes 总览架构深度分析
云原生·架构·kubernetes
maomao大哥闯天下21 小时前
K8s对象deployment、job、service应用详解
java·容器·kubernetes
IT策士21 小时前
第 20 篇 搭建 Kubernetes 实验环境:Minikube 与 kubectl
云原生·容器·kubernetes
JackSparrow4141 天前
使用Ansible批量管理+更新产品环境服务器配置
运维·服务器·ci/cd·kubernetes·自动化·ansible·sre
小哈里1 天前
【K8S】云原生时代的GitOps最佳实践 —— ArgoCD
云原生·kubernetes·云计算·argocd·基础设施
张忠琳1 天前
【kubernetes v1.21】(kube-apiserver 1)kube-apiserver 核心架构与启动流程超深度分析
云原生·架构·kubernetes
IT策士1 天前
第 24 篇 k8s之健康检查:探针机制详解
云原生·容器·kubernetes
牛奶咖啡131 天前
k8s容器编排技术实践——K8s对象deployment应用详解
kubernetes·deployment·deployment是什么·deployment有啥用·deployment优缺点·deployment状态解析·k8s创建资源的方式
IT策士1 天前
第 21 篇 k8s之Pod:最小调度单元与 YAML 详解
云原生·容器·kubernetes