ingress暴露udp之coredns外部使用

92 篇文章 6 订阅
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.2.0/deploy/static/provider/baremetal/deploy.yaml

vim 编辑deploy.yaml
添加参数

- --udp-services-configmap=$(POD_NAMESPACE)/udp-services

在这里插入图片描述
再添加
在这里插入图片描述

 kubectl apply -f deploy.yaml
# cat udp.yaml 
apiVersion: v1
kind: ConfigMap
metadata:
 name: udp-services
 namespace: ingress-nginx
data:
 53: "kube-system/kube-dns:53"

或者以下方式
修改svc暴露tcp

tee tcp.yaml <<-'EOF'
apiVersion: v1
kind: Service
metadata:
 labels:
   app.kubernetes.io/component: controller
   app.kubernetes.io/instance: ingress-nginx
   app.kubernetes.io/name: ingress-nginx
   app.kubernetes.io/part-of: ingress-nginx
   app.kubernetes.io/version: 1.2.0
 name: ingress-nginx-controller
 namespace: ingress-nginx
 annotations:
   lb.kubesphere.io/v1alpha1: openelb
   protocol.openelb.kubesphere.io/v1alpha1: layer2
   eip.openelb.kubesphere.io/v1alpha2: eip-pool

spec:
 externalTrafficPolicy: Cluster
 ports:
   - name: http
     port: 80
     protocol: TCP
     targetPort: http
   - name: https
     port: 443
     protocol: TCP
     targetPort: https
 selector:
   app.kubernetes.io/component: controller
   app.kubernetes.io/instance: ingress-nginx
   app.kubernetes.io/name: ingress-nginx
 type: LoadBalancer
 loadBalancerIP: 172.18.4.14
EOF

修改svc暴露udp

tee udp.yaml <<-'EOF'
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
    app.kubernetes.io/version: 1.2.0
  name: ingress-nginx-controller-lb
  namespace: ingress-nginx
  annotations:
    lb.kubesphere.io/v1alpha1: openelb
    protocol.openelb.kubesphere.io/v1alpha1: layer2
    eip.openelb.kubesphere.io/v1alpha2: eip-pool

spec:
  externalTrafficPolicy: Cluster
  ports:
    - name: dns
      port: 53
      targetPort: 53
      protocol: UDP
  selector:
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/name: ingress-nginx
  type: LoadBalancer
  #loadBalancerIP: 172.18.4.14
EOF

在这里插入图片描述
客户端配置修改域名IP

# cat /etc/resolv.conf
nameserver 172.18.1.147

测试解析

# nslookup www.qq.com
Server:		172.18.1.147
Address:	172.18.1.147#53

www.qq.com	canonical name = ins-r23tsuuf.ias.tencent-cloud.net.
Name:	ins-r23tsuuf.ias.tencent-cloud.net
Address: 121.14.77.201
Name:	ins-r23tsuuf.ias.tencent-cloud.net
Address: 121.14.77.221

coredns添加一个域名

kubectl edit cm -n kube-system coredns

添加如下
        hosts {
          172.18.1.148  jsj.jsj.com
          fallthrough
        }

在这里插入图片描述

重启dns生效
kubectl  -n kube-system  rollout restart deployment coredns

测试使用域名访问服务

tee test-domain.yaml<<-‘EOF’
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-wildcard-host
  annotations:
    kubernetes.io/ingress.class: nginx
    kubernetes.io/elb.port: '80'
spec:
  rules:
  - host: "jsj.jsj.com"
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: mygin-v1
            port:
              number: 80
EOF

客户端修改了dns服务器ip 172.18.1.148,直接可以访问

# while true; do curl jsj.jsj.com/sys; sleep 0.2; done
hosts:mygin-v1-6c57fc598-6nq95
hosts:mygin-v1-6c57fc598-6nq95
hosts:mygin-v1-6c57fc598-x9lgf
hosts:mygin-v1-6c57fc598-x9lgf
hosts:mygin-v1-6c57fc598-dlp2j
hosts:mygin-v1-6c57fc598-6nq95
hosts:mygin-v1-6c57fc598-6nq95
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值