文章目录

K8s上安装gitlab-ce操作如下gitlab-deployment.yml

K8s上安装gitlab-ce

前言   使用pv-pvc来持久化gitlab的数据,配置,日志文件。   pod启动后需要需要修改external_url然后重启pod。

操作如下

mkdir -p /mnt/data01/gitlab

ctr -n k8s.io i pull docker.io/gitlab/gitlab-ce:latest

kubectl label node [node_name] app=devops

kubectl apply -f gitlab-deployment.yml

如果镜像拉取不下来,可以

wget -c http://117.72.10.233/file/gitlab-ce.tgz

ctr -n k8s.io i import gitlab-ce.tgz

Pod起来之后,修改 /mnt/data01/gitlab/conf/gitlab.rb 文件,修改配置然后重启Pod

cat >> /mnt/data01/gitlab/conf/gitlab.rb << 'eof'

external_url 'http://123.60.108.111:30080' ## ip需要修改为访问地址

gitlab_rails['gitlab_ssh_host'] = '123.60.108.111' ## ip需要修改为访问地址

gitlab_rails['gitlab_shell_ssh_port'] = 30022

gitlab_rails['time_zone'] = 'Asia/Shanghai'

gitlab_rails['smtp_enable'] = true

gitlab_rails['smtp_address'] = "smtp.qq.com"

gitlab_rails['smtp_port'] = 465

gitlab_rails['smtp_user_name'] = "1391578633@qq.com"

gitlab_rails['smtp_password'] = "yasfadsfafddfdj" ## 密码为qq的smtp授权码

gitlab_rails['smtp_domain'] = "smtp.qq.com"

gitlab_rails['smtp_authentication'] = "login"

gitlab_rails['smtp_enable_starttls_auto'] = true

gitlab_rails['smtp_tls'] = true

gitlab_rails['gitlab_email_enabled'] = true

gitlab_rails['gitlab_email_from'] = '1391578633@qq.com'

gitlab_rails['gitlab_email_display_name'] = 'gitlab'

gitlab_rails['gitlab_email_reply_to'] = '1391578633@qq.com'

gitlab_rails['gitlab_email_subject_suffix'] = '[gitlab]'

eof

kubectl get pods -n devops

kubectl delete pod [上面的gitlab的podname] -n devops

最后浏览器访问ip:30080即可访问gitlab,账号是root,密码是初始密码执行grep 'Password' /mnt/data01/gitlab/conf/initial_root_password

gitlab-deployment.yml

apiVersion: v1

kind: Namespace

metadata:

name: devops

---

apiVersion: v1

kind: PersistentVolume

metadata:

name: gitlab-pv

spec:

accessModes:

- ReadWriteOnce

capacity:

storage: 50Gi

storageClassName: gitlab-ce

hostPath:

path: /mnt/data01/gitlab

---

apiVersion: v1

kind: PersistentVolumeClaim

metadata:

name: gitlab-pvc

namespace: devops

spec:

accessModes:

- ReadWriteOnce

resources:

requests:

storage: 2Gi

limits:

storage: 50Gi

storageClassName: gitlab-ce

---

apiVersion: apps/v1

kind: Deployment

metadata:

name: gitlab-deployment

namespace: devops

spec:

replicas: 1

selector:

matchLabels:

app: gitlab-ce

template:

metadata:

labels:

app: gitlab-ce

spec:

nodeSelector:

app: devops

containers:

- name: gitlab-ce

image: docker.io/gitlab/gitlab-ce:latest

imagePullPolicy: IfNotPresent

volumeMounts:

- name: gen-dir

mountPath: /var/opt/gitlab

subPath: data

- name: gen-dir

mountPath: /etc/gitlab

subPath: conf

- name: gen-dir

mountPath: /var/log/gitlab

subPath: logs

- name: localtime

mountPath: /etc/localtime

volumes:

- name: gen-dir

persistentVolumeClaim:

claimName: gitlab-pvc

- name: localtime

hostPath:

path: /etc/localtime

---

apiVersion: v1

kind: Service

metadata:

name: gitlab-svc

namespace: devops

spec:

ports:

- name: http

port: 30080

targetPort: 30080

nodePort: 30080

- name: https

port: 443

targetPort: 443

nodePort: 30443

- name: ssh

port: 22

targetPort: 22

nodePort: 30022

type: NodePort

selector:

app: gitlab-ce

相关阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。