docker和k8s-coredns內(nèi)部域名解析方式
問題
當我在k8s集群中訪問私有代碼服務的時候域名無法解析;
報錯如下:
Could not resolve host: git.XXX
在docker環(huán)境內(nèi)部,當使用CURL來訪問局域網(wǎng)內(nèi)的另外一臺服務器的時候會出現(xiàn)域名;
類似的錯誤如下:
cURL error 6: Could not resolve host
Couldnt resolve host。 The given remote host was not resolved
解決思路
1、針對docker
原因分析:
- Docker容器無法解析局域網(wǎng)內(nèi)的域名,就算本地主機的hosts配置了域名映射也是不行的
- Docker環(huán)境不同于wamp或者Xampp,對于局域網(wǎng)內(nèi)的域名解析,Docker需要到docker內(nèi)部配置hosts文件
解決步驟:
進入docker容器后,在docker文件中,配置域名解析;
- 1: docker exec -it my_web /bin/bash
- 2: vi /etc/hosts
- 3:添加域名解析規(guī)則
2、針對k8s
我們可以通過在 CoreDNS 中添加自定義域名解析來解決這個問題(如果你的域名是外網(wǎng)可以正常解析的就不會出現(xiàn)這個問題了):
kubectl edit cm coredns -n kube-system
通過上面命令修改增加host配置,修改后 Esc :wq! 保存退出
修改完成后,稍等片刻,CoreDNS 就會自動熱加載,我們就可以在集群內(nèi)訪問我們自定義的域名了

總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
利用docker搭建php7和nginx運行環(huán)境全過程(官方鏡像)
docker提供了在服務端分布式的部署應用,這樣的好處是方便維護和升級。下面這篇文章主要給大家介紹了利用docker搭建php7和nginx運行環(huán)境的相關資料,搭建過程中運用的是官方鏡像,需要的朋友可以參考借鑒,下面來一起看看吧。2017-05-05
docker部署訪問postgres數(shù)據(jù)庫的實現(xiàn)方法
本文主要介紹了docker部署訪問postgres數(shù)據(jù)庫的實現(xiàn)方法,文中根據(jù)實例編碼詳細介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
Docker限制容器的內(nèi)存使用大小的實戰(zhàn)指南
在使用 Docker 部署服務時,如果不加限制,某個容器可能因為內(nèi)存泄漏或負載過高,導致主機內(nèi)存被耗盡,拖垮其他容器甚至整個系統(tǒng),所以本文給大家介紹了Docker如何限制容器的內(nèi)存使用大小,需要的朋友可以參考下2026-02-02
在宿主機上執(zhí)行docker容器內(nèi)部的shell或程序方式
這篇文章主要介紹了在宿主機上執(zhí)行docker容器內(nèi)部的shell或程序方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11

