NodeLocal DNSCache

NodeLocal DNSCache 通过在集群上运行一个 DNSCache Daemonset 来提高 clusterDNS 性能和可靠性。相比于纯 CoreDNS 方案,nodelocaldns + CoreDNS 方案能够大幅降低 DNS 查询 timeout 的频次,提升服务稳定性。

nodelocaldns 通过添加 iptables 规则能够接收节点上所有发往 xxx.xxx.xx.xx 的 DNS 查询请求,把针对集群内部域名查询请求路由到 CoreDNS;把集群外部域名请求直接通过 Host 网络发往集群外部 DNS 服务器。

将 nodelocaldns 解析都转发给 coredns

#forward ./etc/resolv.conf指向coredns service ip

#search coredns service ip

$ kubectl get svc coredns -n kube-system

NAME      TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE

coredns   ClusterIP   10.233.0.3   <none>        53/UDP,53/TCP,9153/TCP   28d

#修改nodelocaldns的配置configmap的值

$ kubectl edit cm nodelocaldns -n kube-system

## 将 forward ./etc/resolv.conf 调整为:forward . 10.233.0.3

apiVersion: v1

data:

  Corefile: |

    cluster.local:53 {

        errors

        cache {

            success 9984 30

            denial 9984 5

        }

        reload

        loop

        bind 169.254.25.10

        forward . 10.233.0.3 {

            force_tcp

        }

        prometheus :9253

        health 169.254.25.10:9254

    }

    ...

## 保存、重启、或者手动重启,效果一样

在这里插入图片描述

  • 在 coredns 中添加主机记录
#修改 coredns configmap 文件,添加主机记录

$ kubectl edit cm coredns -n kube-system



....

    }

    kubernetes cluster.local in-addr.arpa ip6.arpa {

       pods insecure

       fallthrough in-addr.arpa ip6.arpa

       ttl 30

    }

    hosts  {

         192.168.100.2  dockerhub.kubekey.local

         fallthrough

    }

    prometheus :9153

....

## 保存或者重启coredns一下进行验证

在这里插入图片描述

配置证书

  • 通过 configmap 加载 CA 证书
    查看 CA 证书的位置,在 Harbor 部署时,查看证书生成的位置及值:
#目录位置: ls /etc/docker/certs.d/

$ cat /etc/docker/certs.d/dockerhub.kubekey.local/ca.crt

-----BEGIN CERTIFICATE-----

MIIDATCCAemgAwIBAgIBADANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDEwtyZWdp

c3RyeS1jYTAeFw0yMjA0MjExNjUzNTJaFw0zMjA0MTgxNjUzNTJaMBYxFDASBgNV

BAMTC3JlZ2lzdHJ5LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA

vs0k1cS3S4L9tvTvJomlMwNN8eGSk8hujGKm6SQHAYicFsNmfYevfthJsufuikIq

ggxwyL9nExr470l4hN31PN/ztIKZh/57IKF6XZrF5Ld3fBxOvVGSTarZraIkxkPe

/N5HfJdAWh5CTKtdsOpal3CmP+6tbRQ6qQN5D9lO97Tid79W8a58jI7FHyeYS08D

VlBjDCip81mI4YsgMaXmatS0HjtLtCvQNsL5Py2KKAhHb+Rd0iepICUT2uUwR1Cu

RpO+FkiAxM8WXF/6IndiIsoC2XCh6pELadcKCNNy5IREC/+JbjveNZOuYU4KPJn5

TYZxzalJ8nWRHpi6neFHAQIDAQABo1owWDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0T

AQH/BAUwAwEB/zAdBgNVHQ4EFgQUtcd+vBgIbcmB8O7ZeSBwFOCPj/QwFgYDVR0R

BA8wDYILcmVnaXN0cnktY2EwDQYJKoZIhvcNAQELBQADggEBABxAVx3Wkfic/SWY

Z1T0kv+zq8NW1YyHDw13mRwcjV+lRI0/WtANEBAbAejmZJkhhz7uc/N9egXF6cOY

PLoxvLXQJGxQKfBqrGkFhAlFt4FWJm0g7fXq/a6Fo/EStRmW9Oio0dFJHQ/F6Lon

DK/1bx0s27JJqBmU4WnmGF1U2prYuJ3/C8mwxWb49K+z1s1sDQQOCp/jt8gabc2R

GAZgcYhIj+HUXAEl14+GhpoLqJbJ5ngVLxz08YDMTGp1pQ8uYeE1m29yTOThMGrC

owVM1fSSHs5UtKQ2/tVcxi5Mf+WUWZr2D2km0dI9BJyXwtQwGKhp3lwJX5e0NTZi

+6a/23U=

-----END CERTIFICATE-----

#界面创建configmap:工作台>企业空间>System-workspace>项目>kubesphere-system>配置>配置字典,新建harbor4shl-ca

在这里插入图片描述

  • 挂载证书
    编辑 ks-apiserver deployment 文件,进行 configmap 的挂载:

在这里插入图片描述
在这里插入图片描述
保存更新。

验证

在这里插入图片描述

  • 创建服务
    在这里插入图片描述
GitHub 加速计划 / ha / harbor
8
3
下载
Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制
最近提交(Master分支:4 个月前 )
a548ab70 Add the field extra_attrs to the p2p preheat policy for the provider to define their specified parameters when preheating. Signed-off-by: chlins <chlins.zhang@gmail.com> 4 天前
e4178753 The export CVE permission should be included in the project scope, as the API relies on project-level judgment. Signed-off-by: wang yan <wangyan@vmware.com> 5 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐