• coreDNS域名无法解析问题


    问题: 在pod内无法解析域名
    
    
    解决:
    
    busybox的镜像有bug,导致ping可以解析,但是nslookup无法解析
    
    kubectl run -it --rm --image=infoblox/dnstools dns-client
    
    
    换成上面的就可以,实在解决不了再看下面的
    
    
    dnstools# nslookup kubernetes
    
    
    
    
    方式一:
    
    创建coredns.yaml  要用hostwork模式,hostwork就是用的宿主机的 服务器IP端口
    
    cluster-dns 指定成宿主机的
    
    然后重启kubelet
    
    然后重新创建pod
    
    修改/etc/resolv.conf
    
    
    
    
    
    
    [root@lab3 kubernetes]# kubectl get po -o wide -n kube-system
    NAME                       READY     STATUS    RESTARTS   AGE       IP           NODE
    coredns-6d9f9c4fc9-2h652   1/1       Running   0          1h        10.1.1.111   10.1.1.111
    coredns-6d9f9c4fc9-6prhs   1/1       Running   0          1h        10.1.1.68    10.1.1.68
    
    
    修改三台的 宿主机的 resolv.conf   都改成 10.1.1.111
    [root@lab2 kubernetes]# cat /etc/resolv.conf 
    # Generated by NetworkManager
    search openstacklocal
    nameserver 10.1.1.111
    
    
    修改三台的,改成各自对应的宿主机的ip地址
    [root@lab2 kubernetes]# cat kubelet
    KUBELET_HOSTNAME="--hostname-override=10.1.1.68"
    KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1"
    KUBELET_CONFIG="--config=/etc/kubernetes/kubelet-config.yml"
    KUBELET_ARGS="--bootstrap-kubeconfig=/etc/kubernetes/kubelet-bootstrap.conf --kubeconfig=/etc/kubernetes/kubelet.conf --cert-dir=/etc/kubernetes/pki --network-plugin=cni --cni-bin-dir=/opt/cni/bin --cni-conf-dir=/etc/cni/net.d --cluster-dns=10.1.1.68 --cluster-domain=cluster.local "
    
    
    
    在cul容器内部访问
    [ root@curl-87b54756-tsnwd:/ ]$ curl example-service.default.svc.cluster.local
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
             35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>
    
    
    
    在外部主机访问
    [root@lab2 kubernetes]# curl example-service.default.svc.cluster.local
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
             35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>
    
    
    
    
    
    但是访问下面短的 还是不行
    [root@lab3 kubernetes]# curl example-service  
    curl: (6) Could not resolve host: example-service; Unknown error
    
    解决办法,指点:搜索域有问题,
    他的是搜索域的问题
    
    
    
    
    
    
    
    在busybox里面可以访问短的域名
    
    [root@lab2 kubernetes]# kubectl run -it --rm --image=infoblox/dnstools dns-client
    If you don't see a command prompt, try pressing enter.
    dnstools# 
    dnstools# 
    dnstools# curl example-service 
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
             35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>
    
    
    
    
    方式二:
    
    新版本自然解决:
    
    流程:
    
    1、删除原先coredns的配置
    
    2、部署coredns
    
    3. 删除原先的pod、service、重新创建,
    
    
    
    #!/bin/bash
    wget https://raw.githubusercontent.com/coredns/deployment/master/kubernetes/coredns.yaml.sed
    wget https://raw.githubusercontent.com/coredns/deployment/master/kubernetes/deploy.sh
    chmod +x deploy.sh
    ./deploy.sh -i 10.96.0.10 -d cluster.local. > dns.yaml
    kubectl apply -f dns.yaml;
    
    
    --cluster-dns=10.1.1.8 --cluster-domain=cluster.local"
    
    
    
    在外边访问service ,那是另外一个问题了啊!但是首先你cluster 中 DNS的IP 不应拿hostip 来顶住哦
    
    可以把内部的cluster ip 再用其他的代理 代理出来,里边的还是用 一个clusterip
    
    
    #!/bin/bash
    export http_proxy=
    export https_proxy=
    wget https://raw.githubusercontent.com/coredns/deployment/master/kubernetes/coredns.yaml.sed
    wget https://raw.githubusercontent.com/coredns/deployment/master/kubernetes/deploy.sh
    chmod +x deploy.sh
    ./deploy.sh -i 10.254.0.2 -d cluster.local. > dns.yaml
    kubectl apply -f dns.yaml;
    16:30:50
    
    
    
    
    [root@lab3 kubernetes]# netstat -anp |grep 53
    tcp        0      0 10.1.1.111:10250        10.1.1.8:53506          ESTABLISHED 32337/kubelet       
    tcp6       0      0 :::53                   :::*                    LISTEN      25791/coredns       
    tcp6       0      0 :::9153                 :::*                    LISTEN      25791/coredns       
    udp6       0      0 :::53                   :::*                                25791/coredns       
    unix  2      [ ACC ]     STREAM     LISTENING     15097    653/NetworkManager   /var/run/NetworkManager/private-dhcp
    unix  3      [ ]         STREAM     CONNECTED     20544    653/NetworkManager   
    unix  2      [ ]         DGRAM                    15853    508/systemd-udevd    
    unix  2      [ ]         DGRAM                    20239    653/NetworkManager   
    unix  3      [ ]         STREAM     CONNECTED     20979    653/NetworkManager   
    unix  3      [ ]         STREAM     CONNECTED     20983    653/NetworkManager  
    
    
    
    
    [ root@curl-87b54756-782kr:/ ]$ nslookup example-service
    Server:    10.96.0.10
    Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local
    
    Name:      example-service
    Address 1: 10.104.125.95 example-service.default.svc.cluster.local
    [ root@curl-87b54756-782kr:/ ]$ curl example-service
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
             35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>
  • 相关阅读:
    drf之版本控制
    drf自定义筛选
    drf----分页
    初识drf
    flask源码分析01:框架简介
    Werkzeug之LocalStack源码解析
    Werkzeug之Local源码解析
    threading.local之数据存储隔离
    python之attr
    Python在pycharm中编程时应该注意的问题汇总
  • 原文地址:https://www.cnblogs.com/effortsing/p/10014608.html
Copyright © 2020-2023  润新知