pod部署的jenkins和二进制部署的gitlab,在创建jenkins任务时报错:无法连接仓库
我是通过MetalLB来实现LoadBalancer类型的,下面是我的配置(关于MetalLB的部署这里就不展示了)metadata:data:config: |addresses:我通过/etc/hosts做的gitlab域名解析(gitlab.xw.com)
前提
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
更多推荐
所有评论(0)