「K8S 生態週報」內容主要包含我所接觸到的 K8S 生態相關的每週值得推薦的一些信息。歡迎訂閱知乎專欄「k8s生態」。node
本週 KIND(Kubernetes In Docker) 正式發佈了 v0.8 版本,這次最主要的是爲你們帶來了 持久化集羣,當主機或者 dockerd 重啓後,集羣可自動恢復。nginx
v1.18.2
: kindest/node:v1.18.2@sha256:7b27a6d0f2517ff88ba444025beae41491b016bc6af573ba467b70c5e8e0d85f
;kind
,可經過環境變量 KIND_EXPERIMENTAL_DOCKER_NETWORK
修改);--network=kind
,以便讓它和 KIND 建立的集羣網絡互通;這裏須要特別說一下關於持久化集羣的特性。在以前版本中,若是你的 dockerd 進行了重啓操做,或者是重啓了系統,那可能會致使集羣 IP 從新分配,進而致使集羣狀態異常。git
在以前版本中,咱們建議全部的用戶,不要依賴集羣持久化。但鑑於有很多用戶的反饋,因此我先實現了初版。github
具體作法其實也簡單,原先的痛點在於重啓後,容器 IP 的從新分配,因此所有以域名的方式進行替代,另外就是藉助於 Docker 的 embedded DNS 來完成 LB 層對 master 的代理。docker
但這個實現,會產生一個 DNS 查詢異常的問題,我在專欄 《Docker 核心知識必知必會》 網絡篇中深刻介紹過其原理。以前我考慮過經過 --resolv-conf
參數,將主機的 resolver 提供給 kubelet 使用,但這種方式並不夠優雅,並且排查問題的話,因爲不與 kubelet 使用相同 resolv.conf
,也會帶來一些麻煩;以後考慮將主機和 Node 中的 resolver 進行合併,但合併的話,也會帶來一些隱患。安全
本次版本中的實現,實際上是對 Docker embedded DNS 作了不少 hack,主動對網絡作了管理,以此來完成此需求。網絡
kind delete clusters --all
可用於刪除全部集羣;featureGates
字段,來開啓相關特性;NO_COLOR
的支持;podman
提供了支持;KIND_CLUSTER_NAME
環境變量來指定集羣名稱;以上就是這次 KIND v0.8 中值得注意的內容,歡迎你們下載使用!使用方式可參考《使用 Kind 在離線環境建立 K8S 集羣》負載均衡
本週 NGINX Ingress Controller 1.7.0 發佈了,包含了衆多更新:框架
TransportServer
和 GlobalConfiguration
配置 TCP/UDP/TLS 的負載均衡,這樣即可經過 NGINX Ingress Controller 在 Kubernetes 上交付非基於 HTTP 的應用程序;VirtualServer
和 VirtualServerRoute
資源中配置錯誤頁;關於此版本的更詳細內容,請參考其 ReleaseNoteui
resolvConf
的行爲。kubeadm 將不會在 /var/lib/kubelet/kubeadm-flags.env
中設置 --resolv-conf
的值,而是使用 KubeletConfiguration
對其進行配置;autoscaling/v2beta1
已廢棄,推薦使用 autoscaling/v2beta2
;Immutable
字段來標記其內容爲不可變;series.state
字段;kured 是一個用於節點安全重啓的 Daemonset 。它包含如下特性:
/var/run/reboot-required
;cordon
和 drain
,在節點重啓完成後執行 uncordon
;這在系統須要按期維護時候,是很是有用的。同時也可本身手動進行觸發,而不需每次重複操做。
歡迎訂閱個人文章公衆號【MoeLove】