您的位置:首页 > 其它

在k8s集群中安装gitlab

2020-01-13 06:38 519 查看

主要涉及到3个应用:Redis、Postgresql、Gitlab 核心程序
1、安装redis
$ docker pull sameersbn/redis
$ vim redis.yaml

apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: redis
namespace: kube-ops
labels:
name: redis
spec:
template:
metadata:
name: redis
labels:
name: redis
spec:
containers:
- name: redis
image: sameersbn/redis
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: 5
timeoutSeconds: 1
volumes:
- name: data
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: redis
namespace: kube-ops
labels:
name: redis
spec:
ports:
- name: redis
port: 6379
targetPort: redis
selector:
name: redis

2、安装 Postgresql
$ docker pull sameersbn/postgresql:10
$ vim postgresql.yaml

apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: postgresql
namespace: kube-ops
labels:
name: postgresql
spec:
template:
metadata:
name: postgresql
labels:
name: postgresql
spec:
containers:
- name: postgresql
image: sameersbn/postgresql:10
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
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
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: postgresql
namespace: kube-ops
labels:
name: postgresql
spec:
ports:
- name: postgres
port: 5432
targetPort: postgres
selector:
name: postgresql

3、安装gitlab
$ docker pull sameersbn/gitlab:11.8.1
提前准备好traefik
gitlab的svc类型是NodePort,把nodePort固定为30022
$ vim gitlab.yaml

apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: gitlab
namespace: kube-ops
labels:
name: gitlab
spec:
template:
metadata:
name: gitlab
labels:
name: gitlab
spec:
containers:
- name: gitlab
image: sameersbn/gitlab:11.8.1
imagePullPolicy: IfNotPresent
env:
- name: TZ
value: Asia/Shanghai
- 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: 465130613@qq.com
- name: GITLAB_HOST
value: gitlab.example.com
- 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
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 180
timeoutSeconds: 5
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
timeoutSeconds: 1
volumes:
- name: data
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: gitlab
namespace: kube-ops
labels:
name: gitlab
spec:
ports:
- name: http
port: 80
targetPort: http
- name: ssh
port: 22
targetPort: ssh
nodePort: 30022
type: NodePort
selector:
name: gitlab
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: gitlab
namespace: kube-ops
annotations:
kubernetes.io/ingress.class: traefik
spec:
rules:
- host: gitlab.example.com
http:
paths:
- backend:
serviceName: gitlab
servicePort: http

4、客户端设置
$ vim /etc/hosts
192.168.1.243 gitlab.example.com gitlab
在浏览器打开:
https://gitlab.example.com
用户名root,密码admin321
$ ssh-keygen
$ cd ~/.ssh/
$ cat id_rsa.pub
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQD9zA9jUP+TZYDorqHCyeeVDrrwNFARg59jQ4cAIDsJGeSOh03oxZJ2hJg2z8sJxRE4o2E1WRgXeQuMCfPV1cAZONnNAkeCbMQyKE4nlxHMXl3jdqtNwPDaEouN/1WR19sMgAFVo7TojotCh5EpZ40YpPwLqT64Ml7YOL8Pz0K0jm9VEzk2bnEpkxlEv/YAU00qM5hisgQ3HdJW7Qbyyj/gqdgogmofNP98FdZt9wUczLwDXMjQM1DWv0Ti0cCp4cu/ggcgzw2X5BxjiLZWgDu6UOk+J54CmPJ+73ASV/gQSiZ9OWICdIjhOJxJYQ5gJEZFT0bxwmVjBVmlQbh3n5P/root@nfs.example.com
将上述内容复制到gitlab中以实现客户端免密登录:
打开https://gitlab.example.com
依次点击projects—your projects—projects name—齿轮图标settings
—repository—Deploy Keys—输入key值—点选Write access allowed
实现所有项目免密登录:
点击左上角的头像----设置----点击左边的SSH keys图标
$ git clone ssh://git@gitlab.example.com:30022/root/project1.git (第一次拉取需要输入yes)
$ cd project1/
$ vim index.html
$ git add .
$ git commit -m “11111”
$ git push origin master

  • 点赞
  • 收藏
  • 分享
  • 文章举报
北三云计算 发布了11 篇原创文章 · 获赞 0 · 访问量 1056 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: