前提条件是已经部署了k8s环境,采用k8s部署gitlab作为devops的测试环境,更加简洁和方便。
1. 准备工作 1.1 创建nfs共享目录在nfs服务器创建共享目录,部署的gitlib使用共享目录来进行持久化,这样不管在哪个节点运行gitlib都没有关系。
# mkdir -p /home/k8s-nfs/gitlab/config # mkdir -p /home/k8s-nfs/gitlab/logs # mkdir -p /home/k8s-nfs/gitlab/data1.2 添加到共享
/home/k8s-nfs/gitlab/config 192.168.17.0/8(rw,no_root_squash) /home/k8s-nfs/gitlab/logs 192.168.17.0/8(rw,no_root_squash) /home/k8s-nfs/gitlab/data 192.168.17.0/8(rw,no_root_squash)1.3 执行更新
# service nfs restart 或者 # exportfs -r2. 部署gitlib 2.1 准备部署文件(gitlib-deploy.yaml)
apiVersion: v1
kind: Service
metadata:
name: gitlab
spec:
type: NodePort
ports:
# Port上的映射端口
- port: 443
targetPort: 443
name: gitlab443
- port: 80
targetPort: 80
name: gitlab80
- port: 22
targetPort: 22
name: gitlab22
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
name: gitlab
imagePullPolicy: IfNotPresent
# 应用的内部端口
ports:
- containerPort: 443
name: gitlab443
- containerPort: 80
name: gitlab80
- containerPort: 22
name: gitlab22
volumeMounts:
# gitlab持久化
- name: gitlab-persistent-config
mountPath: /etc/gitlab
- name: gitlab-persistent-logs
mountPath: /var/log/gitlab
- name: gitlab-persistent-data
mountPath: /var/opt/gitlab
imagePullSecrets:
- name: devops-repo
volumes:
# 使用nfs互联网存储
- name: gitlab-persistent-config
nfs:
server: 192.168.17.81
path: /home/k8s-nfs/gitlab/config
- name: gitlab-persistent-logs
nfs:
server: 192.168.17.81
path: /home/k8s-nfs/gitlab/logs
- name: gitlab-persistent-data
nfs:
server: 192.168.17.81
path: /home/k8s-nfs/gitlab/data
2.2 执行部署
# kubectl apply -f gitlib-deploy.yaml2.3 查看部署结果
# kubectl get deploy NAME READY UP-TO-DATE AVAILABLE AGE gitlab 1/1 1 1 134m
以上说明部署完成。
3. gitlib初始化 3.1 访问登录页面通过查看service映射的端口:
# kubectl get svc -o wide NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR gitlab NodePort 10.10.129.28443:31326/TCP,80:31320/TCP,22:31515/TCP 137m app=gitlab
可以看到映射80端口的节点端口为:31320
通过制定端口访问登录页:
3.2 初始用户名和密码初始用户名为root,初始密码gitlib自动创建,在如下文件中:
/etc/gitlab/initial_root_password
由于是容器部署,所以,需要进入到容器中,找到对应文件,拷贝密码进行登录。文件内容类似:
# WARNING: This value is valid only in the following conditions # 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_passwo # 2. Password hasn't been changed manually, either via UI or via command line. # # If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/ Password: HCsr5VFAp28N*****************= # NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.3.3 登录以后的主界面



