在k8s集群中安装gitlab
主要涉及到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
- 点赞
- 收藏
- 分享
- 文章举报
- k8s入门系列之集群安装篇
- 超详细实操教程!在现有K8S集群上安装JenkinsX,极速提升CI/CD体验!
- [k8s]kubespray(ansible)自动化安装k8s集群
- K8S集群安装
- centos7 下google Kubernetes(k8s)集群安装部署
- Kubernetes1.91(K8s)安装部署过程(三)--创建高可用etcd集群
- kubernetes集群的学习——单节点k8s安装
- k8s-V1.6.2离线安装prometheus-operator集群监控
- k8s技术预研3--使用kubeadm安装、配置Kubernetes集群以及进行故障排查的方法
- 在centos 7中安装配置k8s集群的步骤详解
- [k8s]基于Centos7安装kubernetes1.13.2集群
- K8S入门系列之集群yum安装(一)
- k8s入门和集群安装
- 在k8s中安装kafka集群说明
- 在k8s集群中安装配置AlertManager
- 二进制安装Kubernetes(K8s)集群(踩的一个坑)
- 使用kubeadm安装k8s集群故障处理三则