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,并进行基本的配置。