Kubernetes部署gitlab
阿新 • • 發佈:2022-05-10
環境
centos 7.9
k8s 1.24
containerd 1.6.4
一、安裝postgresql
vim gitlab-postgresql.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: gitlab-postgresql namespace: ops labels: name: postgresql spec: selector: matchLabels: name: postgresql template: metadata: name: postgresql labels: name: postgresql spec: containers: - name: postgresql image: sameersbn/postgresql:12-20200524 imagePullPolicy: IfNotPresent env: - name: DB_USER value: gitlab - name: DB_PASS value: passw0rd - name: DB_NAME value: gitlab_production - name: DB_EXTENSION value: 'pg_trgm,btree_gist' ports: - name: postgres containerPort: 5432 volumeMounts: - mountPath: /var/lib/postgresql name: data livenessProbe: exec: command: - pg_isready - -h - localhost - -U - postgres initialDelaySeconds: 30 timeoutSeconds: 5 readinessProbe: exec: command: - pg_isready - -h - localhost - -U - postgres initialDelaySeconds: 5 timeoutSeconds: 1 volumes: - name: data persistentVolumeClaim: claimName: gitlab-postgresql-pvc --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: gitlab-postgresql-pvc namespace: ops spec: #storageClassName: "managed-nfs-storage" accessModes: - ReadWriteOnce resources: requests: storage: 20Gi --- apiVersion: v1 kind: Service metadata: name: postgresql namespace: ops labels: name: postgresql spec: ports: - name: postgres port: 5432 targetPort: postgres selector: name: postgresql
二、安裝redis
vim gitlab-redis.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: gitlab-redis namespace: ops labels: name: redis spec: selector: matchLabels: name: redis template: metadata: name: redis labels: name: redis spec: containers: - name: redis image: redis:6.2.6 imagePullPolicy: IfNotPresent ports: - name: redis containerPort: 6379 volumeMounts: - mountPath: /var/lib/redis name: data livenessProbe: exec: command: - redis-cli - ping initialDelaySeconds: 30 timeoutSeconds: 5 readinessProbe: exec: command: - redis-cli - ping initialDelaySeconds: 30 timeoutSeconds: 1 volumes: - name: data persistentVolumeClaim: claimName: gitlab-redis-pvc --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: gitlab-redis-pvc namespace: ops spec: # storageClassName: "managed-nfs-storage" accessModes: - ReadWriteOnce resources: requests: storage: 20Gi --- apiVersion: v1 kind: Service metadata: name: redis namespace: ops labels: name: redis spec: ports: - name: redis port: 6379 targetPort: redis selector: name: redis
三、安裝gitlab
vim gitlab.yaml
一定要等postgresql和redis Running之後在安裝gitlab
apiVersion: apps/v1 kind: Deployment metadata: name: gitlab namespace: ops labels: name: gitlab spec: selector: matchLabels: name: gitlab template: metadata: name: gitlab labels: name: gitlab spec: initContainers: - name: fix-permissions image: busybox imagePullPolicy: IfNotPresent command: ["sh", "-c", "chown -R 1000:1000 /home/git/data"] securityContext: privileged: true volumeMounts: - name: data mountPath: /home/git/data containers: - name: gitlab image: sameersbn/gitlab:14.9.3 imagePullPolicy: IfNotPresent env: - name: TZ value: Asia/Kolkata - name: GITLAB_TIMEZONE value: Beijing - name: GITLAB_SECRETS_DB_KEY_BASE value: long-and-random-alpha-numeric-string - name: GITLAB_SECRETS_SECRET_KEY_BASE value: long-and-random-alpha-numeric-string - name: GITLAB_SECRETS_OTP_KEY_BASE value: long-and-random-alpha-numeric-string - name: GITLAB_ROOT_PASSWORD value: admin321 - name: GITLAB_ROOT_EMAIL value: - name: GITLAB_HOST value: 'gitlab' - name: GITLAB_PORT value: "80" - name: GITLAB_SSH_PORT value: "22" - name: GITLAB_NOTIFY_ON_BROKEN_BUILDS value: "true" - name: GITLAB_NOTIFY_PUSHER value: "false" - name: GITLAB_BACKUP_SCHEDULE value: daily - name: GITLAB_BACKUP_TIME value: 01:00 - name: DB_TYPE value: postgres - name: DB_HOST value: postgresql - name: DB_PORT value: "5432" - name: DB_USER value: gitlab - name: DB_PASS value: passw0rd - name: DB_NAME value: gitlab_production - name: REDIS_HOST value: redis - name: REDIS_PORT value: "6379" ports: - name: http containerPort: 80 - name: ssh containerPort: 22 volumeMounts: - mountPath: /home/git/data name: data readinessProbe: httpGet: path: / port: 80 initialDelaySeconds: 180 timeoutSeconds: 1 volumes: - name: data persistentVolumeClaim: claimName: gitlab-data-pvc --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: gitlab-data-pvc namespace: ops spec: # storageClassName: "managed-nfs-storage" accessModes: - ReadWriteOnce resources: requests: storage: 20Gi --- apiVersion: v1 kind: Service metadata: name: gitlab namespace: ops labels: name: gitlab spec: type: NodePort ports: - name: http port: 80 targetPort: http nodePort: 30006 - name: ssh port: 22 targetPort: ssh selector: name: gitlab
四、訪問
http://nodeip:30006
root/admin321