深究Kubernetes源碼-Kubelet-3 Pod主流程-CreateSandbox
基于kubernetes1.26
承接?深究Kubernetes源碼-Kubelet-3 Pod處理主流程分析
首先看下類圖,主流程依然在kubeGenericRuntimeManager中,依賴RuntimeHelper接口,生成DNSConfig和Hostname,kubelet依然是RuntimeHelper接口的具體實現(xiàn),dnsConfigurer專門處理DNSConfig相關(guān)邏輯,kubelet.runtimeclass.Manager核心是一個RuntimeClass的informer和lister,cri-api.runtime.v1.PodSandboxConfig為CRI接口參數(shù)。

首先看主流程,主要是generatePodSanboxConfig生成PodSanboxConfig,LookupRuntimeHandler根據(jù)pod.spec.runtimeClassName找到runtime handler,最后調(diào)用CRI RunPodSandbox

展開generatePodSandboxConfig,主要包含3塊邏輯
1、調(diào)用runtimeHelper.GetPodDNS生成DNSConfig
2、如果非hostnetwork調(diào)用runtimeHelper.GeneratePodHostNameAndDomain生成Hostname和Domain
3、生成PodSandboxLinuxConfig

下章繼續(xù)分析pod dns config
標簽: