前提

1、jenkins以pod的方式部署在k8s集群中,并通过ingress暴漏服务

#kgp -n devops
NAME                       READY   STATUS    RESTARTS       AGE
jenkins-5869ddbf5c-w9w8d   1/1     Running   1 (117m ago)   11d
 

#kg ingress -n devops
NAME              CLASS   HOSTS                        ADDRESS      PORTS   AGE
jenkins-ingress   nginx   jenkins-local.kubernets.cn   10.0.0.200   80      157d

2、这里说一下我的私有云k8s环境中ingress-nginx-controller的svc类型

#kg svc -n ingress-nginx
NAME                                 TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             LoadBalancer   10.233.92.133   10.0.0.200    80:31630/TCP,443:32161/TCP   204d
 

我是通过MetalLB来实现LoadBalancer类型的,下面是我的配置(关于MetalLB的部署这里就不展示了)

#cat example-layer2-config.yaml 
apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: my-ip-space
      protocol: layer2
      addresses:
      - 10.0.0.200-10.0.0.240 

3、在k8s集群外,通过二进制部署的gitlab

我通过/etc/hosts做的gitlab域名解析(gitlab.xw.com)

#cat /etc/hosts
127.0.0.1 localhost localhost.localdomain
127.0.1.1 ubuntu_1
10.0.0.112 master.cluster.local master 
10.0.0.113 node-1.cluster.local node-1 harbor.xw.local 
10.0.0.114 node-2.cluster.local node-2 
10.0.0.115 node-3.cluster.local node-3 gitlab.xw.com 
10.0.0.116 node-4.cluster.local node-4 
10.0.0.117 node-5.cluster.local node-5 
# Ansible inventory hosts END
10.0.0.200 jenkins-local.kubernets.cn grafana-opera.kubernets.cn prometheus-opera.kubernets.cn alertmanager-opera.kubernets.cn

遇到的问题

在创建jenkins任务中,连接gitlab中的项目时,报错如下:

解决方案

方案1:

把Repository URL中“http://gitlab.xw.com/k8s/hello-world.git”地址改成“http://10.0.0.115/k8s/hello-world.git”即可

此种方案的原因在于:

默认情况下,Kubernetes 中的 Pod 使用集群内的 CoreDNS 来解析域名。CoreDNS 主要负责解析集群内部的服务域名(如 service.namespace.svc.cluster.local),并不会自动解析外部域名

方案2:

在 CoreDNS 中配置转发的配置,也就是修改coredns的configmap文件中的修改forward 字段,来指定 DNS 服务器,用于解析k8s集群外的解析

#kg  configmap coredns  -n kube-system
NAME      DATA   AGE
coredns   1      205d
 

#kg  configmap coredns  -n kube-system

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐