Skip to main content

16 docs tagged with "Docker"

View All Tags

[Kubernetes] DNS Setting When DnsPolicy Is Default

本文跟大家分享一個在實際部屬上遇到的問題,在不同的環境下,採用 dnsPolicy:Default 設定的 Kubernetes Pod 裡面所設定的 DNS Server 卻是完全不同的. 根據實際研究與觀察後,發現這個數字並不是單單的依靠 kubernetes 去處理,實際上也跟 Docker 本身如何去設定容器的 dns 也有關係,這部分就包含了宿主機的 /etc/resolv.conf 以及宿主機上 Docker 運行時的參數. 本文會先介紹這個問題,並且分享解決問題的思路以致於最後可以得到這個結論。

[Kubernetes] DNS Setting with Dockerd(原始碼分析上)

在前篇文章有跟大家分享過實際部屬上遇到的 DNS 問題,並且透過實驗佐證去觀察結果, 本篇文章則是透過另外一種觀點來觀察結果,透過閱讀原始碼的方式來觀察到底 kubernetes 再創建相關的 Pod 時會如何去處理 DNS 相關的設定,由於整個過程牽扯到 kubernetes 以及 CRI(Container Runtime Interface)的操作,而我們預設使用的則是 Docker 作為底層容器的操作. 由於篇幅過長,所以本文會著重於 kubernetes 原始碼的部分,而 Docker 相關的部分則會餘下篇文章來研究.

[Kubernetes] DNS Setting with Dockerd(原始碼分析下)

在前篇文章有跟大家分享過實際部屬上遇到的 DNS 問題,並且透過實驗佐證去觀察結果, 本篇文章則是透過另外一種觀點來觀察結果,透過閱讀原始碼的方式來觀察到底 kubernetes 再創建相關的 Pod 時會如何去處理 DNS 相關的設定,由於整個過程牽扯到 kubernetes 以及 CRI(Container Runtime Interface)的操作,而我們預設使用的則是 Docker 作為底層容器的操作. 本篇文章會針對後半部分,也就是所謂的 docker(dockerd) 本身再創建容器的時候,會如何處理其 DNS 相關的設定,透過閱讀 docker-ce 以及 libnetwork 相關的原始碼,不但能夠更清楚的釐清全部的運作原理,也能夠學習到 docker 底層實踐的過程與精神

[netfilter] Dig Into Docker Bridge Network By iptables/ebtables

本文透過對 iptables/ebtables 來設定相對應的規則,藉由這些規則來觀察在 Docker Bridge Network 的網路設定下,不同情境的網路傳遞實際上會受到哪些 iptables/ebtables 規則的影響。這些情境包含了常見的用法,譬如容器與容器之間同網段的傳輸,宿主機透過容器IP位址直接連線,甚至是外部網路透過 docker run -p xxx.xxx 的規則來接觸到內部容器。這些不同情境的網路連線牽扯到關於 Layer3 路由,Layer2 橋接 等不同方式的處理,因此在 iptables/ebtables 都會有不同的走向。只要能夠更佳的熟悉 iptables/ebtables 的用法與規則,未來有需要親自設定相關規則時,都能夠更精準且安全的去達到想要的目的,減少盲目猜測的時間與花費。

CNI 常見問題整理

本篇文章紀錄了作者這陣子以來與大家討論 CNI 時常常被問到的問題,透過對這些問題的理解可以更加深入的去學習什麼是 CNI, 以及 CNI 本身能夠能夠觸擊的功能與範圍。同時也附上一些相關的資源讓大家可以從不同角度更深入的去研究 CNI 的領域。

Docker image for Hexo (一)

本 blog 目前是採用 hexo 作為主要開發,然而 hexo 我覺得最大的缺點就是屬於靜態網頁類型,所以只要每次換一個開發裝置,譬如桌電,筆電等,就必須要將整個環境重新建置。

Docker image for Hexo (二)

這篇延續上一篇Docker image for Hexo (一),要使用上次的概念來打造一個屬於我自己的 hexo docker image,至於這邊為什麼是說屬於我自己的?

docker image for lxr server

之前曾經發過一篇文章LXR Server With Multiple Projects,主要介紹如何在 Ubuntu 上面安裝 lxr 並且支援多個 projects。由於整個 lxr 的安裝過程複雜,除了本體外還牽扯到不少第三方程式套件,如 perl, database, www server,且大部份都是安裝完畢後就再也不會更動,唯一的更動應該就是更換要被 indexing 的 project而已。

Docker Network - 網路模型

本篇文章從入門的概念來介紹 Docker 的網路模型,透過對其使用上的瞭解,可以幫助我們去理解容器之間網路的使用,對於未來學習 Kubernetes 時會得心應手

常見 CNI (Container Network Interface) Plugin 介紹

作為一個 Kubernetes 使用者,可能都有聽過 CNI/CRI/CSI 等眾多的介面。而 CNI 作為一個掌管整個 Kubernetes 叢集網路的核心元件,負責提供各式各樣的網路功能。目前為數眾多的開源 CNI 專案們,到底各別擁有什麼樣的特性與效果,作為一個管理者在選擇 CNI 的時候應該怎麼考慮。本文針對常見的 CNI 專案們進行了一個簡單的分析與介紹,讓讀者能夠更加得清楚自己需要的功能及應用是什麼,才能夠更聰明的選擇所要的 CNI

淺談 Container 實現原理, 以 Docker 為例(I)

本文針對 Container 的概念進行探討,特別是其相關標準 Open Container Initiative (OCI), OCI 中定義了兩項規格,分別是 Runtime specification 以及 Image specification. 本文粗略地介紹一下彼此的概念以及各自負責的功能

淺談 Container 實現原理, 以 Docker 為例(II)

本文延續前篇文章關於 Open Container Initiatives 的討論,前篇文章討論了關於 OCI 內的兩大標準,分別是 Runtime 以及 Image 這兩項關於 Container 的標準,而本篇文章則是會介紹如了相關的標準之外,目前有什麼相關的解決方案與工具與這兩個標準息息相關,同時對於 Docker 本身會怎麼利用這些標準來完成 COntainer 的運行

淺談 Container 實現原理, 以 Docker 為例(III)

本篇文章作為 Container 介紹的最後一篇,簡單的透過 namespace 的操作讓大家看看 network 以及 storage 本身的運行模式,接下來到 CNI 以及 CSI 相關的章節的時候會再仔細介紹 kubernetes 中是怎麼處理 network 與 storage 這兩大重要資源。