kubernetes实战(十四):k8s持久化部署gitlab集成openLDAP登录

1、基本概念

  使用k8s安装gitlab-ce,采用GlusterFS实现持久化,并集成了openLDAP。

  注意:我公司使用的gitlab是独立于k8s集群之外的。

 

2、安装部署

  最一开始使用的是helm安装gitlab,网上的文档应该全部都是使用的这个chart:https://github.com/helm/charts/tree/master/stable/gitlab-ce

  但是这个chart已经被弃用,并推荐我们使用官方的chart

  官方chart:https://docs.gitlab.com/ee/install/kubernetes/gitlab_chart.html

  我在使用官方chart部署完成以后,发现启动的容器太多,就放弃了这个方式,使用yaml文件部署。

  下载yaml文件:

git clone https://github.com/dotbalo/k8s.git
[root@k8s-master01 gitlab]# pwd
/root/k8s/gitlab
[root@k8s-master01 gitlab]# ls
gitlab-rc.yml  gitlab-svc.yml  postgresql-rc.yml  postgresql-svc.yml  redis-rc.yml  redis-svc.yml
...

  修改对应的配置:

  主要修改每个rc的namespace,使用的持久化存储方式(当前yaml使用的GFS动态存储)

  修改gitlab-rc.yml里面的env,对应的LDAP信息和SMTP信息等

  修改traefik的域名

  创建gitlab

[root@k8s-master01 gitlab]# kubectl apply -f .
[root@k8s-master01 gitlab]# kubectl get po,svc,pvc -n public-service
NAME                   READY     STATUS    RESTARTS   AGE
pod/gitlab-cctr6       1/1       Running   2          37m
pod/postgresql-c6trh   1/1       Running   1          37m
pod/redis-b6vfk        1/1       Running   0          3h

NAME                                      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                     AGE
service/gitlab                            ClusterIP   10.109.163.143   <none>        80/TCP,22/TCP               24m
service/gitlab-balancer                   NodePort    10.108.77.162    <none>        80:30049/TCP,22:30347/TCP   14m
service/glusterfs-dynamic-gitlab-gitlab   ClusterIP   10.102.192.68    <none>        1/TCP                       59m
service/glusterfs-dynamic-gitlab-pg       ClusterIP   10.96.14.147     <none>        1/TCP                       37m
service/glusterfs-dynamic-gitlab-redis    ClusterIP   10.106.253.41    <none>        1/TCP                       1h
service/postgresql                        ClusterIP   10.104.102.20    <none>        5432/TCP                    3h
service/redis                             ClusterIP   10.97.174.50     <none>        6379/TCP                    3h

NAME                                  STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS     AGE
persistentvolumeclaim/gitlab-gitlab   Bound     pvc-b8249829-f6bf-11e8-9640-000c298bf023   5Gi        RWX            gluster-heketi   59m
persistentvolumeclaim/gitlab-pg       Bound     pvc-b40b6227-f6c2-11e8-9640-000c298bf023   5Gi        RWX            gluster-heketi   37m
persistentvolumeclaim/gitlab-redis    Bound     pvc-28d0276d-f6af-11e8-8d2c-000c293bfe27   3Gi        RWX            gluster-heketi   2h

  等待全部pods启动成功后,访问gitlab,报错解决

 

3、访问

  默认账号密码:root/gitlab

  语言更改,注意:此时翻译是实验性的,更改后需要重新登录

   使用LDAP登录,均使用邮箱登录

 

 

  参考文档:https://github.com/sameersbn/docker-gitlab

 

4、创建项目

  我公司一个项目下有很多子项目,所以首先创建一个群组:

  创建项目

  添加README

 

  添加用户权限

  登录至该用户可查看到此项目

  添加SSH Key

  如果没有Key需要使用ssh-keygen -t rsa -C "your@email.com"生成对应的Key。

 5、拉取项目

 

   创建分支

 

   克隆代码,注意此时需要更改git的地址,因为ssh端口并非22,可以通过service查看nodeport的端口

λ git clone ssh://git@gitlab.xxx.net:32455/platform/app1.git
Cloning into 'app1'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
Checking connectivity... done.

D:\code
λ cd app1\

D:\code\app1 (master)
λ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/app1-develop
  remotes/origin/master

D:\code\app1 (master)
λ git checkout app1-develop
Branch app1-develop set up to track remote branch app1-develop from origin.
Switched to a new branch 'app1-develop'

D:\code\app1 (app1-develop)
λ touch.exe testfile

D:\code\app1 (app1-develop)
λ git add .

D:\code\app1 (app1-develop)
λ git commit -am "create a test file"
[app1-develop 9050e35] create a test file
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 testfile

D:\code\app1 (app1-develop)
λ git push origin app1-develop
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 278 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote:
remote: To create a merge request for app1-develop, visit:
remote:   http://gitlab.xxx.net/platform/app1/merge_requests/new?merge_request%5Bsource_branch%5D=app1-develop remote:
To ssh://git@gitlab.xxx.net:32455/platform/app1.git
   0a63d86..9050e35  app1-develop -> app1-develop

  查看文件

  协同开发,同样方式将其他用户加入此项目

  克隆代码,并修改文件

[root@k8s-node02 ~]# git clone ssh://git@gitlab.xxx.net:32455/platform/app1.git
Cloning into 'app1'...
The authenticity of host '[gitlab.xxx.net]:32455 ([192.168.20.10]:32455)' can't be established.
ECDSA key fingerprint is SHA256:l6BYlMWpAWyXx/f5oTG8lK4JQvG9C2ZZ9opqdQZfIuc.
ECDSA key fingerprint is MD5:5b:b4:04:68:26:53:2e:ba:fe:f8:99:6c:8f:d3:fa:51.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[gitlab.xxx.net]:32455,[192.168.20.10]:32455' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (6/6), done.
[root@k8s-node02 ~]# cd app1/
[root@k8s-node02 app1]# ls
README.md
[root@k8s-node02 app1]# git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/app1-develop
  remotes/origin/master
[root@k8s-node02 app1]# git checkout app1-develop
Branch app1-develop set up to track remote branch app1-develop from origin.
Switched to a new branch 'app1-develop'
[root@k8s-node02 app1]# ls
README.md  testfile
[root@k8s-node02 app1]# echo "add something" >> testfile 
[root@k8s-node02 app1]# git add .
[root@k8s-node02 app1]# git commit -am "add someting to testfile"
[app1-develop 69d693c] add someting to testfile
 1 file changed, 1 insertion(+)
[root@k8s-node02 app1]# git push origin app1-develop
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 305 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: 
remote: To create a merge request for app1-develop, visit:
remote:   http://gitlab.xxx.net/platform/app1/merge_requests/new?merge_request%5Bsource_branch%5D=app1-develop
remote: 
To ssh://git@gitlab.xxx.net:32455/platform/app1.git
   9050e35..69d693c  app1-develop -> app1-develop

 

 

展开阅读全文

Git 实用技巧

11-24
这几年越来越多的开发团队使用了Git,掌握Git的使用已经越来越重要,已经是一个开发者必备的一项技能;但很多人在刚开始学习Git的时候会遇到很多疑问,比如之前使用过SVN的开发者想不通Git提交代码为什么需要先commit然后再去push,而不是一条命令一次性搞定; 更多的开发者对Git已经入门,不过在遇到一些代码冲突、需要恢复Git代码时候就不知所措,这个时候哪些对 Git掌握得比较好的少数人,就像团队中的神一样,在队友遇到 Git 相关的问题的时候用各种流利的操作来帮助队友于水火。 我去年刚加入新团队,发现一些同事对Git的常规操作没太大问题,但对Git的理解还是比较生疏,比如说分支和分支之间的关联关系、合并代码时候的冲突解决、提交代码前未拉取新代码导致冲突问题的处理等,我在协助处理这些问题的时候也记录各种问题的解决办法,希望整理后通过教程帮助到更多对Git操作进阶的开发者。 本期教程学习方法分为“掌握基础——稳步进阶——熟悉协作”三个层次。从掌握基础的 Git的推送和拉取开始,以案例进行演示,分析每一个步骤的操作方式和原理,从理解Git 工具的操作到学会代码存储结构、演示不同场景下Git遇到问题的不同处理方案。循序渐进让同学们掌握Git工具在团队协作中的整体协作流程。 在教程中会通过大量案例进行分析,案例会模拟在工作中遇到的问题,从最基础的代码提交和拉取、代码冲突解决、代码仓库的数据维护、Git服务端搭建等。为了让同学们容易理解,对Git简单易懂,文章中详细记录了详细的操作步骤,提供大量演示截图和解析。在教程的最后部分,会从提升团队整体效率的角度对Git工具进行讲解,包括规范操作、Gitlab的搭建、钩子事件的应用等。 为了让同学们可以利用碎片化时间来灵活学习,在教程文章中大程度降低了上下文的依赖,让大家可以在工作之余进行学习与实战,并同时掌握里面涉及的Git不常见操作的相关知识,理解Git工具在工作遇到的问题解决思路和方法,相信一定会对大家的前端技能进阶大有帮助。
©️2020 CSDN 皮肤主题: 精致技术 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值