GitLab
创建命名空间
创建名称cicd,保持干净,便于区分
kubectl create namespace cicd
创建 PV 和 PVC 的 YAML 文件
在node2节点上创建目录
mkdir -p /data/gitlab
chmod 777 /data/gitlab # 测试环境可宽松,生产需更严格
回到控制节点创建yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: gitlab-pv
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: "" # 空字符串表示不绑定到任何 StorageClass
local:
path: /data/gitlab # 节点上的目录
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- node2 # 替换为您的节点名称
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gitlab-pvc
namespace: cicd
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
storageClassName: "" # 匹配 PV 的空字符串
kubectl apply -f gitlab-pv-pvc.yaml
检查状态
kubectl get pv -n cicd
kubectl get pvc -n cicd gitlab-pvc
两者都应显示 Bound
准备配置文件 gitlab-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: gitlab
namespace: cicd
labels:
app: gitlab
spec:
replicas: 1
selector:
matchLabels:
app: gitlab
template:
metadata:
labels:
app: gitlab
spec:
containers:
- name: gitlab
image: gitlab/gitlab-ce:latest
ports:
- containerPort: 80
- containerPort: 22
env:
- name: GITLAB_OMNIBUS_CONFIG
value: |
external_url 'http://172.30.30.137:30080'
gitlab_rails['gitlab_shell_ssh_port'] = 30022
volumeMounts:
- name: gitlab-data
mountPath: /var/opt/gitlab
- name: gitlab-logs
mountPath: /var/log/gitlab
- name: gitlab-config
mountPath: /etc/gitlab
resources:
requests:
memory: "2Gi" #如果内存充足,一定要给大!!!
cpu: "1"
limits:
memory: "4Gi"
cpu: "2"
volumes:
- name: gitlab-data
persistentVolumeClaim:
claimName: gitlab-pvc # 引用刚才创建的 PVC
- name: gitlab-logs
emptyDir: {}
- name: gitlab-config
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: gitlab
namespace: cicd
spec:
type: NodePort
ports:
- name: web
port: 80
targetPort: 80
nodePort: 30080
- name: ssh
port: 22
targetPort: 22
nodePort: 30022
selector:
app: gitlab
应用并检查
# 应用配置
kubectl apply -f gitlab-deploy.yaml
# 查看 Pod 状态(刚启动需要几分钟拉取镜像)
kubectl get pods -n cicd -w
# 查看 Service
kubectl get svc -n cicd
进入容器查看初始密码
kubectl exec -n cicd -it deployment/gitlab -- cat /etc/gitlab/initial_root_password
如果服务起不来,可以重置一下
kubectl exec -n cicd deployment/gitlab -- gitlab-ctl reconfigure
0 条评论
发表评论需要 登录
还没有账号?立即注册