成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

配置自定義DNS服務(wù) 容器云 UK8S

ernest.wang / 3156人閱讀

摘要:在中,的默認(rèn)配置信息如下的配置信息包含以下的插件錯(cuò)誤日志會(huì)以標(biāo)準(zhǔn)輸出的方式打印到容器日志的健康狀況插件是中用來(lái)替代的模塊,將的域名轉(zhuǎn)為的工作由該插件完成,其中常用的參數(shù)作用如下用于設(shè)置的記錄處理模式,如。

配置自定義DNS服務(wù)

本文主要介紹如何在UK8S集群中,使用自定義的DNS服務(wù)。

從Kubernetes 1.11起,CoreDNS取代kube-dns成為默認(rèn)的DNS方案,UK8S目前支持的Kubernetes版本>=1.11,因此本文主要介紹如何修改CoreDNS的配置以達(dá)到使用自定義DNS服務(wù)的目的。

簡(jiǎn)介

CoreDNS是一個(gè)模塊化、插件式的DNS服務(wù)器,其配置文件信息保存在Corefile內(nèi)。UK8S集群管理員可通過(guò)修改ConfigMap,來(lái)配置自定義DNS服務(wù)。

在UK8S中,CoreDNS的默認(rèn)Corefile配置信息如下:

apiVersion: v1
kind: ConfigMap
data:
  Corefile: |
    .:53 {
        errors
        health
        kubernetes cluster.local in-addr.arpa ip6.arpa {
          pods insecure
          upstream 
          fallthrough in-addr.arpa ip6.arpai
          ttl 30
        }
        prometheus :9153
        forward . /etc/resolv.conf {
          policy sequential
        }
        cache 30
        loop
        reload
        loadbalance
    }
metadata:
  name: coredns
  namespace: kube-system

Corefile的配置信息包含以下CoreDNS的插件:

errors: 錯(cuò)誤日志會(huì)以標(biāo)準(zhǔn)輸出的方式打印到容器日志;

health: CoreDNS的健康狀況;

kubernetes: kubernetes插件是CoreDNS中用來(lái)替代kube-dns的模塊,將service的域名轉(zhuǎn)為IP的工作由該插件完成,其中常用的參數(shù)作用如下:

pods POD-MODES: 用于設(shè)置Pod的A記錄處理模式,如1-2-3-4.ns.pod.cluster.local. in A 1.2.3.4。pods disabled為默認(rèn)值,表示不為pod提供dns記錄;pods insecure會(huì)一直返回對(duì)應(yīng)的A記錄,而不校驗(yàn)ns;pods verified會(huì)校驗(yàn)ns是否正確,如果該ns下有對(duì)應(yīng)的pod,則返回A記錄。

upstream [ADDRESS..]: 定義用于解析外部hosts的上游dns服務(wù)器。如果不指定,則CoreDNS會(huì)自行處理,例如使用后面會(huì)介紹到的proxy插件。

fallthrough [ZONE..]: 如果指定此選項(xiàng),則DNS查詢將在插件鏈上傳遞,該插件鏈可以包含另一個(gè)插件來(lái)處理查詢,例如in-addr.arpa。

prometheus: CoreDNS對(duì)外暴露的監(jiān)控指標(biāo),默認(rèn)為http://localhost:9153/metrics。

forward [from to]: 任何不屬于Kubernetes集群內(nèi)部的域名,其DNS請(qǐng)求都將指向forword指定的 DNS 服務(wù)器地址。from一般為".",代表所有域名,to可以為多個(gè),如111.114.114.114 8.8.8.8。需要注意的是,新版本的CoreDNS已forward插件替代proxy插件,不過(guò)使用方法是一致的,如果你的集群是proxy,建議改為forward插件,性能更好。

reload: 允許自動(dòng)加載變化了的Corefile,建議配置,這樣CoreDNS可以實(shí)現(xiàn)熱更新。

其他選項(xiàng)的意義請(qǐng)查看Kubernetes官方文檔,下面我們舉例說(shuō)明下如何修改ConfigMap。

示例為特殊域配置DNS服務(wù)器

假設(shè)我們有一個(gè)ucloudk8s的服務(wù)域,自建的私有DNS Server地址為10.9.10.8,則集群管理員可以執(zhí)行kubectl edit configmap/coredns -n kube-system中添加如下所示的一段規(guī)則,這是個(gè)獨(dú)立的Server Block,我們可以在Corefile里面為不同的域配置不同的Server Block。

ucloudk8s.com:53 {
        errors
        cache 30
        forward . 10.9.10.8
    }

并且,我們不希望使用/etc/resolv.conf里配置的DNS服務(wù)器作為上游服務(wù)器,而是指向自建的DNS Server,只需要直接修改之前提到的upstream和proxy選項(xiàng)即可

upstream 10.9.10.8
forward .  172.16.0.1

修改完畢后的configmap如下:

apiVersion: v1
kind: ConfigMap
data:
  Corefile: |
    .:53 {
        errors
        health
        kubernetes cluster.local in-addr.arpa ip6.arpa {
          pods insecure
          upstream 10.9.10.8
          fallthrough in-addr.arpa ip6.arpa
        }
        prometheus :9153
        forward . 10.9.10.8
        cache 30
        loop
        reload
        loadbalance
        }
    ucloudk8s.com:53 {
        errors
        cache 30
        forward . 10.9.10.8
       }
metadata:
  name: coredns
  namespace: kube-system
驗(yàn)證

我們?cè)谕琕PC下的某臺(tái)云主機(jī)中(請(qǐng)勿在UK8S Node節(jié)點(diǎn)中操作)安裝一個(gè)DNS服務(wù)器,來(lái)驗(yàn)證自定義DNS是否正常工作。

通過(guò)Docker安裝DNS服務(wù)器
docker run -d -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN --name dns-server andyshinn/dnsmasq:2.75
進(jìn)入容器
docker exec -it dns-server /bin/sh
配置上游DNS服務(wù)器
vi /etc/resolv.dnsmasq
nameserver 114.114.114.114
nameserver 8.8.8.8
配置本地解析規(guī)則
vi /etc/dnsmasqhosts
110.110.110.110 baidu.com
修改dnsmasq配置文件,指定使用上述兩個(gè)我們自定義的配置文件,修改下述兩個(gè)選項(xiàng),并重啟容器。
vi /etc/dnsmasq.conf
resolv-file=/etc/resolv.dnsmasq
addn-hosts=/etc/dnsmasqhosts
docker restart dns-server
修改CoreDNS的configmap,添加如下規(guī)則。
baidu.com:53{
  errors
  cache 30
  forward . 10.9.10.8(測(cè)試時(shí)需修改成你的DNS地址)      
 }
進(jìn)入K8S在容器內(nèi)測(cè)試,使用dig命名測(cè)試,可以看到解析地址為110.110.110.110,符合預(yù)期。
bash-4.4# dig baidu.com
; <<>> DiG 9.12.3-P4 <<>> baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39140
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;baidu.com.                     IN      A
;; ANSWER SECTION:
baidu.com.              5       IN      A       110.110.110.110
;; Query time: 4 msec
;; SERVER: 172.17.0.2#53(172.17.0.2)
;; WHEN: Mon May 27 09:11:50 UTC 2019
;; MSG SIZE  rcvd: 63
常見(jiàn)問(wèn)題修改了CoreFile,但解析不成功

首先確認(rèn)CoreFile是否包含了reload插件,如果沒(méi)有包含,需要添加reload,并且重建CoreDNS,使其可以加載到最新的DNS規(guī)則。

其次,通過(guò)kubectl logs COREDNS-POD-NAME -n kube-system查看CoreDNS日志,確認(rèn)CoreDNS是否正常工作,以及DNS配置是否加載成功。

如果依然不能正常工作,在容器或Pod內(nèi)執(zhí)行dig @YOUR-DNS-SERVER-ADDRESS YOUR-DOMAIN,確認(rèn)您的DNS服務(wù)器是否正常工作。

如以上操作皆無(wú)效,請(qǐng)聯(lián)系UCloud技術(shù)支持協(xié)助處理。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/126934.html

相關(guān)文章

  • 拉勾網(wǎng)基于 UK8S平臺(tái)的容器化改造實(shí)踐

    摘要:宋體本文從拉勾網(wǎng)的業(yè)務(wù)架構(gòu)日志采集監(jiān)控服務(wù)暴露調(diào)用等方面介紹了其基于的容器化改造實(shí)踐。宋體此外,拉勾網(wǎng)還有一套自研的環(huán)境的業(yè)務(wù)發(fā)布系統(tǒng),不過(guò)這套發(fā)布系統(tǒng)未適配容器環(huán)境。寫(xiě)在前面 拉勾網(wǎng)于 2019 年 3 月份開(kāi)始嘗試將生產(chǎn)環(huán)境的業(yè)務(wù)從 UHost 遷移到 UK8S,截至 2019 年 9 月份,QA 環(huán)境的大部分業(yè)務(wù)模塊已經(jīng)完成容器化改造,生產(chǎn)環(huán)境中,后臺(tái)管理服務(wù)已全部遷移到 UK8...

    CoorChice 評(píng)論0 收藏0
  • 容器 UK8S服務(wù)發(fā)現(xiàn):Kubernetes重要概念Service(即服務(wù),本文中兩者等同)以

    摘要:介紹本章節(jié)主要為您簡(jiǎn)要介紹中的一個(gè)重要概念即服務(wù),本文中兩者等同,以及的相關(guān)知識(shí)。在每臺(tái)的固定端口上暴露服務(wù),選擇的服務(wù)類(lèi)型,集群會(huì)自動(dòng)創(chuàng)建一個(gè)類(lèi)型的服務(wù),負(fù)責(zé)處理接收到的外部流量。集群外部的可以通過(guò)的方式訪問(wèn)該服務(wù)。Service 介紹本章節(jié)主要為您簡(jiǎn)要介紹 Kubernetes 中的一個(gè)重要概念 Service(即服務(wù),本文中兩者等同),以及ULB的相關(guān)知識(shí)。Service 介紹Serv...

    Tecode 評(píng)論0 收藏0
  • Service 介紹 容器 UK8S

    摘要:介紹介紹介紹是集群中的一個(gè)資源對(duì)象,用于定義如何訪問(wèn)一組帶有相同特征的。下面我們分別介紹下如何通過(guò)在內(nèi)網(wǎng)外網(wǎng)訪問(wèn)。 Service 介紹本篇目錄1. Service 介紹2. ULB 簡(jiǎn)要介紹本章節(jié)主要為您簡(jiǎn)要介紹 Kubernetes 中的一個(gè)重要概念 Service(即服務(wù),本文中兩者等同),以及ULB的相關(guān)知識(shí)。1. Service 介紹Service 是 Kubernetes 集群中...

    ernest.wang 評(píng)論0 收藏2037
  • UK8S 集群常見(jiàn)問(wèn)題 容器 UK8S

    摘要:為什么在節(jié)點(diǎn)直接起容器網(wǎng)絡(luò)不通為什么在節(jié)點(diǎn)直接起容器網(wǎng)絡(luò)不通為什么在節(jié)點(diǎn)直接起容器網(wǎng)絡(luò)不通使用自己的插件,而直接用起的容器并不能使用該插件,因此網(wǎng)絡(luò)不通。 UK8S 集群常見(jiàn)問(wèn)題本篇目錄1. UK8S 完全兼容原生 Kubernetes API嗎?2. UK8S 人工支持3. UK8S對(duì)Node上發(fā)布的容器有限制嗎?如何修改?4. 為什么我的容器一起來(lái)就退出了?5. Docker 如何調(diào)整日...

    ernest.wang 評(píng)論0 收藏1762
  • 容器 UK8S】集群常見(jiàn)問(wèn)題:UK8S創(chuàng)建Pod失敗,使用kubectl describe po

    摘要:集群常見(jiàn)問(wèn)題單個(gè)集群最多能添加多少個(gè)節(jié)點(diǎn)當(dāng)前單個(gè)集群對(duì)應(yīng)節(jié)點(diǎn)數(shù)量可查看集群節(jié)點(diǎn)配置推薦。創(chuàng)建失敗,使用發(fā)現(xiàn)報(bào)錯(cuò)為,是啥原因在創(chuàng)建等資源時(shí),都需要扮演云賬戶的身份調(diào)用來(lái)完成相關(guān)操作。集群內(nèi)可以解析,但無(wú)法聯(lián)通外網(wǎng)拉取數(shù)據(jù)失敗。集群常見(jiàn)問(wèn)題單個(gè)集群最多能添加多少個(gè)節(jié)點(diǎn)?A:當(dāng)前單個(gè)UK8S集群對(duì)應(yīng)節(jié)點(diǎn)數(shù)量可查看集群節(jié)點(diǎn)配置推薦。UK8S完全兼容原生Kubernetes API嗎?A:完全兼容。U...

    Tecode 評(píng)論0 收藏0
  • 容器 UK8S】日志監(jiān)控方案:什么是Prometheus?怎么部署Prometheus?

    摘要:客戶端庫(kù),為需要監(jiān)控的服務(wù)生成相應(yīng)的并暴露給。根據(jù)配置文件,對(duì)接收到的警報(bào)進(jìn)行處理,發(fā)出告警。再創(chuàng)建一個(gè)來(lái)告訴需要監(jiān)控帶有為的背后的一組的。什么是Prometheus關(guān)于PrometheusPrometheus 是一套開(kāi)源的系統(tǒng)監(jiān)控報(bào)警框架。它的設(shè)計(jì)靈感源于 Google 的 borgmon 監(jiān)控系統(tǒng),由SoundCloud 在 2012 年創(chuàng)建,后作為社區(qū)開(kāi)源項(xiàng)目進(jìn)行開(kāi)發(fā),并于 2015 ...

    Tecode 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<