这节课我们继续来配置gitlab相关的服务。

    增加gitlab在k8s的内部解析
    为什么这么做呢,这里总结了两点原因:

    优化gitlab网络通信,对于runner要调用gitlab服务来说,直接走内部地址速度更快
    如果是在用阿里云的同学,采用在k8s上部署gitlab的话,那么k8s内部服务比如runner是不能通过同集群前面的公网入口SLB来请求访问的,这里阿里云自身网络架构原因,这个时候我们只需要做如下配置即可完美解决

    # kubectl -n kube-system get configmaps coredns  -o yaml
    apiVersion: v1
    data:
      Corefile: |
        .:53 {
            errors
            health
            ready
            log
            rewrite stop {
              name regex git.boge.com gitlab.gitlab-ver130806.svc.cluster.local
              answer name gitlab.gitlab-ver130806.svc.cluster.local git.boge.com
            }
    
            kubernetes cluster.local in-addr.arpa ip6.arpa {
    
              pods verified
              fallthrough in-addr.arpa ip6.arpa
            }
            autopath @kubernetes
            prometheus :9153
            forward . /etc/resolv.conf
            cache 30
            loop
            reload
            loadbalance
        }
    kind: ConfigMap
    metadata:
      name: coredns
      namespace: kube-system

    增加ssh端口转发
    我们要保持所有开发人员能使用默认的22端口来通过ssh拉取代码,那么就需要做如下端口转发配置

    注意配置此转发前,需要将对应NODE的本身ssh连接端口作一下修改,以防后面登陆不了该机器

    iptables -t nat -A PREROUTING -d 10.0.1.204 -p tcp --dport 22 -j DNAT --to-destination 10.0.1.204:31755

    删除上面创建的这一条规则,将-A换成-D即可

    iptables -t nat -nvL PREROUTING

    接着我们找一台机器,这里我们选取10.0.1.201这台机器,加一条本地hosts 10.0.1.204 git.boge.com,来试下推送gitlab代码仓库有无问题,详细操作见本节同名视频课程,希望大家能对着视频自己动手操作一遍,理解上面这些配置的含义,后面可以举一反三,在k8s的其他服务也可以这么来做,达到访问更优的效果。

    文档更新时间: 2021-07-28 17:07   作者:李延召